TMP36 проблема с получением температур

Тема в разделе "Arduino & Shields", создана пользователем Simetria, 8 май 2019.

  1. Simetria

    Simetria Нуб

    Моделирую схему в Tinkercad.
    По идее на ЖК экран должна выводиться температура с датчика TMP36.
    Температура выводится, но не изменяется. Тоесть, при запуске системы на дисплей выводиться одно значение и не изменяется даже при изменении температуры на датчике.
    Код:
    //Преобразование температурных показателей
    float displayC = (digitalRead(11));
    //Отображение интерфейса
    lcd.setCursor(0, 0);
    lcd.print(digitalRead(11));

    P.S. Я знаю что датчик аналоговый. При подключении на аналоговые порты и при использовании analogRead проблема не исчезает.
     
  2. b707

    b707 Гуру

    Вы хоть себя почитайте, а?

    "при заправке феррари солярой с тепловоза она не заводится" - " я знаю. что в феррари надо лить 98-й бензин, но при заправке бензином проблема не решается" :)))))

    Вы головой подумайте! тестировать аналоговый датчик на цифровом порту бессмысленно. Я не знаю, почему он не работает на аналоговом. но на цифровом он работать и не должен!
     
    9xA59kK и NikitOS нравится это.
  3. Simetria

    Simetria Нуб

    //Преобразование температурных показателей
    float displayC = (analogRead(0));
    //Отображение интерфейса
    lcd.setCursor(0, 0);
    lcd.print(displayC);
    Подключил на аналоговый пин (0)
    Проблема не исчезла
    Вы каким-то образом помогли?
     
  4. b707

    b707 Гуру

    бредовая строчка, analogRead() выдает целые, зачем там float ?
    Конечно помог - избавил тебя от зряшной потери времени на тестирование датчика на цифровом порту.
    И вот что дорогой, давай потише, без наездов.Пока по твоему вопросу и по твоему коду видно, что ты нуб-нубом.
    Слушай тех, кто знает больше.

    Чтобы шансов на ответ было больше - выложи полный код
     
  5. Simetria

    Simetria Нуб

    Полный код:
    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 содержит только вывод на дисплей определенных символов и их создание.
     
  6. Simetria

    Simetria Нуб

    И что, если я нуб? Потому то я и попросил помощи на форуме.
     
  7. ИгорьК

    ИгорьК Гуру

  8. ИгорьК

    ИгорьК Гуру

    Это какую ногу ты читаешь?
     
    b707 нравится это.
  9. b707

    b707 Гуру

    мне кажется тут все нормально, он читает А0 - функция analogRead() имеет "защиту от дурака"
    скорее стоит спросить, к какому пину он датчик подключил
     
  10. Simetria

    Simetria Нуб

    upload_2019-5-8_16-27-48.png
    Аналоговый пин 0
     

    Вложения:

  11. Simetria

    Simetria Нуб

    Код (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);
    }
     
     
  12. b707

    b707 Гуру

    Попробуй свое преобразование записать так:
    Код (C++):
    //Преобразование температурных показателей
    int displayC = (analogRead(0));
    Serial.println(displayC);
    и напиши, что будет выводится в монитор порта
     
    Simetria нравится это.
  13. Simetria

    Simetria Нуб

    upload_2019-5-8_16-39-53.png
    Изменяю температуру, а выводиться стабильное значение
     
  14. b707

    b707 Гуру

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

    и вот еще - все-таки поменяй везде обозначение пина c просто "0" на A0 - мало ли что там в тинкеркаде накрутили
    И на будущее - всегда пиши аналоговые пины с буквой - не запутаешься
     
    Последнее редактирование: 8 май 2019
    Simetria нравится это.
  15. Simetria

    Simetria Нуб

    Спасибо. Просмотрел схему, все понял. Прошу прощение за грубость.
     
  16. Simetria

    Simetria Нуб

    Все работает