This is an old revision of the document!


Laboratorul 06 - 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.

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

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
}

Utilizarea unui Buzzer

Un Buzzer sau un difuzor piezo este un difuzor care este capabil să redea sunete simple și care se poate conecta extrem de ușor. Avem nevoie de:

  • O placă de dezvoltare Arduino
  • Un breadboard
  • O rezistență de 100 de Ohmi
  • Un buzzer

Schema de conectare este următoarea:

Pentru a putea interacționa din cod cu buzzer-ul avem la dispoziție următoarele funcții:

  • Funcția tone - redă pe un anumit pin precizat un semnal sonor la o frecvență dată
tone
tone(9, 1000); // redă pe pinul digital 9, un semnal sonor la frecvența de 1 KHz 
  • Funcția notone - oprește transmisia de semnal sonor pe un anumit pin
notone
noTone(9); // oprește redarea de sunet de pe pinul 9

În thinkercad, veți găsi în listă Buzzerul cu numele Piezo.

Exerciții

Toate exercițiile vor fi realizate pe Tinkercad

  1. 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.
  2. 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.
  3. Parcurgeți o serie de minim 5 led-uri și aplicați pe fiecare, principiul de la exercițiul 1.
info2/laboratoare/06.1617629064.txt.gz · Last modified: 2021/04/05 16:24 by alexandru.vochescu
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