Помогите пожалуйста найти ошибку

,

Код должен отображать время, дату, температуру и влажность на дисплее LCD 1602 i2c. Часы реального времени DS1302. Датчик температуры и влажности DHT11. Всё выполняется через плату arduino uno.

// DS1302:  
//          CE pin    -> Arduino Digital 2
//          I/O pin   -> Arduino Digital 3
//          SCLK pin  -> Arduino Digital 4
//          VCC  -> 5V
//          GND  -> GND


//1602 I2C  LCD:     
//            SDA       -> A4
//            SCL       -> A5
//          VCC  -> 5V
//          GND  -> GND


// DHT11: 
//          IO DATA  -> Arduino Digital 5
//          VCC  -> 5V
//          GND  -> GND

   #define SCK_PIN 4
   #define IO_PIN 3
   #define RST_PIN 2
   #define dht_dpin 5
   #include <DHT.h>  
   #include <DS1302.h>
   #include <Wire.h> 
   #include <LiquidCrystal_I2C.h>
   LiquidCrystal_I2C lcd(39,16,2);  // 0x27 ou 39
   DS1302 rtc(RST_PIN, IO_PIN, SCK_PIN);
   DHT;  

   void setup(){
    
   lcd.init();        // initializa o lcd 
   lcd.backlight();   // acende a luz de fundo no lcd
  
   rtc.halt(false);
   rtc.writeProtect(false);
    
   }

   void loop(){
 
   /* Os comandos abaixo servem para acertar data e hora retire
   as barras e acerte os valores, carregue o programa, recoloque 
   as barras e recarregue o programa novamente*/
   
/////////////////SET TIMES HERE/////////////
   //rtc.setDOW(1);             
   //rtc.setTime(00, 53, 00);   
   //rtc.setDate(20, 9, 2015);  
   DHT.read11(dht_dpin);  
   lcd.setCursor(0, 1);
   lcd.print((float)DHT.humidity,0);
   lcd.print("%");   
   lcd.print((float)DHT.temperature, 0); 
   lcd.print((char)223);
   lcd.println("C ");  
   lcd.setCursor(8, 1);
   lcd.print(rtc.getTimeStr());
   
   lcd.setCursor(12, 0);
   lcd.print(rtc.getDOWStr(FORMAT_SHORT));
   
   lcd.setCursor(1,0);
   lcd.print(rtc.getDateStr(FORMAT_SHORT));

   delay (1000);
   } 

Простите, но Вы забыли написать, что Вам нужно, что за ошибка, как она проявляет, наконец, что должен делать Ваш код! Кроме того, код вставлен неправильно, так его читать не будут.

Поэтому, Вы сейчас:

  1. Сообщаете нам для какого контроллера этот код
  2. Если в схеме, кроме контроллера, есть ещё какие-то детали (а они, похоже, есть), то приводите схему соединений;
  3. Читаете в пустом окне сообщения как правильно вставить код;
  4. Вставляете код правильно;
  5. Описываете словами, что этот код должен делать;
  6. Описываете что в его поведении Вас не устраивает, что он делает не так и с чего Вы это поняли.

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

P.S. Схему и код представляйте именно свои, а не “почти такие же”. И приводите их сами! Если вместо схемы, кода и т.п. Вы дадите ссылку, Вам в ответ тоже дадут какую-нибудь ссылку (например, такую).

1 лайк

Ваша ссылка открылась у меня только через VPN

Наверное, потому. что Very Pravilnoe Napravlenie :sweat_smile:

не все так просто, вот Болгарский ВПН тоже не ходит на эту ссылку, а все Англосакские, пожалуйста.

Странно, у меня заходит без ничего. Провайдер - Ростелеком.

1 лайк

И все пошли по известному адресу - проверять! :slight_smile:

@RiviyCat22 так и не написали - не работает-то что?

1 лайк

@kalapanga ошибки показывает в строках 53, 55, 57. Не понимаю что не так.

смотрите строчки 30 и 31, чувствуете разницу?

Какие ошибки? Скопипастить никак? Мы должны догадываться?

Не. Думаю, просто очень много людей в очереди. Пускают по блату. Амстер без очереди ))

1 лайк