Töö kirjeldus
Valguskett töötab neljas režiimis.

Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (19tk)
Takisti (4tk, 220 Om)
LED (3tk: 1 sinine, 1 roheline, 1 kollane)
Potentsiomeetr (1tk)
infoekraan (1tk)

Tööprotsess:

Ühendage plaadiga dioodid, potentsiomeeter, infoekraan, takisti ja juhtmed. valgustuse lülitamisel ekraanile kirjutatakse, milline värv parasjagu põleb ja ilmub vastav emotikon

Skeem:

Programm:

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int LEDblue = 9;
int LEDgreen = 8;
int LEDyellow = 7;

byte happySmiley[8] = {
0b00000,
0b00000,
0b01010,
0b00000,
0b10001,
0b01110,
0b00000,
0b00000
};

byte neutralSmiley[8] = {
0b00000,
0b00000,
0b01010,
0b00000,
0b11111,
0b00000,
0b00000,
0b00000
};

byte sadSmiley[8] = {
0b00000,
0b00000,
0b01010,
0b00000,
0b01110,
0b10001,
0b00000,
0b00000
};

void setup() {
pinMode(LEDblue, OUTPUT);
pinMode(LEDgreen, OUTPUT);
pinMode(LEDyellow, OUTPUT);
lcd.begin(16, 2);
lcd.createChar(0, happySmiley);
lcd.createChar(1, neutralSmiley);
lcd.createChar(2, sadSmiley);
}

void loop() {
displayColorAndSmiley(“Blue Color”, LEDblue, 0, 2000);
displayColorAndSmiley(“Green Color”, LEDgreen, 1, 2000);
displayColorAndSmiley(“Yellow Color”, LEDyellow, 2, 2000);
}

void displayColorAndSmiley(const char* colorName, int ledPin, int smileyIndex, int interval) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(colorName);

lcd.setCursor(smileyIndex, 1);
lcd.write(byte(smileyIndex)); // Отображаем соответствующий смайлик

digitalWrite(LEDblue, LOW);
digitalWrite(LEDgreen, LOW);
digitalWrite(LEDyellow, LOW);
digitalWrite(ledPin, HIGH); // Включаем светодиод соответствующего цвета

delay(interval);

lcd.setCursor(smileyIndex, 1);
lcd.print(” “); // Очищаем символы после смайлика
digitalWrite(ledPin, LOW); // Выключаем светодиод

delay(interval);
}

Video: