Nupp
Skeem:

Kirjeldus:
See kood kontrollib kahe nupu (button1 ja button2) olekut ning vastavalt nende seisule juhib LEDi (ledPin) sisse või välja.
LED põleb ainult siis, kui vajutatud on täpselt üks nupp (kumb tahes)
Kui mõlemad nupud on vajutatud või mõlemad vabad, LED ei põle
Koodi kirjeldus:
Määratakse nuppude pinnid sisenditeks (INPUT)
LEDi pin määratakse väljundiks (OUTPUT)
Loetakse mõlema nupu olekud (digitalRead)
Kui kas nupp1 VÕI nupp2 on alla vajutatud (LOW), KUID MITTE mõlemad korraga, siis:
LED lülitatakse sisse (HIGH)
Kõigil muudel juhtudel:
LED lülitatakse välja (LOW)
Photoresistor
Skeem:

Kirjeldus:
See skeem kasutab valgussensorit LEDi heleduse reguleerimiseks vastavalt valgustugevusele.
Käsitsi režiim:
LEDi heledus muutub vastavalt valgustugevusele etteantud vahemikus
Automaatrežiim:
Süsteem kohandub automaatselt keskkonna valgustingimustele
Öölambi režiim:
LED põleb seda tugevamini, mida pimedam on (vaja muuta koodi)
Koodi kirjeldus:
- LEDi pin määratakse väljundiks
- Käivitub seriaalside monitoriga suhtlemiseks
- Loetakse valgustugevus (
analogRead) - Käsitsi häälestusfunktsioon (
manualTune) teisendab väärtused - Või automaatne häälestus (
autoTune) - LEDi heledus seatakse vastavalt teisendatud väärtusele
- Väärtused kuvatakse seriaalmonitoris
- 1 sekundi paus
Ülesanne
Töö kirjeldus:
Loomine liiklusfoor, mis automaatselt lülitub öö- ja päevarežiimile vastavalt valgustingimustele.
Kasutatud komponendid:
- Arduino Uno
- Liiklusfoori moodul
- Fotoristor
- Arendusplaat
- 1 x 10kΩ takisti
- Juhtmed
Töö protsess:
Programmi kirjutamisel on kaks peamise režiimi. Päevarežiim liiklusfoori tsükkel: põleb punane tuli 5 sekundit, seejärel lülitub lisaks kollane 1 sekundiks, misjärel põleb roheline tuli 3 sekundit. Rohelise tule lõpus vilgub see kolm korda 0,5 sekundi intervalliga, enne kui lülitub sisse kollane tuli 1 sekundiks. Öörežiim aktiveerub, kui valgustase langeb alla seatud piiri, ja kuvab ainult perioodiliselt vilkuvat kollast tuld 0,5 sekundi sisse ja 0,5 sekundi välja tsüklis.
Skeem:

Kood:
const int redPin = 4; // Punane LED
const int yellowPin = 3; // Kollane LED
const int greenPin = 2; // Roheline LED
const int sensorPin = A0; // Valgussensor
int lightThreshold = 200; // Piir pimedus
bool isNightMode = false;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(sensorPin, INPUT);
Serial.begin(9600);
}
void loop() {
int lightLevel = analogRead(sensorPin);
Serial.print("Valgustase: ");
Serial.println(lightLevel);
if (lightLevel > lightThreshold) {
isNightMode = true;
nightMode();
} else {
isNightMode = false;
dayMode();
}
}
void dayMode() {
// Punane
digitalWrite(redPin, HIGH);
digitalWrite(yellowPin, LOW);
digitalWrite(greenPin, LOW);
delay(5000);
// Punane + Kollane
digitalWrite(yellowPin, HIGH);
delay(1000);
// Roheline
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, LOW);
digitalWrite(greenPin, HIGH);
delay(5000);
// Vilguv roheline
for(int i = 0; i < 3; i++) {
digitalWrite(greenPin, LOW);
delay(500);
digitalWrite(greenPin, HIGH);
delay(500);
}
// Kollane
digitalWrite(greenPin, LOW);
digitalWrite(yellowPin, HIGH);
delay(1000);
}
void nightMode() {
digitalWrite(redPin, LOW);
digitalWrite(greenPin, LOW);
// Vilguv kollane
digitalWrite(yellowPin, HIGH);
delay(500);
digitalWrite(yellowPin, LOW);
delay(500);
}
Video:
Uued funktsioonid:
if (lightLevel > lightThreshold) – Kui valgustase on suurem kui läviväärtus, siis täidetakse esimene koodiblokk.
see on kõik, eelmised funktsioonid olnud Teemal 2