Differences

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

Link to this comparison view

info2:laboratoare:03 [2017/02/20 12:33]
127.0.0.1 external edit
info2:laboratoare:03 [2021/03/23 14:02] (current)
ioana_maria.culic [PWM - Old]
Line 1: Line 1:
-===== Laboratorul 03. =====+===== PWM =====
  
 +===== Scop =====
 +  * familiarizarea cu operațiile analogice de output
  
 +===== Cuvinte cheie =====
 +  * pinMode, analogWrite,​ PWM, rezistor
 +  * frecvență,​ uptime, perioadă
 +
 +===== Pulse Width Modulation ===== 
 +
 +Pulse Width Modulation este o metoda de a reduce puterea eliberată de un semnal electric, prin partajarea semnalului în părți discrete.
 +
 +{{:​info2:​duty_cycle_examples.png?​400|200}}
 +
 +Fizic, pentru a reduce puterea eliberată de un Arduino, îi spunem să elibereze 5v în eșantioane de timp. Astfel, dacă vrem o medie de putere eliberată de 2.5V, setăm pinul respectiv să elibereze 5v, jumătate din timp.
 +
 +==== Pini Analogici ==== 
 +
 +Spre deosebire de pinii digitali care pot elibera doar 0 sau 5v, pinii analogici pot citi sau scrie valori mai variate (folosite pentru finețea măsurătorii). Valorile de scriere pot fi între 0-255 care sunt mapate pentru 0 - 5v.
 +
 +Pinii analogici sunt semnalați cu **"​~"​**.
 +
 +==== Analog Write ====
 +
 +Pentru a folosi Pulse Width Modulaton (PWM) folosim **analogWrite** în loc de **digitalWrite**
 +
 +<code arduino.c>​
 +
 +void setup() {
 +    pinMode(PINUL_MEU,​ OUTPUT);
 +}
 +void loop() {
 +    analogWrite(PINUL_MEU,​ 127); //Aprindem pinul la jumătate in intensitatea maximă
 +    delay(3000);​ // Așteaptă 3 secunde
 +    analogWrite(PINUL_MEU,​ 0); // Ledul este stins
 +    ​
 +    analogWrite(PINUL_MEU,​ 255); //Aprindem pinul la intensitatea maximă
 +    delay(3000);​ // Așteaptă 3 secunde
 +    analogWrite(PINUL_MEU,​ 0); // Ledul este stins
 +
 +    analogWrite(PINUL_MEU,​ 68); //Aprindem pinul la un sfert din intensitatea maximă
 +    delay(3000);​ // Așteaptă 3 secunde
 +    analogWrite(PINUL_MEU,​ 0); // Ledul este stins
 +}
 +</​code>​
 +
 +
 +===== Exerciții =====
 +Toate exercițiile vor fi realizate pe [[https://​www.tinkercad.com/​| Tinkercad]]
 +  - Folosind un **for** aprindeți un led de la intensitate mică, la maxim, la din nou intensitate mică și în final stins complet folosind **analogWrite** și **delay**.
 +  - Folosind o funcție care primește doi parametri ce reprezintă **pini pentru led-uri**. Porniți cu un led aprins maxim și unul stins, pe cel stins aprindeți-l pe o perioadă de timp similar cu exercițiul 1 iar pe cel aprins, stingeți-l pe o perioadă de timp.
 +  - Parcurgeți o serie de minim 5 led-uri și aplicați pe fiecare, principiul de la exercițiul 1.
info2/laboratoare/03.1487586835.txt.gz · Last modified: 2019/03/18 16:20 (external edit)
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