Töö kirjeldus:
Valguskett töö kolme režiimiga.
Kasutatud komponenid:
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Juhtmed (11tk)
Takisti(6tk)
LED (6tk: 2 punane, 2 roheline, 2 sinine)
Töö protsess:
Ühendage dioodid, takisti ja juhtmed plaadile. Valgusahel töötab järgmiselt.
Valguslint ruumi või objekti kaunistamiseks, millel on 4 režiimi erinevate tulede koosmõjuga. Iga režiim sisaldab erinevat LED-värinat.
Valguskett-ide rakendamine:
Valgusketi kohaldamine. Ruumide valgustamiseks ja esemete kaunistamiseks. kasutatakse välistingimustes, äriettevõtetes, kodus.
Skeem:

Programm:
int sensorPin = 0;
int one_redLED = 13;
int one_greenLED = 12;
int one_blueLED = 11;
int two_redLED = 10;
int two_greenLED = 9;
int two_blueLED = 5;
int thirdredLED = 5;
int oneLEDsArray[] = { one_redLED, one_greenLED, one_blueLED };
int twoLEDsArray[] = { two_redLED, two_greenLED, two_blueLED };
int allLEDsArray[] = {one_redLED, one_greenLED, one_blueLED, two_redLED, two_greenLED, two_blueLED, two_blueLED, thirdredLED};
int sensorValue = 0;
void blinkLED(int LED, int custDelay){
digitalWrite(LED, HIGH);
delay(custDelay);
digitalWrite(LED, LOW);
}
void turnFourColorsLEDs(int oneLED, int twoLED, int thirdLED, int fourthLED, bool Mode){
digitalWrite(oneLED, Mode);
digitalWrite(twoLED, Mode);
digitalWrite(thirdLED, Mode);
digitalWrite(fourthLED, Mode);
}
void turnTwoColorsLEDs(int oneLED, int twoLED, bool Mode){
digitalWrite(oneLED, Mode);
digitalWrite(twoLED, Mode);
}
void turnAllLEDs(bool Mode){
for (int i = 0; i < sizeof(oneLEDsArray) / sizeof(oneLEDsArray[0]);i++){
digitalWrite(oneLEDsArray[i], Mode);
digitalWrite(twoLEDsArray[i], Mode);
}
digitalWrite(thirdredLED, Mode);
}
void oneMode(){
int customDelay = 500;
turnAllLEDs(HIGH);
delay(customDelay);
turnAllLEDs(LOW);
delay(customDelay);
}
void twoMode(){
int customDelay = 500;
turnTwoColorsLEDs(one_redLED, two_redLED, HIGH);
digitalWrite(thirdredLED, HIGH);
digitalWrite(thirdredLED, HIGH);
delay(customDelay);
turnAllLEDs(LOW);
turnTwoColorsLEDs(one_greenLED, two_greenLED, HIGH);
turnTwoColorsLEDs(one_blueLED, two_blueLED, HIGH);
delay(customDelay);
turnAllLEDs(LOW);
}
void thirdMode(){
int customDelay = 1000;
turnTwoColorsLEDs(one_redLED, two_redLED, HIGH);
digitalWrite(thirdredLED, HIGH);
delay(customDelay);
turnTwoColorsLEDs(one_redLED, two_redLED, LOW);
digitalWrite(thirdredLED, LOW);
turnTwoColorsLEDs(one_greenLED, two_greenLED, HIGH);
delay(customDelay);
turnTwoColorsLEDs(one_greenLED, two_greenLED, LOW);
delay(customDelay);
turnTwoColorsLEDs(one_blueLED, two_blueLED, HIGH);
delay(customDelay);
turnAllLEDs(LOW);
}
void fourthMode(){
int customDelay = 400;
for (int i = 0; i < 9; i++){
blinkLED(allLEDsArray[i], customDelay);
}
for (int i = 9; i > 1; i--){
blinkLED(allLEDsArray[i], customDelay);
}
}
void fifthMode(){
int customDelay = 400;
for (int i = 0; i < 9; i++){
int randomLED = random(1, 9);
digitalWrite(allLEDsArray[randomLED], HIGH);
delay(customDelay);
}
turnAllLEDs(HIGH);
delay(customDelay);
turnAllLEDs(LOW);
}
void (*funcModes[])() = { oneMode, twoMode, thirdMode, fourthMode, fifthMode};
void setup()
{
Serial.begin(9600);
pinMode(one_redLED, OUTPUT);
pinMode(one_greenLED, OUTPUT);
pinMode(one_blueLED, OUTPUT);
pinMode(two_redLED, OUTPUT);
pinMode(two_greenLED, OUTPUT);
pinMode(two_blueLED, OUTPUT);
pinMode(thirdredLED, OUTPUT);
}
void loop()
{
sensorValue = analogRead(sensorPin);
sensorValue = map(sensorValue, 0,1023,1,6);
// float voltage = sensorValue * (5.0 / 1023.0);
for (int i = 0; i < sizeof(funcModes) / sizeof(funcModes[0]); i++){
if (sensorValue == i + 1){
funcModes[i]();
}
}
}
Video:
Uued funktsioonid:
void blinkLED(int LED, int custDelay): See funktsioon vilgutab LED-i antud viivitusega (custDelay) LED-i sisse- ja väljalülitamise vahel.
void turnFourColorsLEDs(int oneLED, int twoLED, int thirdLED, int fourthLED, bool Mode): See funktsioon juhib nelja LED-i, seades nende oleku (Mode) HIGH või LOW.
void turnTwoColorsLEDs(int oneLED, int twoLED, bool Mode): See funktsioon juhib kahte LED-i, seades nende oleku (Mode) HIGH või LOW.
void turnAllLEDs(bool Mode): See funktsioon kontrollib kõiki valgusdioode, seades nende oleku (Mode) HIGH või LOW.
void oneMode(), void twoMode(), void thirdMode(), void fourthMode(), void fifthMode(): Need funktsioonid esindavad valgusdioodide erinevaid töörežiime.
