Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:apredescu:pov-display [2021/06/01 18:27]
andrei.carapcea [Timer1 si modul de functionare]
pm:prj2021:apredescu:pov-display [2021/06/02 22:50] (current)
andrei.carapcea [Timer1 si modul de functionare]
Line 120: Line 120:
 Pinout Arduino Nano: Pinout Arduino Nano:
  
-{{:​pm:​prj2021:​apredescu:​nano-pinout.jpg?700|}}+{{:​pm:​prj2021:​apredescu:​800px-arduino-nano-pinout.png?700|}} 
 + 
 +[[https://​commons.wikimedia.org/​wiki/​File:​Arduino-nano-pinout.png | Sursa Arduino Nano pinout]]
  
 Am ales sa conectez LED-urile astfel incat sa ocupe fix portul PD (PD0-PD7 sau D2-D7 + D1, D0, adica RX0 si TX1). Astfel, pentru a modifica starea LED-urilor, se scrie direct valoarea retinuta in memorie in PORTD. Am ales sa conectez LED-urile astfel incat sa ocupe fix portul PD (PD0-PD7 sau D2-D7 + D1, D0, adica RX0 si TX1). Astfel, pentru a modifica starea LED-urilor, se scrie direct valoarea retinuta in memorie in PORTD.
Line 141: Line 143:
        
    // input capture interrupt enable    // input capture interrupt enable
-   ​TIMSK1 = (1 << ICIE1)+   ​TIMSK1 = (1 << ICIE1);
    // enable output compare A match interrupt    // enable output compare A match interrupt
-   ​TIMSK1 |= (1 << OCIE1A)+   ​TIMSK1 |= (1 << OCIE1A);
    // timer overflow interrupt enable    // timer overflow interrupt enable
    ​TIMSK1 |= (1 << TOIE1);    ​TIMSK1 |= (1 << TOIE1);
Line 155: Line 157:
 Acum, pentru fiecare unghi din cele 64, se va intra pe ISR-ul TIMER1_COMPA_vect,​ unde se poate afisa starea curenta a LED-urilor si se poate incrementa indicele in vectorul de afisare. La final, se actualizeaza OCR1A pentru a genera o intrerupere la urmatorul unghi. Acum, pentru fiecare unghi din cele 64, se va intra pe ISR-ul TIMER1_COMPA_vect,​ unde se poate afisa starea curenta a LED-urilor si se poate incrementa indicele in vectorul de afisare. La final, se actualizeaza OCR1A pentru a genera o intrerupere la urmatorul unghi.
  
 +De asemenea, am folosit un "frame buffer"​ pentru a afisa textul. Astfel, nu apar artefacte atunci cand se actualizeaza configuratia display-ului si se afiseaza o configuratie incompleta.
  
  
Line 160: Line 163:
  
 ===== Rezultate obținute ===== ===== Rezultate obținute =====
 +
 +Proiectul a fost finalizat cu succes. Efectul se vede bine cu ochiul liber.
 +
 +Am realizat niste poze cu o expunere mai lunga pentru a evidentia fenomenul de persistence of vision:
 +
 +Ceas analogic:
 +
 +{{:​pm:​prj2021:​apredescu:​img_20210601_113701.jpg?​300|}}
 +
 +PM 2021:
 +
 +{{:​pm:​prj2021:​apredescu:​pm-2021.jpg?​300|}}
 +
 +Afisare RPM curent:
 +
 +{{:​pm:​prj2021:​apredescu:​rpm.jpg?​300|}}
 +
 +Pe filmari, efectul nu se vede la fel de bine, intrucat depinde mult de FPS.
 +
 +
 +Am facut si o filmare slow-motion pentru a evidentia mai bine modul in care isi schimba starea LED-urie.
 +
 +[[https://​www.youtube.com/​watch?​v=lnbqhCc3trI | Filmare POV display slow motion]]
 +
 +[[https://​www.youtube.com/​watch?​v=2-uD5XKbjIg | Filmare POV display ceas analogic]]
 +
 +[[https://​www.youtube.com/​watch?​v=q6oAxlLsWLQ | Filmare POV display afisare "​Proiect PM", apoi "POV 2021"​]]
  
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +Proiectul a fost interesant si are un rezultat satisfacator vizual.
 +
 +A fost o experienta placuta pe partea de hardware si de software.
 +
 +Cea mai dificila parte a proiectului este echilibrarea partii rotative, mai ales daca nu se foloseste un motor suficient de puternic.
 +
 +Posibilitati de extindere a proiectului:​
 +  * modul Bluetooth + aplicatie de mobil pentru configurarea modurilor de iluminare
 +  * modul RTC pentru afisarea timpului in timp real
 +  * folosirea unui sistem de transmisie a puterii wireless pentru a alimenta componentele de pe rotor
 ===== Download ===== ===== Download =====
 +PDF:
  
-===== Jurnal ===== +https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​apredescu/​pov-display?​do=export_pdf ​ 
-25-04-2021: Draft pagina wiki+ 
 +Cod: 
 + 
 +{{:​pm:​prj2021:​apredescu:​pm-pov-display.zip|}}
 ===== Bibliografie ===== ===== Bibliografie =====
-PDF: https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​apredescu/​pov-display?​do=export_pdf ​+
  
 [[http://​www.techydiy.org/​arduino-pov-display/​| techydiy POV display]] [[http://​www.techydiy.org/​arduino-pov-display/​| techydiy POV display]]
 +
 +[[https://​ocw.cs.pub.ro/​courses/​_media/​pm/​atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf | Datasheet atmega328p]]
pm/prj2021/apredescu/pov-display.1622561225.txt.gz · Last modified: 2021/06/01 18:27 by andrei.carapcea
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0