Паяльник

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Паяльник » Микроконтроллеры » Часы на LCD1602 I2C + RTC1307 I2C + Arduino Uno


Часы на LCD1602 I2C + RTC1307 I2C + Arduino Uno

Сообщений 1 страница 2 из 2

1

Вашему вниманию представлен пример как можно совместно использовать 2 устройства на шине I2C

http://s3.uploads.ru/t/Jk3z1.jpg

Демонстрация работы:

Скетч

Код:
// Совместное использование LCD1602 и RTC1307 на шине I2C

#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); 

/* SDA - A4
   SCL - A5
*/

void setup () {
  Wire.begin();
  rtc.begin();
  lcd.begin(16,2);
  lcd.backlight();
  lcd.home();
  lcd.setCursor(0,0); //Вывод символа с 0 в строку 0
  lcd.print("EXAMPLE I2C");
  delay(1000);
  lcd.setCursor(0,1); //Вывод символа с 0 в строку 1
  lcd.print("LCD1602&RTC1307");
  delay(3000);
  lcd.clear();

// Установка времени в модуль RTC
// После установки закоментировать и залить скетч снова
// rtc.adjust(DateTime(__DATE__, __TIME__));

}

void loop () {

  ClockDisplay();  
  delay(200);
}

void ClockDisplay(){
  DateTime now = rtc.now();
  lcd.setCursor(4, 0);
  char string1[] = " Welcome to pajalnik.ixbb.ru ";
  sprintf(string1, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
  lcd.print(string1);
} 

}

0

2

Если не понятно как работает функция void ClockDisplay(), ее можно описать и по-другому, но тогда добавляем незначащий ноль к часам, минутам, секундам

Код:
void digitalClockDisplay(){
 
  DateTime now = rtc.now();

  lcd.setCursor(4, 0);
  printDigits(now.hour()); 

  lcd.setCursor(6, 0);
  lcd.print(":");

  lcd.setCursor(7, 0); 
  printDigits(now.minute());
  
  lcd.setCursor(9, 0);
  lcd.print(":");
  
  lcd.setCursor(10, 0);
  printDigits(now.second());

}

void printDigits(int digits){
  // Процедура добавляет незначащий 0
  if(digits < 10){
    lcd.print('0');
  }
  lcd.print(digits);
}

0


Вы здесь » Паяльник » Микроконтроллеры » Часы на LCD1602 I2C + RTC1307 I2C + Arduino Uno


создать форум