Katsed 2

Ülesanne “Potentsiomeeter”

Töö kirjeldus:

kui on väike pingejärg siis põleb punased LED kui pingejärg on suurem siis põleb ainult kollased LED kui ping on kõige suurem siis põleb ainult roheline LED

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 dioodid, takisti, juhtmed ja potentsiomeeter plaadiga.Potentsiomeeter töötab nii kui seda pöörata ta reguleerib pingejärgu.

Potentsiomeetri rakendus:

Valgustuse heleduse reguleerimine ruumis

Helitugevuse reguleerimine

Pingereguleerimine

Seadme režiimi vahetamine

Jne

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:

  1. sensorPin: Arduino analoogsisendi pinna number, millelt soovitakse andmeid lugeda (nt A0, A1, A2 jne).
  2. analogRead(): Arduino funktsioon, mis loeb analoogsisendi pinna pinge väärtust. Tagastab väärtuse vahemikus 0 kuni 1023, olenevalt sisendpingest.
  3. map(): Arduino funktsioon, mis teisendab ühe vahemiku väärtusi teise vahemikuks. Näiteks kasutatakse seda sageli analoogsisendi väärtuste kohandamiseks teisele skaalale. Funktsioon võtab argumendiks alg- ja sihtvahemiku piirid ning teisendatava väärtuse ning tagastab vastava väärtuse sihtvahemikus.


This post is also available in ru_RU.