Differences

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

Link to this comparison view

pm:lab:lab4-2023-2024 [2026/03/22 18:24]
florin.stancu
pm:lab:lab4-2023-2024 [2026/03/22 19:28] (current)
florin.stancu
Line 168: Line 168:
 </​note>​ </​note>​
  
-**Task 3** (4 puncte) Configurați ​ADC-ul astfel încât conversia valorilor citite de pe senzorul de temperatura să se întâmple automat la interval de 1 sec. Folosiți-vă de timer1, este deja configurat ​să genereze întreruperi la fiecare secundăDacă temperatura detectată trece de un prag în grade celsius setat de voi (TEMP_THRESHOLD),​ dați un avertisment! Activați buzzer-ul cu funcția ''​alarm()''​Hint: citiți în datasheet despre ADC Auto Trigger Enable și ADC Auto Trigger Source, care pot începe conversiile automat la apariția unui eveniment;+<note warning>​ 
 +La o citire naivă a ADC-ului, observați că există o șansă (destul ​de ridicată) ca butoanele ​să nu fie detectate corectAcest lucru se datorează efectului ​de bouncing mecanic al butonului ​(ADC-ul fiind suficient de rapid să sesizeze aceste schimbări).
  
-<​note ​tip>Hint: folositi functia ​''​remap_interval'' ​pentru a calcula duty-cycle pentru cele 2 timere</​note>​+Din păcate, un simplu debounce pe bază de timp nu va fi suficient, deoarece primele citiri ale butonului abia apăsat (până la eliminarea vibrațiilor) vor fi eronate. Sfatul ar fi să faceți mai multe citiri (într-un for), să cumulați valorile și să le filtrați (cel mai bine ar fi cu o metodă statistică,​ e.g. deviație standard, dar o simplă medie aritmetică va funcționa decent în majoritatea cazurilor). 
 +</note> 
 + 
 +**Task 3** (4 puncte) Configurați ADC-ul astfel încât conversia valorilor citite de pe senzorul de temperatura să se întâmple automat la interval de 1 sec. Folosiți-vă de timer1, este deja configurat să genereze întreruperi la fiecare secundă. Dacă temperatura detectată trece de un prag în grade celsius setat de voi (TEMP_THRESHOLD),​ dați un avertisment! Activați buzzer-ul cu funcția ​''​alarm()''​. Hint: citiți în datasheet despre ADC Auto Trigger Enable și ADC Auto Trigger Source, care pot începe conversiile automat la apariția unui eveniment;
  
 **Task 4 (BONUS)** (1 punct) Să zicem că vrem să vedem evoluția datelor în timp (i.e. live!). Pentru aceasta, ne putem folosi de un "​Serial plotter",​ o aplicație ce monitorizează interfața serială și ne desenează un grafic frumos cu datele primite. Pentru VS Code, instalați extensia "​Teleplot",​ trimiteți măsurătorile ADC cu funcția ''​printf_teleplot()'',​ selectați extensia setand port-ul și baud rate, și veți primi un grafic în timp real. **Task 4 (BONUS)** (1 punct) Să zicem că vrem să vedem evoluția datelor în timp (i.e. live!). Pentru aceasta, ne putem folosi de un "​Serial plotter",​ o aplicație ce monitorizează interfața serială și ne desenează un grafic frumos cu datele primite. Pentru VS Code, instalați extensia "​Teleplot",​ trimiteți măsurătorile ADC cu funcția ''​printf_teleplot()'',​ selectați extensia setand port-ul și baud rate, și veți primi un grafic în timp real.
Line 187: Line 191:
 ===== 6. Responsabili laborator ===== ===== 6. Responsabili laborator =====
  
-  * Eduard Radu 
   * Alexandru Jipa   * Alexandru Jipa
 +  * Stancu Florin
  
pm/lab/lab4-2023-2024.1774196659.txt.gz · Last modified: 2026/03/22 18:24 by florin.stancu
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