Peamine ülesanne:
Mulle ja minu partnerile Maksimile tehti ülesandeks luua valguskett
Asjad, mida me vajasime ja kasutasime:
Arendusplaat (Arendusplaat pakub kõike vajalikku mikrokontrolleriga mugavaks töötamiseks),
4x RGB-LED (LED-moodul, mis suudab toota peaaegu kõiki värve, kasutades neid kolme peamist lisavärvi: Punane, roheline ja sinine),
12x 220 (OM) resistorit (Takisti on passiivne kahetermiline elektrooniline komponent, mis rakendab elektritakistust vooluahela elemendina),
1x 10k(OM) potenrsiomeeter (Potentsiomeeter on käsitsi reguleeritav muutuvtakisti, millel on 3 klemmi),
Juhtmed ühenduste loomiseks (juht lihtsalt liigutab elektrit),
Makettplaat komponentide paigutamiseks (Makettplaat koosneb elektrit mitte juhtivast plaadist)
Ühendamise skeem:
Meie lampidel on erinevad režiimid ja need on määratud potentsoimeetri pöörlemisega.

Sisekood:
// RGB-LED-ide ühendused
const int RGB_PINS[4][3] = {
{13, 5, 9}, // LED 1: R, G, B
{12, 4, 8}, // LED 2
{11, 3, 7}, // LED 3
{10, 2, 6} // LED 4
};
see osa kirjandus ütleb meile, et traat on ühendatud nendes kohtades. See on näha pildil.
const int POT_PIN = A0; // Potentsiomeeter
void setup() {
// kõik LED-ide pinnid
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 3; j++) {
pinMode(RGB_PINS[i][j], OUTPUT);
}
}
Serial.begin(9600);
}
void loop() {
int potValue = analogRead(POT_PIN);
int mode = map(potValue, 0, 1023, 1, 5);
mode = constrain(mode, 1, 5);
Serial.print("Reziim: ");
Serial.println(mode);
switch (mode) {
case 1: allOn(); break;
case 2: waveEffect(); break;
case 3: colorCycle(); break;
case 4: redYellowAlternate(); break;
case 5: discoEffect(); break;
}
}
paneb potentsiomeetri seaded ja režiimid
// REŽIIMID
// 1. Kõik LED-id valged
void allOn() {
// Valged LED-id
setColor(0, 255, 255, 153);
setColor(1, 255, 255, 255);
// Sinised LED-id
setColor(2, 255, 255, 255);
setColor(3, 255, 255, 153);
delay(500);
}
// 2. Laineefekt
void waveEffect() {
for (int i = 0; i < 4; i++) {
setColor(i, 0, 255, 0); // Roheline
delay(100);
setColor(i, 0, 0, 0);
}
for (int i = 3; i >= 0; i--) {
setColor(i, 0, 0, 255); // Sinine
delay(100);
setColor(i, 0, 0, 0);
}
}
// 3. Värvide tsükkel
void colorCycle() {
// Punane
for (int i = 0; i < 4; i++) setColor(i, 255, 0, 0);
delay(500);
// Roheline
for (int i = 0; i < 4; i++) setColor(i, 0, 255, 0);
delay(500);
// Sinine
for (int i = 0; i < 4; i++) setColor(i, 0, 0, 255);
delay(500);
// Kollane
for (int i = 0; i < 4; i++) setColor(i, 255, 255, 0);
delay(500);
}
// 4. Küünlaefekt (kollased toonid)
void redYellowAlternate() {
// Esimene kombinatsioon: LED 1-2 punased, LED 3-4 kollased
setColor(0, 255, 0, 0);
setColor(1, 255, 255, 0);
setColor(2, 255, 0, 0);
setColor(3, 255, 255, 0);
delay(500);
// Teine kombinatsioon: LED 1-2 kollased, LED 3-4 punased
setColor(0, 255, 255, 0);
setColor(1, 255, 0, 0);
setColor(2, 255, 255, 0);
setColor(3, 255, 0, 0);
delay(500);
}
// 5. Diskoefekt
void discoEffect() {
for (int i = 0; i < 4; i++) {
setColor(i, random(0, 255), random(0, 255), random(0, 255));
}
delay(100);
}
režiimid ja mida nad teevad
// Abifunktsioon LED-i värviseadistuseks
void setColor(int led, int r, int g, int b) {
analogWrite(RGB_PINS[led][0], r);
analogWrite(RGB_PINS[led][1], g);
analogWrite(RGB_PINS[led][2], b);
}
lülitage kõik välja

