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.