Моделирую схему в Tinkercad. По идее на ЖК экран должна выводиться температура с датчика TMP36. Температура выводится, но не изменяется. Тоесть, при запуске системы на дисплей выводиться одно значение и не изменяется даже при изменении температуры на датчике. Код: //Преобразование температурных показателей float displayC = (digitalRead(11)); //Отображение интерфейса lcd.setCursor(0, 0); lcd.print(digitalRead(11)); P.S. Я знаю что датчик аналоговый. При подключении на аналоговые порты и при использовании analogRead проблема не исчезает.
Вы хоть себя почитайте, а? "при заправке феррари солярой с тепловоза она не заводится" - " я знаю. что в феррари надо лить 98-й бензин, но при заправке бензином проблема не решается" )))) Вы головой подумайте! тестировать аналоговый датчик на цифровом порту бессмысленно. Я не знаю, почему он не работает на аналоговом. но на цифровом он работать и не должен!
//Преобразование температурных показателей float displayC = (analogRead(0)); //Отображение интерфейса lcd.setCursor(0, 0); lcd.print(displayC); Подключил на аналоговый пин (0) Проблема не исчезла Вы каким-то образом помогли?
бредовая строчка, analogRead() выдает целые, зачем там float ? Конечно помог - избавил тебя от зряшной потери времени на тестирование датчика на цифровом порту. И вот что дорогой, давай потише, без наездов.Пока по твоему вопросу и по твоему коду видно, что ты нуб-нубом. Слушай тех, кто знает больше. Чтобы шансов на ответ было больше - выложи полный код
Полный код: void loop(){ //Считывание изменений интерфейса if(digitalRead(8) != 0) { if(page == 1) page = 2; else page = 1; } //Преобразование температурных показателей float displayC = (analogRead(0)); //Отображение интерфейса lcd.setCursor(0, 0); lcd.print(displayC); } void setup содержит только вывод на дисплей определенных символов и их создание.
мне кажется тут все нормально, он читает А0 - функция analogRead() имеет "защиту от дурака" скорее стоит спросить, к какому пину он датчик подключил
Код (Java): void loop(){ //Считывание изменений интерфейса if(digitalRead(8) != 0) { if(page == 1) page = 2; else page = 1; } //Преобразование температурных показателей float displayC = (analogRead(0)); //Отображение интерфейса lcd.setCursor(0, 0); lcd.print(displayC); }
Попробуй свое преобразование записать так: Код (C++): //Преобразование температурных показателей int displayC = (analogRead(0)); Serial.println(displayC); и напиши, что будет выводится в монитор порта
ну значит дисплей не причем, либо датчик подключен неправильно, либо он не работает и вот еще - все-таки поменяй везде обозначение пина c просто "0" на A0 - мало ли что там в тинкеркаде накрутили И на будущее - всегда пиши аналоговые пины с буквой - не запутаешься