В чем ошибка, объясните плз.

denis2426
Offline
Зарегистрирован: 08.12.2016

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

Temperature Cels:49

Tempeature Fahrenheit:424

Temperature Cels:48
Temperature Fahrenheit:416
 
Вводим 5 - выводит:
Temperature Cels:53
Temperature Fahrenheit:456
 
 
 В чем может быть причина(числа брал от болды)? 
 int cels;
int far;
void setup()
{
Serial.begin (9600);
}
void loop ()
{
 if (Serial.available() > 0){
  cels = Serial.read();

    if (cels >= -1000 && cels <=1000) {
      far = (1,8*cels+32);
      Serial.print ("Temperature Cels:");
      Serial.print (cels, DEC);
      Serial.println("");
      Serial.print ("Temperature Fahrenheit:");
      Serial.print (far);
      Serial.println ("");
    }
      else{
        Serial.print("Error");
      } 
 }
}

 

macros
Offline
Зарегистрирован: 07.11.2016

Посмотрите соседнию тему http://arduino.ru/forum/programmirovanie/serialread-v-arduino

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

1.8 написано, как 1,8. Родной язык - Exel? ;)

denis2426
Offline
Зарегистрирован: 08.12.2016

Ок,загляну. Благодарю 

denis2426
Offline
Зарегистрирован: 08.12.2016

wdrakula пишет:

1.8 написано, как 1,8. Родной язык - Exel? ;)

Да ( спасибо что поправили

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

denis2426 пишет:

В чем может быть причина(числа брал от болды)? 

Причина чего? Того, что правильно работает? Она ж вроде всё правильно выводит по Цельсию, что Вам не нравится? По Фаренгейту, замените запятую на точку, а по Цельсию всё правильно.

Araris
Offline
Зарегистрирован: 09.11.2012

denis2426 пишет:

Ввожу 10 выводит 

Temperature Cels:49

Tempeature Fahrenheit:424

Temperature Cels:48
Temperature Fahrenheit:416
 
Вводим 5 - выводит:
Temperature Cels:53
Temperature Fahrenheit:456
 
 
 В чем может быть причина

49 - это ASCII код единицы 

48 - нуля 

53 - пятёрки

У Вас лёгкая путаница образовалась с интерпретацией принимаемых из Serial данных.  По ссылке, данной выше, есть ответ, что надо изменить (подсказка: строка 9 в скетче по ссылке).

Araris
Offline
Зарегистрирован: 09.11.2012

ЕвгенийП пишет:

Причина чего? Того, что правильно работает? Она ж вроде всё правильно выводит по Цельсию, что Вам не нравится? По Фаренгейту, замените запятую на точку, а по Цельсию всё правильно.

Кто-то взломал учётку ЕвгенийП ?!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Araris пишет:

Кто-то взломал учётку ЕвгенийП ?!

Не, знаю, может и взломал, но то, что Вы цитировали, я писал.

А Вы не согласны? Правильно ведь всё работает. Что передают, то и печатает. Вы и сами это написали. :)

Кстати, зацените вот это. Можно сказать, крик души написал, а никто не ругает и не спорит - всем пофигу :(((( Пошёл водку жрать с горя :)

Araris
Offline
Зарегистрирован: 09.11.2012

Да это так, шутка как бы...

Крик души - прекрасен, но, боюсь, не всем (мне в том числе) до конца понятен.

denis2426
Offline
Зарегистрирован: 08.12.2016

Araris пишет:

denis2426 пишет:

Ввожу 10 выводит 

Temperature Cels:49

Tempeature Fahrenheit:424

Temperature Cels:48
Temperature Fahrenheit:416
 
Вводим 5 - выводит:
Temperature Cels:53
Temperature Fahrenheit:456
 
 
 В чем может быть причина

49 - это ASCII код единицы 

48 - нуля 

53 - пятёрки

У Вас лёгкая путаница образовалась с интерпретацией принимаемых из Serial данных.  По ссылке, данной выше, есть ответ, что надо изменить (подсказка: строка 9 в скетче по ссылке).

  понял ошибку, спасибо большое за разъяснения)