проблема с сравнением данных из сериал

Abdulla
Offline
Зарегистрирован: 18.06.2013

Привет всем^^ Подскажите пожалуйста где ошибка, от ардуино на комп у меня приходят данные температуры, я хочу чтобы при определенном значении температуры включался вентилятор, но что-то не выходит. Я уже перепробовала все типы данных, а вентилятор все равно молчит=(((

   while (Serial.available())
   {
  int  i=Serial.read();
    if (i > =25)
   analogWrite(7,255);
  delay(500);
   }

 

Geronimo
Offline
Зарегистрирован: 06.05.2013

надеюсь вентилятор не напрямую в ардуину воткнут?

Откуда приходят данные с сериала? с консоли монитора порта?

тогда надо писать

int i = Serial.read() - '0';

а лучше int i  =  Serial.ParseInt();

 

в сетапе скорость проставлена?

Abdulla
Offline
Зарегистрирован: 18.06.2013

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

Geronimo
Offline
Зарегистрирован: 06.05.2013

увы, об этом не знал из первого поста (

Извиняюсь)

Abdulla
Offline
Зарегистрирован: 18.06.2013

в сетапе скорость поставлена, первый вариант пробовала не прокатил, сейчас попробую второй

Geronimo
Offline
Зарегистрирован: 06.05.2013

по сериалу приходит двухзначное число?

если да, то первый вариант с вычитанием кода 0 не поможет

 

вот тут обсуждали как получать целые многозначные числа переданные в текстовом виде:

 

http://arduino.ru/forum/programmirovanie/rabota-s-som-portom

Abdulla
Offline
Зарегистрирован: 18.06.2013

по сериалу приходят числа в таком формате: 22.23 

Попробовала Serial.ParseInt() вентилятор продолжает молчать как партизан =((

Geronimo
Offline
Зарегистрирован: 06.05.2013

в текстовом? тогда  parseInt не поможет, 22.23 это дробное,

как вариант parseFloat или самостоятельно посимвольно собирать числа.

Для отладки можно добавить Serial.println(i)

что бы удостовериться, что получила ардуина

Abdulla
Offline
Зарегистрирован: 18.06.2013

Спасибо, сейчас испробую