This is an old revision of the document!
Autor: Anghel Bogdan Gabriel
Grupa: 333CC
Un display persistence of vision ce prezinta un ceas caruia i se poate seta o alarma.
Se conecteaza un board cu 8/16 LEDuri la un Arduino UNO alaturi de un senzor. Prin rotirea suportului pe care sunt montate ledurile cu ajutorul motorului DC, se va obtine obtine un text reprezentand ora curenta care va parea persistent ochiului uman. Acesta va avea un buzzer conectat care va suna o alarma cand se ajunge la o ora prestabilita.
Codul a fost scris in Arduino IDE. M-am inspirat din versiuni gasite pe internet, modificand pentru a se potrivi porturile, senzorul, sincronizarea, caracterele. Am mapat caracterele, fiecare avand o secventa de 5 faze:
int NUMBER9[]={1,1,1,1,0,0,0,1, 1,0,0,1,0,0,0,1, 1,0,0,1,0,0,0,1, 1,0,0,1,0,0,0,1, 1,1,1,1,1,1,1,1}; int NUMBER8[]={0,1,1,0,1,1,1,0, 1,0,0,1,0,0,0,1, 1,0,0,1,0,0,0,1, 1,0,0,1,0,0,0,1, 0,1,1,0,1,1,1,0}; int NUMBER7[]={1,0,0,0,0,0,0,0, 1,0,0,0,1,0,0,0, 1,0,0,0,1,0,0,0, 1,0,0,1,1,1,1,1, 1,1,1,0,1,0,0,0}; int NUMBER6[]={1,1,1,1,1,1,1,1, 1,0,0,0,1,0,0,1, 1,0,0,0,1,0,0,1, 1,0,0,0,1,0,0,1, 1,0,0,0,1,1,1,1}; int NUMBER5[]={1,1,1,1,1,0,0,1, 1,0,0,0,1,0,0,1, 1,0,0,0,1,0,0,1, 1,0,0,0,1,0,0,1, 1,0,0,0,1,1,1,1}; . . . . . .
Functia printLetter afiseaza litera curenta cu ajutorul ledurilor
void printLetter(int letter[]) { int y; for (y=0; y<8; y++) { digitalWrite(y+2, letter[y]); } delay(delayTime); for (y=0; y<8; y++) { digitalWrite(y+2, letter[y+8]); } delay(delayTime); for (y=0; y<8; y++) { digitalWrite(y+2, letter[y+16]); } delay(delayTime); for(y = 0; y<8; y++) { digitalWrite(y+2, letter[y+24]); } delay(delayTime); for(y = 0; y<8; y++) { digitalWrite(y+2, letter[y+32]); } delay(delayTime); for (y=0; y<8; y++) { digitalWrite(y+2, 0); } delay(letterSpace);
Acesta este aspectul final al proiectului. Din pacate nu functioneaza efectiv, intrucat motorul este prea slab pentru a putea invarti suportul suficient de repede. Voi incerca sa inlocuiesc fie suportul fie motorul pentru a-l face functional.
Datorita lipsei unui modul RTC, nu am putut realiza functionalitatea initial dorita, aceea de a avea un ceas POV cu alarma.