Teema 1: LED ja RGB LED

Katse 1.1

LED valgusdioodi vilgutamine

See kood paneb 8. pordi külge ühendatud LED-i vilkuma: 1 sekund põleb, 1 sekund ei põle. Funktsioonis setup() määratakse, et pin 8 on väljund, ja funktsioonis loop() toimub vilgutamine koos viivitustega.

Kui kõik on õigesti, näed mustas kastis teadet, kui palju mälu kood kasutab, ja rohelisel ribal kuvatakse «Done uploading». Vea korral muutub roheline riba oranžiks ja kuvatakse veateade koos täpse info ja punase kirjaga mustas kastis.

kood:

// C++ code
//
void setup()
{
// pinMode() määrab töörežiimi
pinMode(8, OUTPUT); // Määrab 8-pini töörežiimiks OUTPUT (Väljund)
}

void loop()
{
digitalWrite(8, HIGH); // Lülitab LED sisse (HIGH tähendab, et pinil 8 on 5V)
delay(1000); // Ootab 1000 millisekundit ehk 1 sekundit

digitalWrite(8, LOW); // Lülitab LED välja (LOW tähendab, et pinil 8 on 0V)
delay(1000); // Ootab jälle 1000 millisekundit ehk 1 sekundit
}

Skeem ja link:

https://www.tinkercad.com/things/2g0gSATHcCy-dazzling-lahdi

katse1.2

Aruanne: Valgusfoori juhtimise süsteem

1. Tehtud näidisülesanded

Kood on loodud valgusfoori simulatsiooniks, kus juhtimine toimub Arduino abil. Valgusfooril on autodele kolm tuld (punane, kollane, roheline) ja jalakäijatele kaks tuld (punane, roheline). Programmi eesmärk on simuleerida autode ja jalakäijate valgusfoori vaheldumist, järgides tavapärase liikluskorralduse reegleid.

2. Uuritud funktsioonid

a) pinMode()

  • Kirjeldus: Funktsioon pinMode() määrab, kas pin (väljund või sisend) peaks olema sisendiks või väljundiks. Seda kasutatakse kõikide pinide konfigureerimiseks.

b) digitalWrite()

  • Kirjeldus: Funktsioon digitalWrite() määrab, kas digitaalne pin peaks olema madal (LOW) või kõrge (HIGH). Kasutatakse siin valgusfoori tulede juhtimiseks.

c) delay()

  • Kirjeldus: Funktsioon delay() paneb programmi pausile määratud ajaks, et võimaldada füüsiliste komponentide, nagu LED-tuled, õigeks ajastamiseks.

d) if()

  • Kirjeldus: Kuigi praeguses koodis ei ole eraldi if avaldusi kasutatud, võiks neid kasutada tulede seisundi kontrollimiseks või uute funktsioonide lisamiseks (nt täiendav turvalisus või erinevad ajastused).

3. Töö kirjeldus

Programm simuleerib valgusfoori töötamist järgmise tsükli järgi:

Punane tuli autodele, roheline jalakäijatele

  • Autod peavad seisma (punane tuli põleb).
  • Jalakäijad võivad üle tee minna (roheline tuli põleb).
  • Ootab 5 sekundit.

Kollane tuli autodele (hoiatus enne rohelise süttimist)

  • Kollane tuli süttib korraks.
  • Ootab 1 sekundi.

Roheline tuli autodele, punane jalakäijatele

  • Autod võivad sõita (roheline tuli põleb).
  • Jalakäijad peavad ootama (punane tuli põleb).
  • Ootab 5 sekundit.

Kollane tuli autodele (hoiatus enne punase süttimist)

  • Kollane tuli süttib korraks.
  • Roheline kustub.
  • Ootab 1 sekundi.

Tsükkel kordub pidevalt.


4. Kasutatud komponente

  • 5 juhtmeid: Kasutatakse LED-de ühendamiseks.
  • 5 takistit (220Ω): Takistid on vajalikud LED-de õige töö tagamiseks, et need ei põleks üle.
  • 5 LEDi : 2 punast (autodele), 2 rohelist (autodele ja jalakäijatele), 1 kollane (autodele). Kõik komponendid on ühendatud Arduino abil ning iga tule jaoks on määratud oma juhtmoodul.

5. Ühendamise skeem

Skeem on loodud Tinkercadis ja saadaval järgmises lingis ja pildil:

https://www.tinkercad.com/things/41R8kPYXGrB-oooo?sharecode=mI0gxvNL1PwY2F-oc7pi0jZXx-WAS88r-r8Jq2g9lAg


6. Programm

// autode valgusfoori tuled
const int reda = 7; // punane tuli autodele
const int yellowa = 6; // kollane tuli autodele
const int greena = 5; // roheline tuli autodele

// jalakäijate valgusfoori tuled
const int redj = 13; // punane tuli jalakäijatele
const int greenj = 12; // Roheline tuli jalakäijatele

void setup() {
// määrame, et kõik valgusfoori tuled on väljundid
pinMode(reda, OUTPUT);
pinMode(yellowa, OUTPUT);
pinMode(greena, OUTPUT);

pinMode(redj, OUTPUT);
pinMode(greenj, OUTPUT);
}

void loop() {
// autode valgusfoor – punane, jalakäijate valgusfoor – roheline
digitalWrite(reda, HIGH); // lülitame sisse punase tule autodele
digitalWrite(yellowa, LOW); // lülitame välja kollase tule
digitalWrite(greena, LOW); // lülitame välja rohelise tule

digitalWrite(redj, LOW); // lülitame välja punase tule jalakäijatele
digitalWrite(greenj, HIGH); // lülitame sisse rohelise tule jalakäijatele

delay(5000); // ootame 5 sekundit

// autode valgusfoor – kollane tuli enne rohelise süttimist
digitalWrite(yellowa, HIGH); // lülitame sisse kollase tule
delay(1000); // ootame 1 sekundi
digitalWrite(yellowa, LOW); // lülitame kollase tule välja

// autode valgusfoor – roheline, jalakäijate valgusfoor – punane
digitalWrite(reda, LOW); // lülitame punase tule autodelt välja
digitalWrite(greena, HIGH); // lülitame sisse rohelise tule autodele

digitalWrite(redj, HIGH); // lülitame sisse punase tule jalakäijatele
digitalWrite(greenj, LOW); // lülitame välja rohelise tule jalakäijatele

delay(5000); // ootame 5 sekundit

// autode valgusfoor – kollane tuli enne punase süttimist
digitalWrite(yellowa, HIGH); // lülitame sisse kollase tule
digitalWrite(greena, LOW); // lülitame välja rohelise tule
delay(1000); // ootame 1 sekundi
digitalWrite(yellowa, LOW); // lülitame kollase tule välja
}

7. Video

Video valgustfoori süsteemi töödemonstratsioonist

https://youtu.be/9_PqfSEcYdg?feature=shared


8. Kasutamisvõimalused tavaelus

Valgusfoori juhtimissüsteemi saab kasutada mitmesugustes liikluskorraldustes, nagu:

  • Tänavatel ja ristmikel: Tagamaks turvalisus nii sõidukitele kui jalakäijatele.
  • Ülekäiguradadel: Ülekäiguradade valgustamiseks ja jalakäijate turvalisuse tagamiseks.
  • Automaatsete süsteemide arendamiseks: Üks osa liikluskorralduse automatiseerimise süsteemidest.

Süsteemi saab arendada ka täiendavate turvafunktsioonidega, nagu näiteks jalakäijate liikumisandurid või eri liiklusohtlike olukordade tuvastamise võimalused.