Подключить Pole Display к ардуино.
- Войдите на сайт для отправки комментариев
Пнд, 23/11/2015 - 19:55
Достался мне вот такого типа девайс:
на rs-232c
как сподручнее будет подключить его к ардуино?
внутри есть:
атмел ат89с
еепром Winbond w27c512
какой-то контроллер Winbond w78c032c
ls245
ls373
ly66256sl
сам дисплей идентифицировать не удалось, надпись на плате RGVFD9CB1010
ЗЫ - и как проверить - живой ли сам дисплей?
подключается он через rs232c (в ножке), питание 12 вольт, а с ножки до дисплея уже идет обычный rj-45
У меня есть девайс. Там RS232 выведен на miniUSB, при этом USB там и не пахнет.
Подрубаешь через USB-TTL-MAX3232 и пихаешь в порт всякое. По уму на него надо даташит найти, чтобы скорость обмена не угадывать.
У меня есть девайс. Там RS232 выведен на miniUSB, при этом USB там и не пахнет.
Подрубаешь через USB-TTL-MAX3232 и пихаешь в порт всякое. По уму на него надо даташит найти, чтобы скорость обмена не угадывать.
А если обойти родной rs232 и at89c и подрубаться к нему так же, как, например, и к 1602?
Один хрен даташит на дисплей нужен.
Поковырял этот дисплей, даташит на него так и не обнаружил, при попытке подключения через ардуину и SoftwareSerial в лучшем случае выдает рандомные кракозябры поверх демо-режима.
Сам дисплей по размерам и ТТХ похож на этот:
http://www.noritake-itron.com/NewWeb/Glass/specs/DN2029DB.pdf
По крайней мере, на нем проглядывается норитэйковский адрес, конкретной модели не видно.
на плате фигурирует RG VFD9CB1010 - по этим данным даташита найти тоже не получилось %)
Нашел мануал вроде бы как на него - http://www.firich-rus.ru/doc/Custom%20Displ.ay%20VFD%20Manual.pdf?PHPSESSID=6515184a31cd64eb860b738c5eed165a
но в нем тоже полезного немного
С помощью Штрих-м'ской программы и дров получилось его проверить c компьютера, через ком-порт работает.
Пока все еще непонятно как заставить ее слушать ардуину через SoftwareSerial, в планах - сделать на нем часы\термометр\гигрометр.
кому надо схема, прошивка, сервис мануал- вот тут http://monitor.espec.ws/section9/topic180280.html
а вот тут про подключение этого дисплея к компу http://www.diary.ru/~taren/p188328827.htm?oam
Дратути!
Удалось ли кому сделать на этом дисплейчике что нибудь стоящее? Например, https://pikabu.ru/story/tekstovyie_chasyi_quotvremya_vyipitquot_5396869
Мне удалось :)
[quote=lavr]
Мне удалось :)
[/]
Поделитесь информацией. Раздобыл такой экран охота тоже приспособить.
Ладно, попробуем.
Выше есть отсыл к схеме дисплея. Находим Rx Tx. У меня к дисплею идет 5 проводов: +12В, земля, Rx, Tx, и еще раз земля.
Я использую ардуино про мини 5В.
SoftwareSerial mySerial(11, 10); // RX, TX
Надеюсь, Вы не начинающий, как я?
mySerial.println(" \215\216\213\234 \227\200\221\216\202 ");эта строка выводит надпись "ноль часов", т.е 215 это н, 216_ это о, а- это 200
Я использую часы реального времени DS1307.
Приветствую, не могли бы вы поделится более подробно с подключением и загрузкой данного ИВЛ? За ранее спасибо.
Мне удалось :)
Мне удалось :)
#include <RTClib.h> #include <SoftwareSerial.h> #include <Wire.h> RTC_DS1307 RTC; // Массив со словами char* myNumeral[]={"\215\216\213\234", // ноль - 0 "\216\204\215\200", //одна - 1 "\204\202\205", //две - 2 "\222\220\210", //три - 3 "\227\205\222\233\220\205", //четыре - 4 "\217\237\222\234", //пять - 5 "\230\205\221\222\234", //шесть - 6 "\221\205\214\234", //семь - 7 "\202\216\221\205\214\234", //восемь - 8 "\204\205\202\237\222\234", //девять - 9 "\204\205\221\237\222\234", // десять - 10 "\216\204\210\215\215\200\204\226\200\222\234", //одиннадцать - 11 "\204\202\205\215\200\204\226\200\222\234", // двенадцать - 12 "\222\220\210\215\200\204\226\200\222\234", //тринадцать - 13 "\227\205\222\233\220\215\200\204\226\200\222\234", //четырнадцать - 14 "\217\237\222\215\200\204\226\200\222\234", // пятнадцать - 15 "\230\205\221\222\215\200\204\226\200\222\234", //шестнадцать - 16 "\221\205\214\215\200\204\226\200\222\234", // семнадцать - 17 "\202\216\221\205\214\215\200\204\226\200\222\234", //восемнадцать - 18 "\204\205\202\237\222\215\200\204\226\200\222\234", //девятнадцать - 19 "\204\202\200\204\226\200\222\234", // двадцать - 20 "\222\220\210\204\226\200\222\234", // тридцать - 21 "\221\216\220\216\212", //сорок - 22 "\217\237\222\234\204\205\221\237\222", //пятьдесят - 23 "\216\204\210\215", // один - 24 "\204\202\200", // два - 25 "\227\200\221\216\202", // часов - 26 "\227\200\221", // час - 27 "\227\200\221\200", // часа - 28 "\214\210\215\223\222", // минут - 29 "\214\210\215\223\222\200", // минута - 30 "\214\210\215\223\222\233", // минуты - 31 "\214\210\215", // мин - 32 "\217\216\215\205\204\205\213\234\215\210\212", // понедельник - 33 "\202\222\216\220\215\210\212", // вторник - 34 "\221\220\205\204\200", // среда - 35 "\227\205\222\202\205\220\203", // четверг - 36 "\217\237\222\215\210\226\200", //пятница - 37 "\221\223\201\201\216\222\200", // суббота - 38 "\202\216\221\212\220\205\221\205\215\234\205", // воскресенье - 39 "\237\215\202\200\220\237", // января - 40 "\224\205\202\220\200\213\237", // февраля - 41 "\214\200\220\222\200", // марта - 42 "\200\217\220\205\213\237", // апреля - 43 "\214\200\237", // мая - 44 "\210\236\215\237", // июня - 45 "\210\236\213\237", // июля - 46 "\200\202\203\223\221\222\200", // августа - 47 "\221\205\215\222\237\201\220\237", // сентября - 48 "\216\212\222\237\201\220\237", // октября - 49 "\215\216\237\201\220\237", // ноября - 50 "\204\205\212\200\201\220\237", // декабря - 51 "\203\216\204" // год - 52 }; String stringOne, stringTwo, stringThree, stringFour, stringFive, stringSix, stringHour, stringMin, stringHourd,stringHourdd, stringMind,stringMindd, stringSecd, stringSecdd, stringPerd, stringDaty, stringVtor, stringdday,stringDatyd, stringddayy, stringdmonth, stringdmonthh, stringGod, stringGodn; // эту фигню объявил для сборки времени словами из массива SoftwareSerial mySerial(11, 10); // RX, TX const int buttonPin = 2; // на второй вывод повесил кнопку выбора варианта отображения времени const int buttonChplus = 3; // на третий вывод повесил кнопку коррентировки час+ const int buttonChminus = 4; // на четвертый вывод повесил кнопку коррентировки час- const int buttonMinplus = 5; // на пятый вывод повесил кнопку коррентировки минуты+ const int buttonMinminus = 6; // на шестой вывод повесил кнопку коррентировки минуты- const int buttonSeknol = 7; // на седьмой вывод повесил кнопку коррентировки секунды в ноль const int buttonDispleysbros = 8; // на восьмой вывод повесил кнопку сброса дисплея const int buttonCorrHour = 12; // на двенадцатом выводе переключатель корректировки час минута секунда const int buttonCorrDay = 9; // на двенадцатом выводе переключатель корректировки дней месяца года int den, mec, god, dday,agod,ygod,mgod; // для вычисления дня недели int yar, mesyac, denec, chas, minuta, sekunda; // для коррентировки int korrektwrem; // коррекция ошибки часов реального времени void setup() { // Инициализируем последовательный интерфейс и ждем открытия порта: Serial.begin(9600); while (!Serial) { ; // ожидаем подключения к последовательному порту. Необходимо только для Leonardo } Serial.println("Goodnight moon!"); mySerial.begin(9600); { Serial.begin(57600); Wire.begin(); RTC.begin(); //RTC.adjust(DateTime(2018, 2, 5, 19, 16, 0)); // задаём год/ месяц/ дата/ часы/ минуты/ секунды } { pinMode(buttonPin, INPUT); // вывод этот объявим входом для варианта отображения впемени pinMode(buttonChplus, INPUT); // и этот вывод объявим входом для корректироки час + pinMode(buttonChminus, INPUT); // и этот вывод объявим входом для корректировки час - pinMode(buttonMinplus, INPUT); // и этот вывод объявим входом для корректировки минута + pinMode(buttonMinminus, INPUT); // и этот вывод объявим входом для корректировки минута - pinMode(buttonSeknol, INPUT); // и этот вывод объявим входом для корректировки секунда в 0 pinMode(buttonDispleysbros, INPUT); // и этот вывод объявим входом для сброса дисплея pinMode(buttonCorrHour, INPUT); // и этот вывод объявим входом для полодения тумблера коррекция времени часминсек pinMode(buttonCorrDay, INPUT); // и этот вывод объявим входом для полодения тумблера коррекция времени деньмесяцгод } } void loop() // run over and over { if (mySerial.available()) Serial.write(mySerial.read()); if (Serial.available()) mySerial.write(Serial.read()); // mySerial.print("\f"); // для тестирования DateTime now = RTC.now(); { yar = now.year(); // присваиваем переменным значения года mesyac = now.month(); // месяца denec = now.day(); // дня chas = now.hour(); // часа minuta = now.minute(); // минуты sekunda = now.second(); // и секунды } int buttonStatehour = digitalRead(buttonCorrHour); // считываем состояние тумблера корректировки часминсек if (buttonStatehour == LOW) // если низкая, корректируем время часминсек {int buttonStatehp = digitalRead(buttonChplus); //настройка времени кнопками + час if (buttonStatehp == LOW){ chas = chas + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatehm = digitalRead(buttonChminus); //настройка времени кнопками - час if (buttonStatehm == LOW){ chas = chas - 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatemp = digitalRead(buttonMinplus); //настройка времени кнопками + минуты if (buttonStatemp == LOW){ minuta = minuta + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatemm = digitalRead(buttonMinminus); //настройка времени кнопками - минуты if (buttonStatemm == LOW){ minuta = minuta - 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatesn = digitalRead(buttonSeknol); //настройка времени кнопками секунда в ноль if (buttonStatesn == LOW){ sekunda = 0; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStateds = digitalRead(buttonDispleysbros); //сбросить дисплей if (buttonStateds == LOW){ mySerial.print("\f"); delay(50); } } int buttonStateday = digitalRead(buttonCorrDay); // считываем состояние тумблера корректировки деньмесяцгод if (buttonStateday == LOW) // если низкая, можно корректировать время деньмесяцгод { int buttonStatehp = digitalRead(buttonChplus); //настройка времени кнопками + год if (buttonStatehp == LOW){ yar = yar + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatehm = digitalRead(buttonChminus); //настройка времени кнопками - год if (buttonStatehm == LOW){ yar = yar - 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatemp = digitalRead(buttonMinplus); //настройка времени кнопками + день if (buttonStatemp == LOW){ denec = denec + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatemm = digitalRead(buttonMinminus); //настройка времени кнопками - день if (buttonStatemm == LOW){ denec = denec - 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStatesn = digitalRead(buttonSeknol); //настройка времени кнопками + месяц if (buttonStatesn == LOW){ mesyac = mesyac + 1; RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); delay(50); } int buttonStateds = digitalRead(buttonDispleysbros); //сбросить дисплей if (buttonStateds == LOW){ mySerial.print("\f"); delay(50); } } if (chas == 19 && minuta == 03 && sekunda == 30 && korrektwrem == 0 ) // корректировка часов реального времени { sekunda = sekunda - 7; korrektwrem = korrektwrem + 1 ;RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); // на 7 секунд }; if (chas == 19 && minuta == 03 && sekunda == 59 ) { korrektwrem = 0; } int buttonState = digitalRead(buttonPin); // считываем состояние кнопки if (buttonState == HIGH) { // если высокая, время словами - иначе вся информация switch (now.hour()) { //собираем первую строку case 0: stringOne = myNumeral[0]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " "; break; case 1: stringOne = myNumeral[24]; stringThree = myNumeral[27]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 3: stringOne = myNumeral[3]; stringThree = myNumeral[28]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 4: stringOne = myNumeral[4]; stringThree = myNumeral[28]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 5: stringOne = myNumeral[5]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 6: stringOne = myNumeral[6]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 7: stringOne = myNumeral[7]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 8: stringOne = myNumeral[8]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 9: stringOne = myNumeral[9]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 10: stringOne = myNumeral[10]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 11: stringOne = myNumeral[11]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 12: stringOne = myNumeral[12]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 13: stringOne = myNumeral[13]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 14: stringOne = myNumeral[14]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 15: stringOne = myNumeral[15]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 16: stringOne = myNumeral[16]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 17: stringOne = myNumeral[17]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 18: stringOne = myNumeral[18]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 19: stringOne = myNumeral[19]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 20: stringOne = myNumeral[20]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break; case 21: stringOne = myNumeral[20]; stringTwo = myNumeral[24]; stringThree = myNumeral[27]; stringHour = " " + stringOne + " " + stringTwo + " " + stringThree + " ";break; case 22: stringOne = myNumeral[20]; stringTwo = myNumeral[25]; stringThree = myNumeral[28]; stringHour = " " + stringOne + " " + stringTwo + " " + stringThree + " ";break; case 23: stringOne = myNumeral[20]; stringTwo = myNumeral[3]; stringThree = myNumeral[28]; stringHour = " " + stringOne + " " + stringTwo + " " + stringThree + " ";break; } switch (now.minute()) { // собираем вторую строку case 0: stringFour = myNumeral[0]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 1: stringFour = myNumeral[1]; stringSix = myNumeral[30]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 2: stringFour = myNumeral[2]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 3: stringFour = myNumeral[3]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 4: stringFour = myNumeral[4]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 5: stringFour = myNumeral[5]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 6: stringFour = myNumeral[6]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 7: stringFour = myNumeral[7]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 8: stringFour = myNumeral[8]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 9: stringFour = myNumeral[9]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 10: stringFour = myNumeral[10]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 11: stringFour = myNumeral[11]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 12: stringFour = myNumeral[12]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 13: stringFour = myNumeral[13]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 14: stringFour = myNumeral[14]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 15: stringFour = myNumeral[15]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 16: stringFour = myNumeral[16]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 17: stringFour = myNumeral[17]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 18: stringFour = myNumeral[18]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 19: stringFour = myNumeral[19]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 20: stringFour = myNumeral[20]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 21: stringFour = myNumeral[20]; stringFive = myNumeral[1];stringSix = myNumeral[30]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 22: stringFour = myNumeral[20]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 23: stringFour = myNumeral[20]; stringFive = myNumeral[3];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 24: stringFour = myNumeral[20]; stringFive = myNumeral[4];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 25: stringFour = myNumeral[20]; stringFive = myNumeral[5];stringSix = myNumeral[29]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 26: stringFour = myNumeral[20]; stringFive = myNumeral[6];stringSix = myNumeral[29]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 27: stringFour = myNumeral[20]; stringFive = myNumeral[7];stringSix = myNumeral[29]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 28: stringFour = myNumeral[20]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 29: stringFour = myNumeral[20]; stringFive = myNumeral[9];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 30: stringFour = myNumeral[21]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 31: stringFour = myNumeral[21]; stringFive = myNumeral[1];stringSix = myNumeral[30]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 32: stringFour = myNumeral[21]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 33: stringFour = myNumeral[21]; stringFive = myNumeral[3];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 34: stringFour = myNumeral[21]; stringFive = myNumeral[4];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 35: stringFour = myNumeral[21]; stringFive = myNumeral[5];stringSix = myNumeral[29]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 36: stringFour = myNumeral[21]; stringFive = myNumeral[6];stringSix = myNumeral[29]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 37: stringFour = myNumeral[21]; stringFive = myNumeral[7];stringSix = myNumeral[29]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 38: stringFour = myNumeral[21]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 39: stringFour = myNumeral[21]; stringFive = myNumeral[9];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 40: stringFour = myNumeral[22]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 41: stringFour = myNumeral[22]; stringFive = myNumeral[1];stringSix = myNumeral[30]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 42: stringFour = myNumeral[22]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 43: stringFour = myNumeral[22]; stringFive = myNumeral[3];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 44: stringFour = myNumeral[22]; stringFive = myNumeral[4];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 45: stringFour = myNumeral[22]; stringFive = myNumeral[5];stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 46: stringFour = myNumeral[22]; stringFive = myNumeral[6];stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 47: stringFour = myNumeral[22]; stringFive = myNumeral[7];stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 48: stringFour = myNumeral[22]; stringFive = myNumeral[8];stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 49: stringFour = myNumeral[22]; stringFive = myNumeral[9];stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 50: stringFour = myNumeral[23]; stringSix = myNumeral[29]; stringMin = "\n " + stringFour + " " + stringSix + " "; break; case 51: stringFour = myNumeral[23]; stringFive = myNumeral[1];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break; case 52: stringFour = myNumeral[23]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 53: stringFour = myNumeral[23]; stringFive = myNumeral[3];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 54: stringFour = myNumeral[23]; stringFive = myNumeral[4];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 55: stringFour = myNumeral[23]; stringFive = myNumeral[5];stringSix = myNumeral[29]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 56: stringFour = myNumeral[23]; stringFive = myNumeral[6];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break; case 57: stringFour = myNumeral[23]; stringFive = myNumeral[7];stringSix = myNumeral[29]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 58: stringFour = myNumeral[23]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; case 59: stringFour = myNumeral[23]; stringFive = myNumeral[9];stringSix = myNumeral[32]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break; } mySerial.println(stringHour); //печать первой строки mySerial.print(stringMin); // печать второй строки delay(500); } else { den = now.day(); mec = now.month(); god = now.year(); agod = (14 - mec) / 12; ygod = god - agod; mgod = mec + 12 * agod - 2; dday = ( den + ygod + (ygod / 4) - ( ygod / 100 ) + (ygod / 400 ) + (31 * mgod) / 12) %7; // вычисление дня недели //Serial.print(dday); stringHourdd = now.hour(); stringMindd = (now.minute());stringSecdd = now.second(), stringDatyd = now.day(), stringGod = now.year(), stringGodn = myNumeral[52] ; switch (dday) { // блок имени дня недели case 0: stringdday = myNumeral[39]; break; case 1: stringdday = myNumeral[33]; break; case 2: stringdday = stringddayy + " "; stringddayy =myNumeral[34]; break; case 3: stringdday = stringddayy + " "; stringddayy = myNumeral[35]; break; case 4: stringdday = stringddayy + " "; stringddayy = myNumeral[36]; break; case 5: stringdday = stringddayy + " "; stringddayy = myNumeral[37]; break; case 6: stringdday = stringddayy + " "; stringddayy = myNumeral[38]; break; } switch (now.month()) { // блок имени месяца case 1: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[40]; break; case 2: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[41]; break; case 3: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[42]; break; case 4: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[43]; break; case 5: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[44]; break; case 6: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[45]; break; case 7: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[46]; break; case 8: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[47]; break; case 9: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[48]; break; case 10: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[49]; break; case 11: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[50]; break; case 12: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[51]; break; } if (now.hour() < 10) // это нолики перед часами до 10 { stringHourd = '0' + stringHourdd; } else { stringHourd = stringHourdd; } if (now.minute() < 10) // это нолики перед минутами до 10 { stringMind = '0' + stringMindd; } else { stringMind = stringMindd; } if (now.second() < 10) // это нолики перед секундами до 10 { stringSecd = '0' + stringSecdd; } else { stringSecd = stringSecdd; } if (now.day() < 10) // это нолики перед датой до 10 { stringDaty = '0' + stringDatyd; } else { stringDaty = stringDatyd; } stringPerd = stringHourd + ':' + stringMind + ':' + stringSecd + " " + stringdday; // собираем первую строку stringVtor = "\r\n" + stringDaty + " " + stringdmonth + stringGod + " " + stringGodn; // собираем вторую строку mySerial.println(stringPerd); // печатаем первую строку mySerial.print(stringVtor); // а это вторую delay(100); } }Дерзайте!
Мда.
Чой?
Этих...они еще и так показывают... ;(
lavr, огромное спасибо за скетч. Буду собирать. DS3107 к сожалению нет, но есть DS3132.
lavr, огромное спасибо за скетч. Буду собирать. DS3107 к сожалению нет, но есть DS3132.
Исправлю DS3231, в наличи имею тоже тока этот модуль, буду пробовать переписать под него.
Вот собственно что получило, тяну остальную переферию, позже скину фото. lavr спасибо большое за внимание.
Красота
почти "пододеяльник", это намек что надо менять ?
Просто тэст
Интересно попробовать переписать чтоб цифра-знак был в две строки, буду изучать, если есть у кого возможноть, желание буду очень благодарен за помощь.
Тоже собрал, часы работают, но дисплей мигает постоянно и время некорректное (rts ds3232). Нужно подправить скетч под этот модуль. Еще, похоже у дисплеев шрифты разные. У меня как у mixa10, буква "Д" неестественно выглядит.
Попробуйте вместо "204" прописать латинское D, может, симпотишнее будет. Хотя, по мне и ваше Д нормальное.
ds 3231 получше , но, у меня было то, что было)))
Подскажите, что нужно исправить в скетче, чтобы заработал модуль ds3231?
https://lesson.iarduino.ru/page/podklyuchenie-rtc-chasy-realnogo-vremeni-ds1302-ds1307-ds3231-k-arduino/
Почитайте. Я думаю, разберетесь.
Кнопки вообще не подключал. Собирал недавно часики ради развлечения (arduino+ds3231+lcd), кнопки также не подключал, ничего подобного не наблюдалось. Попробую выводы подтянуть.
Давно это было...
257 int buttonState = digitalRead(buttonPin); // считываем состояние кнопки 258 if (buttonState == HIGH) { // если высокая, время словами - иначе вся информацияМожно просмотреть, где как.
Кстати, вам не нужна определенная часть кода: коррекции времени кнопочками, ежедневная коррекция часов реального времени... rts ds3232 поточнее будет...
Мне кажется, я достаточно закомментировал код. Каждый может написать для себя, вставить всякие ... восемь с четвертью или...полночь...или девять часов ровно...
Кнопки вообще не подключал. Собирал недавно часики ради развлечения (arduino+ds3231+lcd),
Заработало!!! Подтянул выводы кнопок к питанию и изображение перестало мигать. Спасибо mixa10!
Заработало!!! Подтянул выводы кнопок к питанию и изображение перестало мигать. Спасибо mixa10!
Исправил код буквы "ь" на \232
Были проблемы с включением: если включать одновременно ардуино и дисплей, то на дисплее были кракозябры вместо букв; если сначала дисплей, затем ардуино, то все было нормально. Добавил трехсекундную задержку в void setup и все нормализовалось.
lavr, подскажите, что это за таблица кодировки? И можно ли ее увидеть полностью?http://arduino.ru/forum/apparatnye-voprosy/podklyuchit-pole-display-k-arduino#comment-349548
lavr, подскажите, что это за таблица кодировки? И можно ли ее увидеть полностью?http://arduino.ru/forum/apparatnye-voprosy/podklyuchit-pole-display-k-arduino#comment-349548
Ну как же? Каждой буковке соответствующий цифровой код. Я их нашел с помощью научного тыка, но, т.к. строчные буквы мне были не интересны, таблица не полная...
Были проблемы с включением: если включать одновременно ардуино и дисплей, то на дисплее были кракозябры вместо букв; если сначала дисплей, затем ардуино, то все было нормально. Добавил трехсекундную задержку в void setup и все нормализовалось.
У меня импульсный блок питания 12В 2А, 5В для ардуины из этих 12 получаю посредством https://ru.aliexpress.com/item/MB102-Breadboard-Power-Supply-Module-3-3V-5V-For-Solderless-Breadboard/2027279953.html?spm=a2g0s.9042311.0.0.274233edL35wgQ
При включении запускается дислей, успевает подгрузиться название фирмы(некое ООО), затем запускается ардуина...в общем, всё хорошо :)
Если надумаете экспериментировать, всякие и три четверти, настоятельно рекомендую прописывть в вышеуказанной табличке. Помогает увидеть, что получиться ну, и, правильно пересчитать пробелы :)
За табличку спасибо. Я так и понял, что она была получена вручную.
Дополнил таблицу
Всем привет! Часы очень интересные,но 9 кнопок управления это перебор как мне кажется. Может кто на 4 скетч переделывал для себя? Поделитесь если не трудно.
Всем доброго времени.
Собрал такой проект но на ардуино Nano на кнопки кроме переключения режимов отображения реакции нет...
Подскажите где мог накосячить.. Кнопки к +5 подтянул через 10к
Разобрался. Включил програмно подтяжку входов к + и все пришло в норму