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: