Robootika “Potentsiomeetri kasutamine”
Potentsiomeeteri abil saate valida LED-pirni vilkumise intensiivsuse

int sensorPin = 0;
int ledPin = 13;
int sensorValue = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(sensorPin); // loeb analoog sisendi väärtust ja saadab tagasi täisarvu vahemikus 0 kuni 1023. See tähendab 10 bitilist täpsust (2^10 = 1024).
digitalWrite(ledPin, HIGH);
delay(sensorValue);
digitalWrite(ledPin, LOW);
delay(sensorValue);
float voltage = sensorValue * (5.0 / 1023.0); // konverteerime väärtuse (0 - 1023) ja tagastab (0 - 5V):
Serial.println(voltage); // Saadud tulemused kirjutame Serial Monitori.
}
Ülesanne 2 “Гирлянда-Valguskett”
Robootika “Valguskett”
Töö kirjeldus Potentsiomeetri kasutamine
Valguskett, kus on 5 režiimi
Töö protsess
Potentsameetri abil saate valida, millist režiimi soovite näha
Kasutatud komponeendid
- Juhtmed (14tk)
- LED (9tk: 3 punane, 3 roheline, 3 kollane)
- Potentsiomeeter(1tk)
- Arduino UNO plaat (1tk)
- Arendusplaat (1tk)
- Takisti (9tk, 220Om)

Skeem

Kood
int PontiPin=A0;
int LEDred1=13;
int LEDyellow1=12;
int LEDgreen1=11;
int LEDred2=10;
int LEDyellow2=9;
int LEDgreen2=8;
int LEDred3=7;
int LEDyellow3=6;
int LEDgreen3=5;
int PontValue=0;
int Uus_Value;
void setup()
{
pinMode(LEDred1,OUTPUT);
pinMode(LEDred2,OUTPUT);
pinMode(LEDred3,OUTPUT);
pinMode(LEDyellow1,OUTPUT);
pinMode(LEDyellow2,OUTPUT);
pinMode(LEDyellow3,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 yellow() {
digitalWrite(LEDyellow1, HIGH);
digitalWrite(LEDyellow2, HIGH);
digitalWrite(LEDyellow3, HIGH);
delay(200);
digitalWrite(LEDyellow1, LOW);
digitalWrite(LEDyellow2, LOW);
digitalWrite(LEDyellow3, 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 koikvarvid(){
digitalWrite(LEDred1, HIGH);
digitalWrite(LEDred2, HIGH);
digitalWrite(LEDred3, HIGH);
digitalWrite(LEDyellow1, HIGH);
digitalWrite(LEDyellow2, HIGH);
digitalWrite(LEDyellow3, HIGH);
digitalWrite(LEDgreen1, HIGH);
digitalWrite(LEDgreen2, HIGH);
digitalWrite(LEDgreen3, HIGH);
delay(100);
digitalWrite(LEDred1, LOW);
digitalWrite(LEDred2, LOW);
digitalWrite(LEDred3, LOW);
digitalWrite(LEDyellow1, LOW);
digitalWrite(LEDyellow2, LOW);
digitalWrite(LEDyellow3, LOW);
digitalWrite(LEDgreen1, LOW);
digitalWrite(LEDgreen2, LOW);
digitalWrite(LEDgreen3, LOW);
delay(100);
}
void uksvarv() {
for(int i=0; i<3; ++i) {
digitalWrite(LEDred1, HIGH);
delay(200);
digitalWrite(LEDred1, LOW);
digitalWrite(LEDyellow1, HIGH);
delay(200);
digitalWrite(LEDyellow1, LOW);
digitalWrite(LEDgreen1, HIGH);
delay(200);
digitalWrite(LEDgreen1, LOW);
digitalWrite(LEDred2, HIGH);
delay(200);
digitalWrite(LEDred2, LOW);
digitalWrite(LEDyellow2, HIGH);
delay(200);
digitalWrite(LEDyellow2, LOW);
digitalWrite(LEDgreen2, HIGH);
delay(200);
digitalWrite(LEDgreen2, LOW);
digitalWrite(LEDred3, HIGH);
delay(200);
digitalWrite(LEDred3, LOW);
digitalWrite(LEDyellow3, HIGH);
delay(200);
digitalWrite(LEDyellow3, LOW);
digitalWrite(LEDgreen3, HIGH);
delay(200);
digitalWrite(LEDgreen3, LOW);
}
}
void kaskvarv()
{
digitalWrite(LEDred1, HIGH);
digitalWrite(LEDred2, HIGH);
digitalWrite(LEDred3, HIGH);
digitalWrite(LEDyellow1, HIGH);
digitalWrite(LEDyellow2, HIGH);
digitalWrite(LEDyellow3, HIGH);
delay(500);
digitalWrite(LEDred1, LOW);
digitalWrite(LEDred2, LOW);
digitalWrite(LEDred3, LOW);
digitalWrite(LEDyellow1, LOW);
digitalWrite(LEDyellow2, LOW);
digitalWrite(LEDyellow3, LOW);
digitalWrite(LEDyellow1, HIGH);
digitalWrite(LEDyellow2, HIGH);
digitalWrite(LEDyellow3, HIGH);
digitalWrite(LEDgreen1, HIGH);
digitalWrite(LEDgreen2, HIGH);
digitalWrite(LEDgreen3, HIGH);
delay(500);
digitalWrite(LEDyellow1, LOW);
digitalWrite(LEDyellow2, LOW);
digitalWrite(LEDyellow3, LOW);
digitalWrite(LEDgreen1, LOW);
digitalWrite(LEDgreen2, LOW);
digitalWrite(LEDgreen3, LOW);
digitalWrite(LEDred1, HIGH);
digitalWrite(LEDred2, HIGH);
digitalWrite(LEDred3, HIGH);
digitalWrite(LEDgreen1, HIGH);
digitalWrite(LEDgreen2, HIGH);
digitalWrite(LEDgreen3, HIGH);
delay(500);
digitalWrite(LEDred1, LOW);
digitalWrite(LEDred2, LOW);
digitalWrite(LEDred3, LOW);
digitalWrite(LEDgreen1, LOW);
digitalWrite(LEDgreen2, LOW);
digitalWrite(LEDgreen3, LOW);
}
void uus_rezim() {
digitalWrite(LEDred1, HIGH);
digitalWrite(LEDred2, HIGH);
digitalWrite(LEDred3, HIGH);
digitalWrite(LEDyellow1, LOW);
digitalWrite(LEDyellow2, LOW);
digitalWrite(LEDyellow3, LOW);
digitalWrite(LEDgreen1, LOW);
digitalWrite(LEDgreen2, LOW);
digitalWrite(LEDgreen3, LOW);
delay(200);
digitalWrite(LEDred1, LOW);
digitalWrite(LEDred2, LOW);
digitalWrite(LEDred3, LOW);
digitalWrite(LEDyellow1, HIGH);
digitalWrite(LEDyellow2, HIGH);
digitalWrite(LEDyellow3, HIGH);
digitalWrite(LEDgreen1, LOW);
digitalWrite(LEDgreen2, LOW);
digitalWrite(LEDgreen3, LOW);
delay(200);
digitalWrite(LEDred1, LOW);
digitalWrite(LEDred2, LOW);
digitalWrite(LEDred3, LOW);
digitalWrite(LEDyellow1, LOW);
digitalWrite(LEDyellow2, LOW);
digitalWrite(LEDyellow3, LOW);
digitalWrite(LEDgreen1, HIGH);
digitalWrite(LEDgreen2, HIGH);
digitalWrite(LEDgreen3, HIGH);
delay(200);
}
void loop()
{ int Pot_Value = analogRead(PontiPin);
int constrainedValue = constrain(Pot_Value, 0, 1023);
int Uus_Value = map(constrainedValue, 0, 1023, 0, 6);
switch (Uus_Value)
{
case 0: red();
break;
case 1: yellow();
break;
case 2: green();
break;
case 3: koikvarvid();
break;
case 4: uksvarv();
break;
case 5: kaskvarv();
break;
case 6: uus_rezim();
default:
digitalWrite(LEDred1, LOW);
digitalWrite(LEDred2, LOW);
digitalWrite(LEDred3, LOW);
digitalWrite(LEDyellow1, LOW);
digitalWrite(LEDyellow2, LOW);
digitalWrite(LEDyellow3, LOW);
digitalWrite(LEDgreen1, LOW);
digitalWrite(LEDgreen2, LOW);
digitalWrite(LEDgreen3, LOW);
break;
}
}
Video
Uued funktsioonid
analogRead() – Loeb väärtust määratud analoogviigult
constrain() – Piirab arvu, et see oleks vahemikus.
map() – Kaardistab arvu ühest vahemikust teise. See tähendab, et väärtus fromLow saaks kaardistatud toLow, väärtus alatesHigh toHigh, väärtused vahel väärtuste vahel-vahel jne.
switch…case – Nagu If-i avaldused, kontrollib ka switch case programmide voolu, võimaldades programmeerijatel määrata erineva koodi, mida tuleks täita erinevates tingimustes.
pinMode() – Seadistab määratud viigu käituma kas sisendi või väljundina.
Serial.begin() – Määrab andmeedastuse kiiruse bittides sekundis (baud).