DS1302&lcd1602
- Войдите на сайт для отправки комментариев
Сб, 12/11/2016 - 22:56
Мужики как убрать бегане символов по экрану подсажите плиз . Вот таким скейчем удалось запустить DS 1302 и вывести на lcd16*2
#include <stdio.h>
#include <DS1302.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2);
namespace {
const int kCePin = 5; // Chip Enable
const int kIoPin = 6; // Input/Output
const int kSclkPin = 7; // Serial Clock
// Create a DS1302 object.
DS1302 rtc(kCePin, kIoPin, kSclkPin);
String dayAsString(const Time::Day day) {
switch (day) {
case Time::kSunday: return "Sunday";
case Time::kMonday: return "Monday";
case Time::kTuesday: return "Tuesday";
case Time::kWednesday: return "Wednesday";
case Time::kThursday: return "Thursday";
case Time::kFriday: return "Friday";
case Time::kSaturday: return "Saturday";
}
return "(unknown day)";
}
void printTime() {
// Get the current time and date from the chip.
Time t = rtc.time();
// Name the day of the week.
const String day = dayAsString(t.day);
// Format the time and date and insert into the temporary buffer.
char buf[50];
snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d",
day.c_str(),
t.yr, t.mon, t.date,
t.hr, t.min, t.sec);
// Print the formatted string to serial so we can see the time.
Serial.println(buf);
lcd.println(buf);
}
} // namespace
void setup() {
Serial.begin(9600);
lcd.init();
// Initialize a new chip by turning off write protection and clearing the
// clock halt flag. These methods needn't always be called. See the DS1302
// datasheet for details.
rtc.writeProtect(false);
rtc.halt(false);
lcd.backlight();
lcd.print("t");
// Make a new time object to set the date and time.
// Sunday, September 22, 2013 at 01:38:50.
Time t(2016, 11, 12, 19, 38, 00, Time::kSunday);
// Set the time and date on the chip.
rtc.time(t);
}
// Loop and print the time every second.
void loop() {
printTime();
delay(1000);
}
Вот здесь что-то поправить )))
void loop() { printTime(); delay(1000);Вот здесь что-то поправить )))
void loop() { printTime(); delay(1000);менял на 10000 и на 100 херня какая-то всё равно бегущая строка
воспользоваться этой командой
lcd.setCursor(0, 0) ;
lcd.println(buf);
пс:http://arduino.ua/ru/prog/LiquidCrystalSetCursor
воспользоваться этой командой
lcd.setCursor(0, 0) ;
lcd.println(buf);
пс:http://arduino.ua/ru/prog/LiquidCrystalSetCursor
не совсем помогло чёто день недели и дата есть а время нет .
хотелось как раз видеть время
тогда сделайте 2 строчки. buf1 и buf2. У вас время просто осталось за границей отображения.
cd.setCursor(0, 0) ;
lcd.println(buf1);
cd.setCursor(0, 1) ;
lcd.println(buf2);
тогда сделайте 2 строчки. buf1 и buf2. У вас время просто осталось за границей отображения.
cd.setCursor(0, 0) ;
lcd.println(buf1);
cd.setCursor(0, 1) ;
lcd.println(buf2);
buf1 и buf2 как то указать нужно ???
сейчас только buf
та, да... именно lcd.println - так победим глюки!
и всё же х у й сосали" комбайнёры"
чёто день недели и дата есть а время нет .
чёто день недели и дата есть а время нет .
Совершено верно . или бегущая строка по 1 строке потом на вторую переходит .
Самое атвратное , что часики ds1302 с микрухой ds1302 0029a3 183AA бля как на ютубе с ихними скейтчами не работает запустил примером из библиотеки часы+дисплей чуть подкоректировал адреса и пины экрана , а как убрать бегущую строку невыходит вобщем аленький цветок .
Пойду модуль часов в помойку кину и закажу 1307
потому как решение не найдено.
Благодарю всех кто подсказывал решение проблемы
Не торопитесь выкидывать, у меня же выводится время на LCD1602 и ничего не блымает, вывожу конкретные данные в конкретную позицию )))
так работает с этим скейчем?
про железо : ардуино нано ds1202 lsd1602
скеч финальный покажи.
а собственно скейч в верху
про железо : ардуино нано ds1202 lsd1602
Блин, да что ж вас всех так на ЛСД-то тянет? Мож травкой обойтись? Всяко не так убийственно :))))
Вот так поменяйте две функции.
В первой длины строк выровнены.
Во второй вывод на экран двух строк: день недели и дата, а во второй - время
String dayAsString(const Time::Day day) { switch (day) { case Time::kSunday: return " Sun"; case Time::kMonday: return " Mon"; case Time::kTuesday: return " Tues"; case Time::kWednesday: return " Wed"; case Time::kThursday: return "Thurs"; case Time::kFriday: return " Fri"; case Time::kSaturday: return "Satur"; } return "unknw"; } void printTime() { // Get the current time and date from the chip. Time t = rtc.time(); // Name the day of the week. const String day = dayAsString(t.day); // Format the time and date and insert into the temporary buffer. char buf[20]; snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d", day.c_str(), t.yr, t.mon, t.date); // Print the formatted string to serial so we can see the time. Serial.println(buf); lcd.setCursor(4,1); lcd.print(buf); snprintf(buf, sizeof(buf), "%02d:%02d:%02d", t.hr, t.min, t.sec); // Print the formatted string to serial so we can see the time. Serial.println(buf); lcd.setCursor(0,0); lcd.print(buf); }и loop() поменяйте так:
void loop() { static uint32_t om = millis(); uint32_t nm=millis(); if (nm-om > 999) { om = nm; printTime(); } }и реально задолбало уже!
Программа для Ардуино называется "sketch" - скетч, значит "эскиз" и никак иначе, можно "т" пропустить - это не страшно.
Но, жеваный же крот! Откуда вы берете "сейч" и все такое прочее? Ну, мать его ити, откуда "Й"? Так "более по-английски звучит", штоль?
Тут в "исполнителях" есть еще один кадр с "мосфИтами", это, блин, что-то из фитотерапии, так?
Тоже бесит нереально!!!, на каком языке такое произношение ??? Кстати поправлю коллегу WДракулу -правильное написание Sketch. Забейте уже это слово в любую говорилку, например http://myefe.ru/anglijskaya-transkriptsiya.html и послушайте как правильно произносить. По-русски принято писать через букву "т" -скетч.
Кстати поправлю коллегу WДракулу -правильное написание Sketch.
Исправил. Мой грех. Спасибо.
Wdrakula, потому, что родители Владиславом назвали. Грех не вспомнить тезку.
А так я - Влад.
дык дёшево
бля бля бля англичане не заё.....те, суть для новечков не меняется.
Спасибо за помощь . Есть же люди со светлой головой, а есть лингвисты помощи 0 только форум засерают.
Не, ну трудно помочь людям, если они не владеют терминологией и вместо ЖК применяют ЛСД.
бля бля бля англичане не заё.....те, суть для новечков не меняется.
Спасибо за помощь . Есть же люди со светлой головой, а есть лингвисты помощи 0 только форум засерают.
Очередной ник в список тех, кто никакой помощи здесь больше не получит. От меня по крайней мере.
бля бля бля англичане не заё.....те, суть для новечков не меняется.
Спасибо за помощь . Есть же люди со светлой головой, а есть лингвисты помощи 0 только форум засерают.
Очередной ник в список тех, кто никакой помощи здесь больше не получит. От меня по крайней мере.
От вас госпадин профессор всё равно в этой теме толку не было.
И слава Богу! А то мне пришлось бы об этом пожалеть.