Ülesanne Potentsiomeeter
Ülesanne “Potentsiomeeter”
Kasutatud komponendid:
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (15tk)
Takisti (9tk, 1kOm)
LED (9tk: 3 punane, 3 roheline, 3 kollane)
Potentsiomeeter(1tk)
Töö protsess:
Ühendage plaadiga dioodid, takisti, juhtmed ja potentsiomeeter. Potentsiomeeter reguleerib pingejärku vastavalt sellele, kuidas seda pöörata.
Kui pingejärk on madal, süttivad punased LED-id. Kui pingejärk tõuseb, süttivad ainult kollased LED-id. Kui pinget on kõige rohkem, süttivad ainult rohelised LED-id.
Protensiomeetri rakendus:
Reguleerimine valgustuse heleduse taseme, helitugevuse, pingetaseme, seadme režiimi vahetamise jne jaoks.
Skeem:

Programm:
int sensorPin = 0;
int ledred1 = 13; //red
int ledblue1 = 12; //blue
int ledgreen1 = 11; //green
int ledred2 = 10; //red
int ledblue2 = 9; //blue
int ledgreen2 = 8; //green
int ledred3 = 7; //red
int ledblue3 = 6; //blue
int ledgreen3 = 5; //green
int Value_new;
void setup() {
pinMode(ledred1, OUTPUT);
pinMode(ledred2, OUTPUT);
pinMode(ledred3, OUTPUT);
pinMode(ledblue1, OUTPUT);
pinMode(ledblue2, OUTPUT);
pinMode(ledblue3, OUTPUT);
pinMode(ledgreen1, OUTPUT);
pinMode(ledgreen2, OUTPUT);
pinMode(ledgreen3, OUTPUT);
}
void red() {
digitalWrite(ledred1, HIGH);
digitalWrite(ledred2, HIGH);
digitalWrite(ledred3, HIGH);
delay(100);
digitalWrite(ledred1, LOW);
digitalWrite(ledred2, LOW);
digitalWrite(ledred3, LOW);
delay(100);
}
void blue() {
digitalWrite(ledblue1, HIGH);
digitalWrite(ledblue2, HIGH);
digitalWrite(ledblue3, HIGH);
delay(200);
digitalWrite(ledblue1, LOW);
digitalWrite(ledblue2, LOW);
digitalWrite(ledblue3, LOW);
delay(200);
}
void green() {
digitalWrite(ledgreen1, HIGH);
digitalWrite(ledgreen2, HIGH);
digitalWrite(ledgreen3, HIGH);
delay(100);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledgreen3, LOW);
delay(200);
}
void loop() {
Value_new = analogRead(sensorPin);
Value_new = map(Value_new, 0, 1023, 1, 4);
if (Value_new == 2) {
red();
} else if (Value_new == 3) {
blue();
} else if (Value_new == 4) {
green();
} else {
digitalWrite(ledred1, LOW);
digitalWrite(ledred2, LOW);
digitalWrite(ledred3, LOW);
digitalWrite(ledblue1, LOW);
digitalWrite(ledblue2, LOW);
digitalWrite(ledblue3, LOW);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledgreen3, LOW);
}
}
Video:
Uued funktsioonid:
**sensorPin:** Arduino analoogpinni number, kust soovite andmeid lugeda (nt A0, A1, A2 jne.).
**analogRead():** Arduino funktsioon, mis mõõdab sisendpinge analoogpinnil. See tagastab 0–1023 vahemiku numbri, mis sõltub sisendpingest.
**map():** Arduino funktsioon, mis teisendab arvud ühest vahemikust teise. Seda kasutatakse tavaliselt analoogpinge väärtuse muutmiseks soovitud skaalale. See võtab argumendina esialgse ja sihtvahemiku piirid ning teisendatava väärtuse, tagastades vastava väärtuse sihtvahemikus.
**Value_new:** Tavaliselt on see muutuja või konstant, mis tähistab uut väärtust pärast toimingut või protsessi, selle täpne tähendus ja kasutamine sõltuvad rakenduse kontekstist.