poniedziałek, 4 lipca 2016

Wakacyjne porządki - zegarek w 30 minut



Stwierdziłem ostatnio, że mam za dużo podzespołów czekających na wykorzystanie w większych projektach, które leżą w szafie i się marnują :( Trzeba było więc coś z tym zrobić.

Co leżało u mnie w szafie:
- moduł matryc dwukolorowych 32x16
- modulik z DS1307
- oczywiście arduino

Co z tego zrobiłem – prosty zegarek – przyda się zawsze – leży sobie teraz nad „kącikiem warsztatowym” całość w stylu amerykańskiego DIY – wszystko luźno na przewodach.




Wszystkie informacje są w tych dwóch linkach:
Cały kod prezentuje się w ten sposób:

#include "myMATRIX.h"
#include <Wire.h>
#include <DS1307.h>

#define RowA_Pin 2
#define RowB_Pin 3
#define RowC_Pin 4
#define RowD_Pin 5
#define OE_Pin 6
#define Red_Pin 7
#define Green_Pin 8
#define CLK_Pin 9
#define STB_Pin 10

DS1307 clock;
RTCDateTime dt;

void setup ()
{
  myMatrix.Init(Red_Pin, Green_Pin, CLK_Pin, RowA_Pin, RowB_Pin, RowC_Pin, RowD_Pin, OE_Pin, STB_Pin);

  clock.begin();

  // If date not set
  if (!clock.isReady())
  {
    // Set sketch compiling time
    clock.setDateTime(__DATE__, __TIME__);
  }
}
char tablica[20];
void loop()
{
  dt = clock.getDateTime();
  String napis = "";
  if ( dt.hour < 10 )
  {
    napis += "0";
  }
  napis += String(dt.hour);
  napis += ":";
  if ( dt.minute < 10 )
  {
    napis += "0";
  }
  napis += String(dt.minute);
  napis.toCharArray(tablica, 20);
  myMatrix.printString(2, 4, red, black, tablica);
  myMatrix.drawVLine(0, 3, 11, green);
  myMatrix.drawVLine(31, 3, 11, green);
  myMatrix.drawHLine(0,31,11,green);
  myMatrix.drawHLine(0,31,3,green);
  delay(1000);

}



Całość od pomysłu do zakończenia wraz z wykonywaniem połączeń zajęła mniej niż 30 minut, a moduły nie nudzą się w oczekiwaniu na ich docelowe wykorzystanie :)