Praktika 2: Potentsiomeetr ja Valguskett
Aruanne
Katse 2: -Potentsiomeetr-
Potentsiomeetr
Komponendid:

x1

x1

x1

x1

x7

x1
Kirjeldus:
See skeem võimaldab potentsiomeetri abil muuta LED-i vilkumise kiirust. Potentsiomeeter on ühendatud analoogsisendisse A0 ja LED PWM-väljundisse pin 3. Kood loeb potentsiomeetri väärtust ning vastavalt sellele lülitab LED-i sisse ja välja koos viitega. Samal ajal kuvatakse pinge väärtus Serial Monitoris.
Skeem:
Simulatsioon väljas:
Simulatsiooni tööl:


Kood:
int sensorPin = 0;
int ledPin = 3;
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.
}
Video:
Interaktiivne Arduino skeem
Ülesanne 2: Valguskett
Komponendid:

x1

x1

x6

x6

x17

x1
Kirjeldus:
See skeem juhib mitut LED-i erinevates režiimides potentsiomeetri abil. Kõigepealt määrame LED-id väljunditeks ning ühendame potentsiomeetri analoogsisendisse A0. Programmi käivitamisel loeb Arduino potentsiomeetri väärtuse ning määrab selle järgi, milline valgusrežiim käivitada.
Režiimide hulgas on:
- Kõik LED-id vilguvad korraga: kõik tuled süttivad ja kustuvad koos.
- LED-id vilguvad järjest ükshaaval: iga LED süttib eraldi, ükshaaval.
- LED-id vilguvad värvi kaupa: kõigepealt vilguvad ainult valged LED-id, seejärel punased ja lõpuks sinised.
- LED-id vilguvad juhuslikult: LED-id süttivad ja kustuvad suvalises järjekorras ja kiirusega, tekitades küünlaleegi efekti.
- “Jooksva tule” efekt: LED-ide süttimine liigub järjest läbi kogu rea, justkui tuli liiguks edasi.
- Kõik LED-id põlevad kogu aeg: kõik tuled jäävad pidevalt põlema.
Valitud režiimi käivitab ja juhib programm automaatselt vastavalt potentsiomeetri asendile. LED-id lülituvad sisse ja välja erineval viisil ning vilkuvad selgelt eristatavates mustrites.
Skeem:
Simulatsioon väljas:
Simulatsiooni tööl:


Kood:
int sensorPin = A0;
int ledPins[] = {5, 7, 8, 10, 11, 13}; // punane, sinine, valge
int arrayLength = sizeof(ledPins) / sizeof(ledPins[0]);
int Value_new;
void setup() {
for (int i = 0; i < arrayLength; i++) {
pinMode(ledPins[i], OUTPUT);
}
Serial.begin(9600);
}
void loop() {
Value_new = analogRead(sensorPin);
Value_new = map(Value_new, 0, 1023, 1, 6);
Value_new = constrain(Value_new, 1, 6);
switch (Value_new) {
case 1: allBlink(); break;
case 2: oneByOne(); break;
case 3: colorSequence(); break;
case 4: candleEffect(); break;
case 5: runningLight(); break;
case 6: all_led_on(); break;
}
}
// Kõik LED-id vilguvad korraga
void allBlink() {
for (int i = 0; i < arrayLength; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(300);
for (int i = 0; i < arrayLength; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(300);
}
// LED-id vilguvad järjest ükshaaval
void oneByOne() {
for (int i = 0; i < arrayLength; i++) {
digitalWrite(ledPins[i], HIGH);
delay(200);
digitalWrite(ledPins[i], LOW);
}
}
// LED-id vilguvad värvi kaupa (valge → punane → sinine)
void colorSequence() {
turn_off_all();
digitalWrite(ledPins[2], HIGH);
digitalWrite(ledPins[3], HIGH);
delay(300);
turn_off_all();
digitalWrite(ledPins[0], HIGH);
digitalWrite(ledPins[5], HIGH);
delay(300);
turn_off_all();
digitalWrite(ledPins[1], HIGH);
digitalWrite(ledPins[4], HIGH);
delay(300);
turn_off_all();
}
// LED-id vilguvad juhuslikus järjekorras (küünlaefekt)
void candleEffect() {
for (int i = 0; i < 10; i++) {
int r = random(0, arrayLength);
digitalWrite(ledPins[r], HIGH);
delay(random(50, 150));
digitalWrite(ledPins[r], LOW);
}
}
// Jooksva tule efekt – valgus liigub järjest läbi LED-ide
void runningLight() {
for (int i = 0; i < arrayLength; i++) {
digitalWrite(ledPins[i], HIGH);
delay(150);
digitalWrite(ledPins[i], LOW);
}
}
// Kõik LED-id jäävad põlema
void all_led_on() {
for (int i = 0; i < arrayLength; i++) {
digitalWrite(ledPins[i], HIGH);
}
}
// Kõik LED-id kustuvad
void turn_off_all() {
for (int i = 0; i < arrayLength; i++) {
digitalWrite(ledPins[i], LOW);
}
}
Video:
Interaktiivne Arduino skeem
Kasutamisvõimalused tavaelus
🎄 1. Dekoratiivvalgustus
Valguskette kasutatakse sageli kodu, terrasside ja pidustuste kaunistamiseks — näiteks jõulude ajal, sünnipäevadel või pulmades. Erinevad vilkumisrežiimid lisavad visuaalset efekti ja meeleolu.
🚲 2. Ohutuse ja märguannete jaoks
LED-tuled, eriti vilkuvad, on olulised jalgrattatuledes, ohutussignaalides, liiklushoiatustes ja kriisivalgustuses, et olla pimedas või halva nähtavuse korral hästi märgatavad.
🏠 3. Nutika kodu lahendustes
Valguskette saab kasutada automaatikasüsteemides, näiteks:
- tuled süttivad liikumisanduri abil,
- värv muutub vastavalt kellaajale või ilmastikule,
- valgustus reageerib muusikale või häälkäsklustele.
🛍️ 4. Reklaam ja poeekraanid
Vilkuvad LED-id tõmbavad pilku ja sobivad ideaalselt toodete esiletõstmiseks vitriinides, reklaamtahvlitel või kampaanianäidikutena.
🎭 5. Meelelahutus ja lavatehnika
LED-efekte kasutatakse laialdaselt kontsertidel, teatrites ja tantsulavastustes visuaalse meeleolu loomiseks. Programmeeritavad valgusrežiimid muudavad iga esitluse dünaamilisemaks.
🧪 6. Haridus ja õppimine
Valguskett on suurepärane õppevahend elektroonika, programmeerimise ja loovuse arendamiseks. Õpilased saavad ise katsetada LED-ide ühendamist ja juhtimist Arduino abil, õppides praktiliselt.