Помогите новичку с часами и дисплеем Nokia 3110

Alexus-12
Offline
Зарегистрирован: 28.03.2014

Добрый день. Только начинаю изучать Ардуино. Собрал для начала часы на микросхеме 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();

 

Alexus-12
Offline
Зарегистрирован: 28.03.2014

С выводом разобрался методом научного тыка. Надо заменить display.write на display.print.

Но вопрос про описание команд библиотек и где их брать остается открытым. Где можно найти описание команд библиотек?

Клапауций
Offline
Зарегистрирован: 10.02.2013

Alexus-12 пишет:

Но вопрос про описание команд библиотек и где их брать остается открытым. Где можно найти описание команд библиотек?

ну, всё описалово библиотек на сайте автора библиотеки, если автор библиотеки забил на документацию, то смотришь исходники библиотеки и примеры с ея использованием или просто - хугл в помощь.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

хммм снимай часы. помогу так и быть. заберу их :)

com
Offline
Зарегистрирован: 06.09.2013

Alexus-12 пишет:

С выводом разобрался методом научного тыка. Надо заменить display.write на display.print.

Но вопрос про описание команд библиотек и где их брать остается открытым. Где можно найти описание команд библиотек?

обычно библиотеки пишут люди вменяемые, и небольшое знание английского языка помогает понять назначение всех чужих функций, типа begin, setcontrast, write и т.д.

а тонкости, типа возвращаемого значения, количества аргументов и пр. завсегда можно в исходниках уточнить

Alexus-12
Offline
Зарегистрирован: 28.03.2014

Я не сильно ещё разобрался, потому в исходниках не сильно понимаю куда смотреть.

Я использую наверное самые распространённые библиотеки. Но не могу найти на них описания. Может у кого-то есть - дайте ссылочку.