Помогите новичку с часами и дисплеем Nokia 3110
- Войдите на сайт для отправки комментариев
Добрый день. Только начинаю изучать Ардуино. Собрал для начала часы на микросхеме DS1307. Часі работают и выдают данные на монитор порта COM.
Далее захотел подключить дисплей от Нокии 3110 и выводить данные на него. Дисплей подключен и работает нормально, тестовые программы на нём выполняются. Но при попытке отразить на дисплее данные, получаемые от блока часов на экране отображаются символы псевдографии, а часов как таковых нет.
Я думаю что проблема в несоответсвии типов данных, которые получаются от блока часов и передаются на дисплей. Облазил весь интернет в поисках описания команд для используемых мной библиотек DS1307.h и Adafruit_GFX_Library.h, чтобы сопоставить типы данных, но не нашёл ни для одной, ни для второй описаний никаких. Или я не правильно эти данные вызываю. Но без описания библиотеки не могу разобраться.
Подскажите - где искать описания команд для библиотек Ардуино. Также прошу посмотреть код программы и подскажите как согласовать типы данных между библиотеками, чтобы на экран нормально выводились часы. Может посоветуете другие библиотеки. Спасибо.
#include <Wire.h>
#include "DS1307.h"
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
// pin 3 - Serial clock out (SCLK)
// pin 2 - Serial data out (DIN)
// pin 8 - Data/Command select (D/C)
// pin 7 - LCD chip select (CS)
// pin 6 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(3, 2, 8, 7, 6);
void setup()
{
Serial.begin(9600);
display.begin(); // Инициализация дисплея
display.clearDisplay(); // Очищаем дисплей
display.display();
display.setContrast(50); // Устанавливаем контраст
/*RTC.stop();
RTC.set(DS1307_SEC,40); //Секунды
RTC.set(DS1307_MIN,25); //Минуты
RTC.set(DS1307_HR,01); //Часы
RTC.set(DS1307_DOW,4); //День недели
RTC.set(DS1307_DATE,28); //Дата
RTC.set(DS1307_MTH,3); //Месяц
RTC.set(DS1307_YR,14); //Год
RTC.start();
*/
}
void loop()
{
Serial.print(RTC.get(DS1307_HR,true)); //read the hour and also update all the values by pushing in true
Serial.print(":");
Serial.print(RTC.get(DS1307_MIN,false));//read minutes without update (false)
Serial.print(":");
Serial.print(RTC.get(DS1307_SEC,false));//read seconds
Serial.print(" "); // some space for a more happy life
Serial.print(RTC.get(DS1307_DATE,false));//read date
Serial.print("/");
Serial.print(RTC.get(DS1307_MTH,false));//read month
Serial.print("/");
Serial.print(RTC.get(DS1307_YR,false)); //read year
Serial.println();
display.setCursor(0, 0); // Устанавливаем курсор
display.setTextColor(BLACK); // Устанавливаем цвет текста
display.setTextSize(1); // Устанавливаем размер текста
display.write(RTC.get(DS1307_HR,true));
display.write(':');
display.write(RTC.get(DS1307_MIN,false));
display.write(':');
display.write(RTC.get(DS1307_SEC,false));
display.display();
delay(1000);
// Очищаем дисплей
display.clearDisplay();
display.display();
С выводом разобрался методом научного тыка. Надо заменить display.write на display.print.
Но вопрос про описание команд библиотек и где их брать остается открытым. Где можно найти описание команд библиотек?
Но вопрос про описание команд библиотек и где их брать остается открытым. Где можно найти описание команд библиотек?
ну, всё описалово библиотек на сайте автора библиотеки, если автор библиотеки забил на документацию, то смотришь исходники библиотеки и примеры с ея использованием или просто - хугл в помощь.
хммм снимай часы. помогу так и быть. заберу их :)
С выводом разобрался методом научного тыка. Надо заменить display.write на display.print.
Но вопрос про описание команд библиотек и где их брать остается открытым. Где можно найти описание команд библиотек?
обычно библиотеки пишут люди вменяемые, и небольшое знание английского языка помогает понять назначение всех чужих функций, типа begin, setcontrast, write и т.д.
а тонкости, типа возвращаемого значения, количества аргументов и пр. завсегда можно в исходниках уточнить
Я не сильно ещё разобрался, потому в исходниках не сильно понимаю куда смотреть.
Я использую наверное самые распространённые библиотеки. Но не могу найти на них описания. Может у кого-то есть - дайте ссылочку.