Vacker och praktisk klocka med kalender (4 / 5 steg)
Steg 4: kodning.
1. Hämta arduino demo-projektet (clockWithCalendar.rar) till din dator.
2. öppna projektet med Arduino IDE, och sedan ladda upp programmet till din styrelse.
För mer information? hänvisas till den WIKI-sida.
Mer spännande funktionerna hänvisas till Användarmanualen.
Huvudkoden visas nedan.
#include < Wire.h >
#include < I2C_LCD.h >
#include "DS1307.h"
För detials av funktionen användning, se "I2C_LCD bruksanvisning".
Du kan ladda ner "I2C_LCD manualen" från I2C_LCD WIKI-sida:
http://www.seeedstudio.com/wiki/I2C_LCD
I2C_LCD LCD; definiera ett objekt av I2C_LCD klass
uint8_t I2C_LCD_ADDRESS = 0x51; Adress enhetskonfigurationen, standardvärdet är 0x51.
extern GUI_Bitmap_t bmClock; Deklarera bitmapp datapaketet.
char monthTab [13] [6] = {"Null", "Jan.,", "Feb.,", "Mar.,", "April", "Maj", "Den yngre", "Jul,".,
"Aug.,", "Sep.,", "Oktober", "Nov.,", "Dec.,"};
char weekTab [8] [10] = {"Null", "Må,", "Tis", "Ons,", "Servicetid,", "Fre", "Lör,", "Sun.,"};
char dayTab [32] [6] = {"Null", "1: a,", "2: a,", "3: e,", "4.", "5th,",
"6,", "7: e,", "8: e,", "9", "10,",
"11", "12,", "13: e,", "14", "15",
"16,", "17", "18th,", "19", "20th,",
"21th,", "22,", "23,", "24", "25",
"26", "27,", "28: e,", "29,", "30", "31,"};
char timeTab [10] = {"00: 00:00"};
DS1307 klocka; definiera ett objekt av DS1307 klass
void setup()
{
Wire.BEGIN(); I2C controller initiering.
Clock.BEGIN(); RTC initiering.
clock.fillByYMD(2015,07,31); Jul 31,2015
clock.fillByHMS(21,20,30); 21:20:30 "
clock.fillDayOfWeek(FRI); Fredag
clock.setTime(); Skriv tid till RTC chip.
}
void loop()
{
LCD. CleanAll(WHITE); Ren skärmen med svart eller vit.
Starta upp logotypen på bakgrundsbelysningen vidare, bitmappsläge arbete.
Om du vill visa tecken behaga switch till WM_CharMode.
LCD. WorkingModeConf (på, på, WM_BitmapMode);
Visa bitmapp på den angivna platsen.
Prototyp: void DrawScreenAreaAt (GUI_Bitmap_t * bitmapp, uint8_t x, uint8_t y)
LCD. DrawScreenAreaAt (& bmClock, 4, 3);
Rita en rektangel, och fylld med svart;
Prototyp: void DrawRectangleAt (x, y, bredd, höjd, läge);
LCD. DrawRectangleAt (0, 0, 128, 5, BLACK_FILL);
LCD. DrawRectangleAt (0, 59, 128, 5, BLACK_FILL);
Starta upp logotypen på bakgrundsbelysningen vidare, karaktär arbete läge.
LCD. WorkingModeConf (på, på, WM_CharMode);
While(1)
{
Uppdatera datum och tid.
clock.getTime();
Ange teckenstorlek.
LCD. FontModeConf (Font_6x8, FM_ANL_AAA, BLACK_BAC);
Ange den start koordinaten.
LCD. CharGotoXY(5,10);
Datumformat: fre, 24, Jul., 2015
LCD.print(weekTab[clock.dayOfWeek]);
LCD.print(dayTab[clock.dayOfMonth]);
LCD.print(monthTab[clock.month]);
LCD.print(clock.year+2000);
Ange teckenstorlek.
LCD. FontModeConf (Font_10x20, FM_ANL_AAA, BLACK_BAC);
Ange den start koordinaten.
LCD. CharGotoXY(40,32);
Tidsformat: 00:00:00
snprintf (timeTab, 9, "% 02d: % 02d: % 02d", clock.hour, clock.minute, clock.second);
LCD.print(timeTab);
Delay(1000);
}
}