Acest proiect isi propune sa ofere o animatie bazata pe fenomenul Persistance Of Vision(fun facts la [1]),fenomen definit stiintific ca fiind fenomenul de inertie a retinei care face ca o imagine sa persiste pe retina circa 1/25 sec.
Acest fenomen sta la baza multor animatii si efecte vizuale interesante,ceea ce m-a determinat sa aleg aceasta tema.Datorita timpului si resurselor limitate am ales o animatie relativ simpla si anume un ceas digital.
Schema bloc a proiectului are urmatoarele module principale:
Lista de piese:
Pentru programarea microcontrolerului am folosit limbajul C și WinAvr.
Programul consta in definirea unei matrici de patternuri,fiecare linie din matrice corespunzand unei cifre ce trebuie afisata, si afisarea acestora cu un delay corespunzator in functie de necesitati.
Datorita faptului ca ventilatorul are sensul de rotatie invers acelor de ceasornic, in bucla inifinita am afisat formatul hh:mm:ss de la sfarsit la inceput. Afisarea se face efectiv prin activarea ledurilot conectate pe porturile B si D.
Pentru a incrementa numarul de secunde am setat un timer care sa genereze o intrerupere la fiecare secunda(exemplu la [x]) si in tratarea ei incrementez niste variabile globale corespunzatoare secundei,minutului si orei. De asemenea am implementat si o functie de setare a ceasului,practic putem seta ora dorita de la care se incepe afisarea.
Rezultatul a fost un proiect functional, insa din cauza faptului ca acesta nu are o viteza de rotatie constanta ceasul afisat se roteste usor.Am incercat sa compensez viteza de rotatie mai scazuta datorata greutatii placii prin delay-uri cat mai mici la afisarea unei cifre, insa nu am reusit 100% acest lucru.
Codul sursa:pov_sursa.zip