experement 2

Ü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.