Серво Мотор, Ардуино - PullRequest
       103

Серво Мотор, Ардуино

0 голосов
/ 22 марта 2020

Я пытаюсь получить значение "lightVal" , считываемое с моего фоторезистора, в следующее уравнение:

theta = (260/3) log (23/1023) (1- lightval / 1023), где theta - шаги, предпринимаемые двигателем. Затем мне нужно заставить серводвигатель вращаться на тета-градусы.

//locate pins
int PhotoresistorPin = A0;

//Declare global variables
int lightVal;

void setup() {
  //Set photoresistor as input 
  pinMode(PhotoresistorPin, INPUT);
  //serial is used to communicate with the board.
  //Serial.begin() sets data rate in bits per second
  Serial.begin(9600);
}

void loop() {
  //read input from photoresistor
  //analogueRead function reads the voltage across the photoresistor
  lightVal = analogRead(PhotoresistorPin);
  //print input from photoresistor
  Serial.println(lightVal);
  delay(1000);

}

Я застрял здесь, что мне теперь делать? По сути, каждый раз, когда я пытаюсь написать уравнение, оно говорит мне, что «тэта не была объявлена ​​в этой области». Спасибо!

Редактировать: это на самом деле не имеет смысла, но здесь это

{ Serial.begin(9600); 
for (int i =0; i<=180; i=i+180)
{ float angle = (260/3)log(23/1023,(1-(lightVal/1023); 
servo.write(angle); 
delay(5); 
}
 } 

1 Ответ

0 голосов
/ 22 марта 2020

Посмотрите на вашу переменную lightVal. Обратите внимание, что он состоит из двух частей. Существует первая часть:

int lightVal;

, которая определяет переменную. Эта строка сообщает компилятору о том, что переменная с именем lightVal существует и что это за переменная (в данном случае int). Когда вы получаете переменную «не объявлено в этой области», это обычно означает, что вы не сделали этот шаг или что вы сделали это в другой области.

Во второй части вы задали для своей переменной значение в этой строке:

lightVal = analogRead(PhotoresistorPin);

Здесь вы говорите, что lightVal должно равняться. Вы получаете число от аналогового датчика и присваиваете это значение своей переменной.

Вы можете иногда выполнять оба шага в одной строке, но этот первый шаг, сообщающий компилятору, что такая переменная существует, важен. Вы не можете попытаться что-то сделать с переменной, прежде чем сообщить компилятору, что она существует.

...