abc Arduino
Modulisanje širine impulsa - analogan ulaz - izlaz sa LED diodom - /PWM PULSE WIDTH MODULATION/ 4
Primjena osciloskopa
9.3. Očitavati vrijednosti sa poteniciometra na analognomu ulazu (opseg 0-1023) i na digitalnom izlazu koristeći PWM davati odgovarajući napon za LED diodu.
Vidi opis PWM: 1 I 2
Arduino očitava analogan ulaz za napon od 0 do 5 V ima vrijednosti od 0 do 1023 respektivno.
Pri ispisu mogu se koristiti digitalni pinovi koji imaju PWM osobinu, to su 3, 5, 6, 9, 10, 11. Označeni su sa ~. Opseg vrijednosti na izlazu je 0-255. Zato očitanu analognu vrijednost na ulazu u opsegu od 0 do 1023 treba pretvoriti-konvertovati u opseg vrijednosti od 0 do 255. Pretvaranje se izvodi map() funkcijom::
izlaznavrijednost = map(ocitanavrijednost, 0, 1023, 0, 255);
Za prikaz izlaza koristi se mjerni instrument osciloskop. Osciloskop grafički na ekranu na ekranu prikazuje promjenu napana u određenom intervalu.
Korisnik bira vremenski opseg prikaza.
Za ovaj slučaj se koristi:
- PERIOD Frekvencija generisanog signala je oko 490Hz
Šema povezivanja: |
Ispis |
Elementi:
- Potenciometar
- LED dioda
- otpornik 220 Ω 1 kom
- osciloskop
- Arduino modul |
Slika 2. Promjena širine impulsa - PWM
|
|
Listing programa :
// analogan ulaz - izlaz sa LED diodom - Primjena osciloskopa
int ledPin = 6; // izlaz na digitalni pin
int analogniulaz = A0; // analogan ulaz
int ocitanavrijednost = 0; // ulazna vrijednost
int izlaznavrijednost; // izlazna vrijednost od 0 - 255
int kasni = 10; // kasnjenje u ms
void setup() {
pinMode(ledPin, OUTPUT); // izlaz na LED
Serial.begin(9600); // setup serial
}
void loop() {
ocitanavrijednost = analogRead(analogniulaz);
// pretvaranje opsega ulaznih vrijednosti od 0-1234 u izlazne 0-255
izlaznavrijednost = map(ocitanavrijednost, 0, 1023, 0, 255);
analogWrite(ledPin, izlaznavrijednost); // izlazna vrijednost
Serial.print("in: "); // serijski monitor
Serial.print(ocitanavrijednost);
Serial.print(" out: ");
Serial.println(izlaznavrijednost);
delay(kasni);
}
|
|
|
|