2.1 Vilgub
Töö kirjeldus:
LED ei tööta ja nuppu vajutamisel valgus põleb (var A)
LED töötab ja nuppu vajutamisel valgus tuhmub (var B)
Komponendid:
Arduino Uno
Arendusplaat
LED valgusdiood
Potentsiomeetr 1tk 250 Om
Takisti 1 tk 330 Om
Juhtmed 7 tk
Ühendamise skeem:


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.
}
Foto:
LED tuhmub ja põleb kiiresti või aeglasemalt vastavalt potentsioometri sageduse kiirust
Funktsioonid:
Serial.begin(9600)
sensorValue=map(sensorValue,0,1023,0,255);
analogRead(sensorPin);
int ledPins[];
2.2 Pidevalt põleb, muutub intensiivsus

Programm:
int sensorPin = 0;
int ledPin = 11;
int sensorValue = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
sensorValue = analogRead(sensorPin);
sensorValue = map(sensorValue,0,1023,0,255);
analogWrite(ledPin, sensorValue);
Serial.println(sensorValue);
}
Ülesanne Valguskett
Töö kirjeldus:
Looma valgusketti potentsiomeetri kasutamisel.
Potentsiomeetri funktsioon selles olukorras toimib järgmiselt: LED-ide jaoks on määratud muutujad, potentsiomeetri määramine. Funktsioonid: põleb kõik, põleb pool ja siis teine, üleminekud, vilgub, vilgub mitu läbi funktsiooni random valides põleb või ei põle.
default ehk algus režiim on blinkmode.
blinkmode: random valib valiku: põleb või ei põle ning see on mõeldud kõikidele värvile, et nad vahetasid (põlemisel või mitte põlemisel) ja iga valiku all on delay selleks näha selle käsu täitmisel
uleminek: 1 LED põleb siis järgmine põleb, aga sel ajal, kui põleb järgmine, eelmine tuhmub, delay 50ms selleks, et liikumine või vahetamine töötas mingi pausiga
polebtuhmub: kõik LED põlevad, iga 1s pärast LED-id tuhmuvad
poleb: kõik LED-id põlevad
pool: eespoolt 3 LED-id põlevad, tagaltpoolt 3 LED-id ei põle, 1s vahetamisele, et tagaltpoolt 3 LED-id põleksid ja eespoolt 3 LED-id ei põle
Komponendid:
Arduino Uno
Arendusplaat
LED valgusdiood 6 tk
Potentsiomeetr 1tk 250 Om
Takisti 6 tk 220 Om
Juhtmed 17 tk
Ühendamise skeem:

Programm:
int RED_LED_PIN = 13;
int GREEN_LED_PIN = 12;
int ORANGE_LED_PIN = 11;
int BLUE_LED_PIN = 10;
int YELLOW_LED_PIN = 9;
int WHITE_LED_PIN = 8;
int sensorPin = A0;
int sensorValue = 0;
int ledPins[] = {RED_LED_PIN, GREEN_LED_PIN, ORANGE_LED_PIN, BLUE_LED_PIN, YELLOW_LED_PIN, WHITE_LED_PIN};
int ledCount = 6;
int mode = 1; // default blinkmode
void setup()
{
pinMode(RED_LED_PIN, OUTPUT);
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(ORANGE_LED_PIN, OUTPUT);
pinMode(BLUE_LED_PIN, OUTPUT);
pinMode(YELLOW_LED_PIN, OUTPUT);
pinMode(WHITE_LED_PIN, OUTPUT);
Serial.begin(9600);
}
void loop()
{
// loeme potentsiomeetrilt anduri väärtust
sensorValue = analogRead(sensorPin);
// kaardistada anduri väärtus vahemikku 0 kuni 5
ledCount = map(sensorValue, 0, 1023, 0, 6);
// printime anduri väärtus ja režiim jadamonitorile
Serial.print("Sensor Value: ");
Serial.print(sensorValue);
Serial.print(" - Mode: ");
Serial.println(mode);
// delay, et serial monitor uuendaks andmed
delay(50);
// režiimid potentsiomeetri väärtuse põhjal
if (sensorValue < 250)
{
mode = 1; // blinkmode
}
else if (sensorValue < 450)
{
mode = 2; // uleminek
}
else if (sensorValue <700)
{
mode = 3; // polebtuhmub
}
else if (sensorValue <950)
{
mode = 5; //pool
}
else
{
mode = 4; //poleb
}
// käivitame valitud režiim
if (mode == 1)
{
blinkmode();
}
else if (mode == 2)
{
uleminek();
}
else if (mode == 3)
{
polebtuhmub();
}
else if (mode == 4)
{
poleb();
}
else
{
pool();
}
}
void blinkmode()
{
// random võtab 1 või 2 variant ja siis täitab selle käsu
//LED-id vilguvad juhuslikult
//randomi if valiku all on LED-i erilised värvid ja käsk
//täitab erilised värvide muutmine (põleb või tuhmub)
if (random(0, 2)) {
digitalWrite(RED_LED_PIN, HIGH);
delay(random(50, 500));
digitalWrite(RED_LED_PIN, LOW);
delay(random(50, 500));
}
if (random(0, 2)) {
digitalWrite(GREEN_LED_PIN, HIGH);
delay(random(50, 500));
digitalWrite(GREEN_LED_PIN, LOW);
delay(random(50, 500));
}
if (random(0, 2)) {
digitalWrite(ORANGE_LED_PIN, HIGH);
delay(random(50, 500));
digitalWrite(ORANGE_LED_PIN, LOW);
delay(random(50, 500));
}
if (random(0, 2)) {
digitalWrite(BLUE_LED_PIN, HIGH);
delay(random(50, 500));
digitalWrite(BLUE_LED_PIN, LOW);
delay(random(50, 500));
}
if (random(0, 2)) {
digitalWrite(YELLOW_LED_PIN, HIGH);
delay(random(50, 500));
digitalWrite(YELLOW_LED_PIN, LOW);
delay(random(50, 500));
}
if (random(0, 2)) {
digitalWrite(WHITE_LED_PIN, HIGH);
delay(random(50, 500));
digitalWrite(WHITE_LED_PIN, LOW);
delay(random(50, 500));
}
}
void uleminek() {
// LEDs ON (1 LED põleb algusest)
for (int i = 0; i < ledCount; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(50);
// LEDs OFF (1 LED tuhmub algusest)
for (int i = 0; i < ledCount; i++) {
digitalWrite(ledPins[i], LOW);
}
}
void polebtuhmub()
{
//LEDs ON (põleb)
digitalWrite(RED_LED_PIN, HIGH);
digitalWrite(GREEN_LED_PIN, HIGH);
digitalWrite(ORANGE_LED_PIN, HIGH);
digitalWrite(BLUE_LED_PIN, HIGH);
digitalWrite(YELLOW_LED_PIN, HIGH);
digitalWrite(WHITE_LED_PIN, HIGH);
delay(1000); //ootan 1s
//LEDs OFF (tuhmub)
digitalWrite(RED_LED_PIN, LOW);
digitalWrite(GREEN_LED_PIN, LOW);
digitalWrite(ORANGE_LED_PIN, LOW);
digitalWrite(BLUE_LED_PIN, LOW);
digitalWrite(YELLOW_LED_PIN, LOW);
digitalWrite(WHITE_LED_PIN, LOW);
delay(1000); //ootan 1s
}
void poleb()
{
//LEDs ON (põleb)
digitalWrite(RED_LED_PIN, HIGH);
digitalWrite(GREEN_LED_PIN, HIGH);
digitalWrite(ORANGE_LED_PIN, HIGH);
digitalWrite(BLUE_LED_PIN, HIGH);
digitalWrite(YELLOW_LED_PIN, HIGH);
digitalWrite(WHITE_LED_PIN, HIGH);
}
void pool()
{
//LEDs ON (põleb, x3 esimesed ja x3 viimased ei põle)
digitalWrite(RED_LED_PIN, HIGH);
digitalWrite(GREEN_LED_PIN, HIGH);
digitalWrite(ORANGE_LED_PIN, HIGH);
digitalWrite(BLUE_LED_PIN, LOW);
digitalWrite(YELLOW_LED_PIN, LOW);
digitalWrite(WHITE_LED_PIN, LOW);
delay(1000); //ootan 1s
//LEDs ON (põleb, x3 viimased ja x3 esimesed ei põle)
digitalWrite(RED_LED_PIN, LOW);
digitalWrite(GREEN_LED_PIN, LOW);
digitalWrite(ORANGE_LED_PIN, LOW);
digitalWrite(BLUE_LED_PIN, HIGH);
digitalWrite(YELLOW_LED_PIN, HIGH);
digitalWrite(WHITE_LED_PIN, HIGH);
delay(1000); //ootan 1s
}
Video:
https://drive.google.com/drive/folders/1QIIOFeZJeWjZsU1fwYtt2furDs4VmduP?usp=sharing
Kus võib seda kasutada:
Laternad — Põleb ja ei põle
Pliit — tule suurendamine või vähendamine
Elektriahi — temperatuuri vahetaime
Valgus — valguse põlemise suurendamine või vähendamine
Generaator — võimsuse suurendamine või vähendamine