Clock with Arduino
Arduino clock, easy to assemble, you can set the date and time by the Serial monitor
Components and supplies
display nokia 5110
Jumper wires (generic)
Arduino UNO
Resistor 221 ohm
Apps and platforms
Arduino IDE
Project description
Code
code
c_cpp
// pin 3 - Serial clock out (SCLK) // pin 4 - Serial date out (DIN) // pin 5 - date/Command select (D/C) // pin 6 - LCD chip select (CS/CE) // pin 7 - LCD reset (RST)
1//Programa : Teste display Nokia 5110 usando biblioteca Adafruit 2//Autor 3 : VINICIUS LOPES 4 5#include <Adafruit_GFX.h> 6#include <Adafruit_PCD8544.h> 7 8// 9 pin 3 - Serial clock out (SCLK) 10// pin 4 - Serial date out (DIN) 11// pin 5 12 - date/Command select (D/C) 13// pin 6 - LCD chip select (CS/CE) 14// pin 7 - 15 LCD reset (RST) 16 17Adafruit_PCD8544 display = Adafruit_PCD8544(3,4,5,6,7); 18 19int 20 second,minute, hour, day, mounth,year; 21unsigned long UtlTime; 22 23void setup() 24 25pinMode(2,OUTPUT); 26UtlTime=0; { 27 28minute=0; 29hour=0; 30day=0; 31 32mounth=0; 33year=0; 34Serial.begin(9600); 35 display.begin(); 36 37 display.setContrast(50); // Adjust the display contrast 38 display.clearDisplay(); 39 //Apaga o buffer e o display 40 display.setTextSize(1); //Seta o tamanho do 41 texto 42 display.setTextColor(BLACK); //Seta a cor do texto 43 44 45display.print(" 46 date e hour "); 47display.setCursor(0,10); 48display.print(" com Arduino"); 49 50display.display(); 51delay (5000); 52 53 54//Configura o minute 55display.clearDisplay(); 56 57display.setCursor(0,0); 58display.print("minute: "); 59display.display(); 60Serial.print("\ 61in 62 between minute:"); 63while(minute==0) { 64if (Serial.available() > 0) 65 66{ 67minute= Serial.parseInt(); 68} 69} 70display.print(minute); 71 72display.display(); 73delay(1000); 74 75//Configura a hour 76display.clearDisplay(); 77 78display.setCursor(0,0); 79display.print("hour: "); 80display.display(); 81Serial.print("\ 82in 83 between hour:"); 84while(hour==0) 85{ 86if (Serial.available() > 0) 87 88{ 89hour= Serial.parseInt(); 90} 91} 92display.print(hour); 93 94display.display(); 95delay(1000); 96 97//Configura o day 98display.clearDisplay(); 99 100display.setCursor(0,0); 101display.print("day: "); 102display.display(); 103 104Serial.print("\ 105in between day:"); 106while(day==0) 107{ 108if 109 (Serial.available() > 0) 110{ 111day= Serial.parseInt(); 112} 113} 114 115display.print(day); 116display.display(); 117delay(1000); 118 119//Configura 120 o mês 121display.clearDisplay(); 122display.setCursor(0,0); 123display.print("mounth: 124 "); 125display.display(); 126Serial.print("\ 127in between mounth:"); 128while(mounth==0) 129 130{ 131if (Serial.available() > 0) 132{ 133mounth= Serial.parseInt(); 134 135} 136} 137display.print(mounth); 138 display.display(); 139delay(1000); 140 141 142//Configura o year 143display.clearDisplay(); 144display.setCursor(0,0); 145 146display.print("year: "); 147display.display(); 148Serial.print("\ 149in 150 between year:"); 151while(year==0) 152{ 153if (Serial.available() > 154 0) 155{ 156year= Serial.parseInt(); 157} 158} 159display.print(year); 160 161 162display.display(); 163delay(1000); 164display.clearDisplay(); 165 166} 167 168 169void loop() 170{ 171 172if(millis()-UtlTime<0) 173{ 174UtlTime=millis(); 175 176} 177else 178{ 179second=int((millis()-UtlTime)/1000); 180} 181 182if(second>59) 183{ 184second=0; 185minute++; 186UtlTime=millis(); 187 188if(minute>59) 189{ 190hour++; 191minute=0; 192if(hour>23) 193 194{ 195day++; 196hour=0; 197if(mounth==1||mounth==3||mounth==5||mounth==7||mounth==8||mounth==10||mounth==12) 198 199{ 200if(day>31) 201{ 202day=1; 203mounth++; 204 205if(mounth>12) 206{ 207year++; 208mounth=1; 209 210} 211} 212} 213else if(mounth==2) 214 215{ 216if(year%400==0) 217{ 218if(day>29) 219 220{ 221day=1; 222mounth++; 223} 224 225} 226else if((year%4==0)&&(year%100!=0)) 227{ 228 229if(day>29) 230{ 231day=1; 232mounth++; 233 234} 235} 236else 237{ 238if(day>28) 239 240{ 241day=1; 242mounth++; 243} 244 245} 246} 247else 248{ 249if(day>30) 250 251{ 252day=1; 253mounth++; 254} 255 256} 257} 258} 259} 260 261display.clearDisplay(); 262 263delay(1000); 264Serial.print(day); 265Serial.print("/"); 266Serial.print(mounth); 267 268Serial.print("/"); 269Serial.print(year); 270Serial.println(); 271 272display.setCursor(0,0); 273 274display.print("date "); 275display.print(day); 276display.print("/"); 277 278display.print(mounth); 279display.print("/"); 280display.print(year); 281 282 283 284display.display(); 285Serial.print(hour); 286Serial.print(":"); 287Serial.print(minute); 288 289Serial.print(":"); 290Serial.print(second); 291Serial.print("\ 292"); 293 294Serial.println(); 295 296display.setCursor(0,10); 297display.print("hour 298 "); 299display.print(hour); 300display.print(":"); 301display.print(minute); 302 303display.print(":"); 304display.print(second); 305display.display(); 306char 307 tecla; 308tecla = Serial.read(); 309if(tecla=='1'){ 310digitalWrite(2,LOW); 311} 312if(tecla=='2'){ 313 314 digitalWrite(2, HIGH); 315} 316 317} 318 319
code
c_cpp
// pin 3 - Serial clock out (SCLK) // pin 4 - Serial date out (DIN) // pin 5 - date/Command select (D/C) // pin 6 - LCD chip select (CS/CE) // pin 7 - LCD reset (RST)
1//Programa : Teste display Nokia 5110 usando biblioteca Adafruit 2//Autor : VINICIUS LOPES 3 4#include <Adafruit_GFX.h> 5#include <Adafruit_PCD8544.h> 6 7// pin 3 - Serial clock out (SCLK) 8// pin 4 - Serial date out (DIN) 9// pin 5 - date/Command select (D/C) 10// pin 6 - LCD chip select (CS/CE) 11// pin 7 - LCD reset (RST) 12 13Adafruit_PCD8544 display = Adafruit_PCD8544(3,4,5,6,7); 14 15int second,minute, hour, day, mounth,year; 16unsigned long UtlTime; 17 18void setup() 19pinMode(2,OUTPUT); 20UtlTime=0; { 21 22minute=0; 23hour=0; 24day=0; 25mounth=0; 26year=0; 27Serial.begin(9600); 28 display.begin(); 29 display.setContrast(50); // Adjust the display contrast 30 display.clearDisplay(); //Apaga o buffer e o display 31 display.setTextSize(1); //Seta o tamanho do texto 32 display.setTextColor(BLACK); //Seta a cor do texto 33 34 35display.print(" date e hour "); 36display.setCursor(0,10); 37display.print(" com Arduino"); 38display.display(); 39delay (5000); 40 41 42//Configura o minute 43display.clearDisplay(); 44display.setCursor(0,0); 45display.print("minute: "); 46display.display(); 47Serial.print("\ 48in between minute:"); 49while(minute==0) { 50if (Serial.available() > 0) 51{ 52minute= Serial.parseInt(); 53} 54} 55display.print(minute); 56display.display(); 57delay(1000); 58 59//Configura a hour 60display.clearDisplay(); 61display.setCursor(0,0); 62display.print("hour: "); 63display.display(); 64Serial.print("\ 65in between hour:"); 66while(hour==0) 67{ 68if (Serial.available() > 0) 69{ 70hour= Serial.parseInt(); 71} 72} 73display.print(hour); 74display.display(); 75delay(1000); 76 77//Configura o day 78display.clearDisplay(); 79display.setCursor(0,0); 80display.print("day: "); 81display.display(); 82Serial.print("\ 83in between day:"); 84while(day==0) 85{ 86if (Serial.available() > 0) 87{ 88day= Serial.parseInt(); 89} 90} 91display.print(day); 92display.display(); 93delay(1000); 94 95//Configura o mês 96display.clearDisplay(); 97display.setCursor(0,0); 98display.print("mounth: "); 99display.display(); 100Serial.print("\ 101in between mounth:"); 102while(mounth==0) 103{ 104if (Serial.available() > 0) 105{ 106mounth= Serial.parseInt(); 107} 108} 109display.print(mounth); 110 display.display(); 111delay(1000); 112 113//Configura o year 114display.clearDisplay(); 115display.setCursor(0,0); 116display.print("year: "); 117display.display(); 118Serial.print("\ 119in between year:"); 120while(year==0) 121{ 122if (Serial.available() > 0) 123{ 124year= Serial.parseInt(); 125} 126} 127display.print(year); 128 129display.display(); 130delay(1000); 131display.clearDisplay(); 132 133} 134 135void loop() 136{ 137 138if(millis()-UtlTime<0) 139{ 140UtlTime=millis(); 141} 142else 143{ 144second=int((millis()-UtlTime)/1000); 145} 146if(second>59) 147{ 148second=0; 149minute++; 150UtlTime=millis(); 151if(minute>59) 152{ 153hour++; 154minute=0; 155if(hour>23) 156{ 157day++; 158hour=0; 159if(mounth==1||mounth==3||mounth==5||mounth==7||mounth==8||mounth==10||mounth==12) 160{ 161if(day>31) 162{ 163day=1; 164mounth++; 165if(mounth>12) 166{ 167year++; 168mounth=1; 169} 170} 171} 172else if(mounth==2) 173{ 174if(year%400==0) 175{ 176if(day>29) 177{ 178day=1; 179mounth++; 180} 181} 182else if((year%4==0)&&(year%100!=0)) 183{ 184if(day>29) 185{ 186day=1; 187mounth++; 188} 189} 190else 191{ 192if(day>28) 193{ 194day=1; 195mounth++; 196} 197} 198} 199else 200{ 201if(day>30) 202{ 203day=1; 204mounth++; 205} 206} 207} 208} 209} 210 211display.clearDisplay(); 212delay(1000); 213Serial.print(day); 214Serial.print("/"); 215Serial.print(mounth); 216Serial.print("/"); 217Serial.print(year); 218Serial.println(); 219 220display.setCursor(0,0); 221display.print("date "); 222display.print(day); 223display.print("/"); 224display.print(mounth); 225display.print("/"); 226display.print(year); 227 228 229display.display(); 230Serial.print(hour); 231Serial.print(":"); 232Serial.print(minute); 233Serial.print(":"); 234Serial.print(second); 235Serial.print("\ 236"); 237Serial.println(); 238 239display.setCursor(0,10); 240display.print("hour "); 241display.print(hour); 242display.print(":"); 243display.print(minute); 244display.print(":"); 245display.print(second); 246display.display(); 247char tecla; 248tecla = Serial.read(); 249if(tecla=='1'){ 250digitalWrite(2,LOW); 251} 252if(tecla=='2'){ 253 digitalWrite(2, HIGH); 254} 255 256} 257 258
Downloadable files
hardware
// pin 3 - Serial clock out (SCLK) // pin 4 - Serial date out (DIN) // pin 5 - date/Command select (D/C) // pin 6 - LCD chip select (CS/CE) // pin 7 - LCD reset (RST)
hardware

Comments
Only logged in users can leave comments