Модуль блютуз принимает неверное значение

Срочно!
Создаю школьный проект термопот. Дедлайн через 6 дней, а учителя по информатике не помогают. суть проблемы такая: к плате подключены всего четыре модуля - датчик температуры DS18B20, блютуз модуль HC-05, и два светодиода вместо реле. Модуль блютуз должен получать переменную температуры и использовать эту переменную для включения или выключения лампочек, но когда я через терминал отправляю значение допустим 10 плата приннимает значение 49. И так со всеми числовыми данными передаваемыми на блютуз модуль - он просто принимает значение от 47 до 67.
подскажите пожалуйста, что с этим можно сделать.

Вот скетч:

#include<microDS18B20.h>
MicroDS18B20<2> sensor;
int needTemp;


void setup() {
Serial.begin(9600);
pinMode(2,INPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(12,INPUT);
pinMode(13,INPUT);

}

void loop() {
sensor.requestTemp();

if(Serial.available()>0){
  needTemp=Serial.read();}
  delay(1000);

if(sensor.readTemp() && sensor.getTemp()<needTemp){
  digitalWrite(12, HIGH);
  digitalWrite(8, LOW);
  Serial.println(sensor.getTemp());
  Serial.println(needTemp);}

if (sensor.readTemp() && sensor.getTemp()>needTemp) {
  digitalWrite(12,LOW);
  digitalWrite(8,HIGH);
  Serial.println(sensor.getTemp());
  Serial.println(needTemp); }
    
  else {
    Serial.println(sensor.getTemp());
    digitalWrite(8,HIGH);
    Serial.println(needTemp);}

delay(200);    
}

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

Родное сердце, а тебя не наводит на размышления то, что 49 это ASCII код цифры ‘1’, которую ты передаешь первой в числе “10”? :wink:
Посмотри методы класса Serial… может что подберёшь для себя по вкусу? (спойлер: там есть парсИнт)

3 лайка

Да, неужели?

Учебник прочитать.

1 лайк

Спасибо огромное! Всё заработало!

1 лайк