Помогите по аналоговому пину!

romiras
Offline
Зарегистрирован: 12.07.2015

Имеется самодельный датчик уровня жидкости на аналоговом пине, при достижении значения 802 должен включаться диод. Вот скетч: 

void setup() {
  Serial.begin(9600);
}
int sensorValue = analogRead(A0);
void loop() {

  if (sensorValue = 802);
  digitalWrite(10, HIGH) {
  }
  else {
    // turn LED off:
    digitalWrite(10, LOW);
  }
}

не копилируется(( в чем ошибка? с ардуино пока на "вы"

Клапауций 999
Offline
Зарегистрирован: 06.06.2015
  if (sensorValue == 802);

но, это не правильно - нужно так

  if (sensorValue >= 802);

или

  if (sensorValue <= 802);

в зависимости, в какую строну оно у тебя движется 

romiras
Offline
Зарегистрирован: 12.07.2015

все равно не работает(

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

romiras пишет:

все равно не работает(

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

romiras
Offline
Зарегистрирован: 12.07.2015

Спсаибо, все идет! невнимательность подвела)

romiras
Offline
Зарегистрирован: 12.07.2015

А сели нужно, чтобы диод горел в определенном диапазоне от 802 до 930, к примеру, тогда какой код нужен?

Клапауций 999
Offline
Зарегистрирован: 06.06.2015
void setup() {
  Serial.begin(9600);
}
int sensorValue = analogRead(A0);
void loop() {

if (sensorValue >= 802) {здесь что-то делаем, когда набралось 802} else {здесь что-то делаем, когда не набрано до 802}
}

 

romiras
Offline
Зарегистрирован: 12.07.2015

Еще раз спасибо!

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

romiras пишет:

А сели нужно, чтобы диод горел в определенном диапазоне от 802 до 930, к примеру, тогда какой код нужен?

ну, как-то так:

void setup() {
  Serial.begin(9600);
}
int sensorValue = analogRead(A0);
void loop() {

if (sensorValue >= 802 && sensorValue <= 930) {здесь что-то делаем, когда между 802 и 930} else {здесь что-то делаем, когда не так}
}

 

romiras
Offline
Зарегистрирован: 12.07.2015

не, не работает, может, я что не так понимаю( этим скетчем я считал показания датчика

void setup() {
  Serial.begin(9600);
}
void loop() {
  int sensorValue = analogRead(A0);  // получаем текущее значение
  Serial.println(sensorValue, DEC); // выводим результат на монитор
}

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

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

romiras пишет:

не, не работает, может, я что не так понимаю( этим скетчем я считал показания датчика

верно - нужно постоянно считывать показания датчика в лупе:

void setup() {
  Serial.begin(9600);
}
int sensorValue = analogRead(A0);
void loop() {
sensorValue = analogRead(A0);
if (sensorValue >= 802 && sensorValue <= 930) {здесь что-то делаем, когда между 802 и 930} else {здесь что-то делаем, когда не так}
}

 

romiras
Offline
Зарегистрирован: 12.07.2015

Урра! Работает!  Спасибо - очень сильно выручил!