Подключения датчика DHT22 и дисплея к Arduino Uno

Добрый день. Мне очень срочно нужна помощь. Я мало что понимаю в программировании микроконтроллеров. Мне нужно написать код для подключения датчика dht22 к ATMega328p с выводом показаний на дисплей LM016L. Сложность в том что схему нужно собрать в Proteus. Я написал код и вроде ошибок не выдает, но дисплей ничего не показывает. Не могу понять, с подключением пинов проблема, в схеме или в коде. Прошу помощи :pray:



Настолько срочно, что Вам некогда было прочитать как здесь вставляется код?

1 лайк

Pin #9 - PB6?

Так пусть за вас сделают другие - есть коммерческий отдел.

1 лайк

Тест на IQ ты уже провалил. С треском.

Причём, по всем пунктам - в неумении вставлять код на форуме, в неумении пользоваться Протеусом, в схемотехнике, в программировании. Ужос.(

#include <Wire.h>

#include<DHT.h>      // подключаем библиотеку для использования dht функций
#include<LiquidCrystal.h>
const int rs=8, en=9, d4=12, d5=13, d6=9, d7=10;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
 // номера контактов, к которым подключен ЖК дисплей
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

byte degree[8] = 
              {
                0b00011,
                0b00011,
                0b00000,
                0b00000,
                0b00000,
                0b00000,
                0b00000,
                0b00000
              };
void setup()
{
 lcd.begin(16, 2);
 lcd.createChar(1, degree);
 lcd.clear();
 lcd.print("   Humidity   ");
 lcd.setCursor(0,1);
 lcd.print("  Measurement ");
 delay(2000);
 lcd.clear();
 lcd.print("Circuit Digest ");
 delay(2000);
}
void loop()
{
  
 Serial.print("Temperature = ");
Serial.print('t');
Serial.print(" ");
Serial.print((char)176);
Serial.print("C | ");
Serial.print("C | ");
Serial.println("*C ");
Serial.print("Humidity =");
Serial.print('h');
Serial.print(" % ");
Serial.print(" ");
 lcd.setCursor(0, 0);//установим курсор
  lcd.print(dht.readHumidity());
  lcd.setCursor(5,0);
  lcd.print(" %");

  lcd.setCursor(0, 1);//установим курсор
  lcd.print(dht.readTemperature());
  lcd.setCursor(5,1);
  lcd.print(" *C");
  delay(500);
}
en=9, ... , d6=9

Не очень понимаю как это прописать. Вам кажется что проблема только с пинами? Я просто уже запутался как их прописать и как подсоединить дисплей в протеусе чтобы он выдавал результат с датчика

Что прописать? Какие принты?
Ничерта непонятно.

На схеме посмотрите en и d6 дисплея - они на один выход МК подсоединены?

Ну, Вам же уже сказали:

А Вы, вместо того, чтобы помочь, …

Вот то ли дело на англоязычных форумах!

так на этом учат сапоги носить! Не?

#include <Wire.h>

#include<DHT.h>      // подключаем библиотеку для использования dht функций
#include<LiquidCrystal.h>
const int rs=8, en=9, d4=10, d5=11, d6=12, d7=13;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
 // номера контактов, к которым подключен ЖК дисплей
#define DHTPIN 3
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);


void setup()
{
 dht.begin();
 lcd.begin(16, 2);
 
 lcd.clear();
 lcd.print("   Humidity   ");
 lcd.setCursor(0,1);
 lcd.print(" Temperature  ");
 delay(2000);
 lcd.clear();
 lcd.print("Circuit Digest ");
 delay(2000);
}
void loop()
{
  
 Serial.print("Temperature = ");
Serial.print('t');
Serial.print(" ");
Serial.print((char)176);
Serial.print("C | ");
Serial.print("C | ");
Serial.println("*C ");
Serial.print("Humidity =");
Serial.print('h');
Serial.print(" % ");
Serial.print(" ");
 lcd.setCursor(0, 0);//установим курсор
  lcd.print(dht.readHumidity());
  lcd.setCursor(5,0);
  lcd.print(" %");

  lcd.setCursor(0, 1);//установим курсор
  lcd.print(dht.readTemperature());
  lcd.setCursor(5,1);
  lcd.print(" *C");
  delay(500);
}

Я разобрался с подключением дисплея, но он все равно не выводит результат. В чем проблема?

Не разобрались :frowning: Чтобы разобраться, разберитесь с подключением библиотеки.

В той её версии, что у меня, попросту нет используемого Вами конструктора LiquidCrystal (rs, en, d4, d5, d6, d7);. Единственный конструктор с 6-ю параметрами, это:

LiquidCrystal(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);

Если DHT не подключать, то NaN - это нормально.

В 42 и 47 строке пока выведите какие-нибудь числа, пока нет датчика.
И чего Вы в программировании, а не в песочнице?