Подключение часов, ошибка

Тема в разделе "Arduino & Shields", создана пользователем arduin, 24 апр 2017.

  1. arduin

    arduin Нерд

    Добрый день.


    Есть у меня код DateTime now = RTC.now(); , но из за него гаснет экран



    Код (C++):
    DateTime now = RTC.now();
     
       
       
        Serial.print(now.month(), DEC);
        Serial.print('/');
        Serial.print(now.day(), DEC);
        Serial.print('/');
        Serial.print(now.year(), DEC);
        Serial.print(' ');
        Serial.print(now.hour(), DEC);
        Serial.print(':');
        Serial.print(now.minute(), DEC);
        Serial.print(':');
        Serial.print(now.second(), DEC);

    Подскажите пожалуйста как подключить датчик часов. Часы
    Модуль I2C RTC DS1307 AT24C32 Часы Реального Времени
     
  2. armani

    armani Нерд

  3. arduin

    arduin Нерд

    У меня уже есть модуль часов.

    Все перепробовал. Даже без самого модуля белый экран, после компиляции скетча.
    Видимо какой то конфликт в библиотеке. wire или rtc

    если закоментировать строку DateTime now = RTC.now();
    то экран работает.
    если не коvментировать то экран становится белым.
    Часы работают в serial
     
  4. arduin

    arduin Нерд

    Вот что получается.
    Перезагружаю кнопкой ресет.
    Появляется надпись на экране, пока идет задержка delay.
    далее начинается цикл и экран белый.



    Вот этот скетч. он рабочий. если убрать строку DateTime now = RTC.now();
    то экран работает нормально. Но не работают часы.


    Код (C++):
    #include <Adafruit_TFTLCD.h>
    #include <Adafruit_GFX.h>
    #include "DHT.h"
    #include <EEPROM.h>
    #include <Wire.h>
    #include "RTClib.h"


    #define YELLOW  0xFFE0
    #define BLACK   0x0000
    Adafruit_TFTLCD tft(A3, A2, A1, A0, A4);

       RTC_DS1307 RTC;

    #define DHTPIN 10    // what digital pin we're connected to
    #define DHTTYPE DHT21   // DHT 21 (AM2301)
    DHT dht(DHTPIN, DHTTYPE);

     
       void setup() {
       
       Serial.begin(9600);
      tft.reset();
      tft.begin(0x7575); //инициируем экран номер чипа
      tft.setRotation(1);  //положение экрана
       tft.fillScreen(BLACK); //Фон  главного  экрана
     
     
                tft.setTextSize(3);
                tft.setTextColor(YELLOW,BLACK);
                tft.setCursor(5,1 );  
                tft.print("Information v 1.0");
              delay(5000);

       Wire.begin();
       RTC.begin();
    }
     
    void loop()
       {
     
       delay(5000);
         DateTime now = RTC.now();
     
       }
     
     
  5. armani

    armani Нерд

    Попробуйте амперковской библиотекой воспользоваться, модель же одна и та же.
     
    arduin нравится это.
  6. arduin

    arduin Нерд

    Спасибо, попробую. Тут именно в библиотеке конфликт, а какой не понимаю.

    По отдельности пашут и часы и мой код.
    Вместе не хотят.
     
  7. arduin

    arduin Нерд

    Увы не помогло, такая же беда.
     
  8. user999

    user999 Гик

    А вы на какие пины часы подключаете? Они по I2C работают?
     
  9. arduin

    arduin Нерд

    по документации пины A4 A5
    Но тут дело не в этом.
    Даже без часов, код который я указал выше, дает проблемы белого экрана.
    При этом часы работают в сериал.
    А экран просто белеет.

    если коментирую строку DateTime now = RTC.now(); часы не работают но экран в порядке.
     
  10. user999

    user999 Гик

    так у вас экран на А4 пин попадает. возможен конфликт
     
  11. arduin

    arduin Нерд

    Я думал об этом.

    Но дело в том что я пока не знаю как решить эту проблему.
    И для часов сменить пин.

    3 пина у меня свободны но наних наверное не повесить ничего.

    это пины которые левее 3v
    Там есть RESET и еще 2.
     
  12. arduin

    arduin Нерд

    В общем проблему решил следующим образом, из за конфликта PIN A4
    была такая проблема.

    В итоге я сделал так Adafruit_TFTLCD tft(A3, A2, A1, A0, 12);
    в место A4 цифровой пин 10. И все заработало.