Помогите с кодом вывода времени
- Войдите на сайт для отправки комментариев
Ср, 28/11/2012 - 23:45
Собираю устройство с часами при выводе времени после секунд в следующей строке выходит || ||| как это убрать не знаю
#include <DS1307.h> // Подключаем библиотеку управления модулем реального времени
#include <LiquidCrystalExt.h> // Подключаем библиотеку управления экраном
#include <LineDriver.h> // Далее вспомогательные библиотеки для реализации интерфейса SPI
#include <SPI.h>
#include <SPI_Bus.h>
#include <Wire.h>
SPI_Bus shreg(_8bit, 10); // Подключаем сдвиговый регистр
LiquidCrystal lcd(1, 2, 3, 4, 5, 6, &shreg, 7); // Инициализируем дисплей
void setup() // инициализация основных данных
{
Serial.begin(9600); // Инициализируем COM-порт
lcd.begin(16,2); // устанавливаем размеры экрана
}
void loop() // зацикливание (код управляющей программы)
{
int Hour = RTC.get(DS1307_HR,true); // Получаем значение текущего часа
int Minute = RTC.get(DS1307_MIN,false);
int Second = RTC.get(DS1307_SEC,false);
lcd.setCursor(0,0); // устанавливаем позицию курсора на экране (на один символ правее левого верхнего угла)
lcd.print(addZero(Hour));lcd.print(":");lcd.print(addZero(Minute));lcd.print(":");lcd.println(addZero(Second)); // Выводим время
}
void SetTime() // установка времени из шаблона tчч:мм
{
if (Serial.read() == 't') // Если первый символ t, то установим указанное время
{
int h = (Serial.read() - '0') * 10 + (Serial.read() - '0');
Serial.read();
int m = (Serial.read() - '0') * 10 + (Serial.read() - '0');
RTC.stop();
RTC.set(DS1307_SEC,0); //set the seconds
RTC.set(DS1307_MIN,m); //set the minutes
RTC.set(DS1307_HR,h); //set the hours
RTC.start();
}
Serial.flush();
}
String addZero(int val)
{
if (val<10) return "0" + String(val);else return String(val);
}
Попробуйте очищать дисплей lcd.clear();
А по подробней я мало что понимаю в этом
Просто очиттить эту клетку ? в дисплее ?
lcd.clear() чистит экран
чтобы чистить чуток чправа от выводимого, достаточно напечатать лишний пробел
тоесть просто дописать пару пробелов и все
Ага, вдруг пропадет
но я чистил каждый loop lcd.clear
Пробелы не помогли
спасибо проблемка была в
lcd.println(addZero(Second))
мне подсказали сделать lcd.print(addZero(Second)) и проблема решилась