see kood LED-e, mis süttivad erinevates värvides ja mustrites, sõltuvalt analoogseisundi mõõtmisest, ja saab tagasisidet välistest sensoritest, mis on ühendatud analoogsisendiga (A0). Siin on Potentsiomentr, mis kontrollib viie erinevat režiimi LED-i. mode1()
, mode2(),mode3(),mode4() ja mode5()
funktsioonid, . Peamine tegevus toimub loop()
funktsioonis, kus loetakse analoogseisundi väärtus (analogRead(sensorPin)
), misjärel see väärtus mappitakse (map()
) vahemikust 0-1023 vahemikku 1-5.
//1. deklareerim integer-tüüpi muutuja nimega sensorPin.
int sensorPin = A0;
//2. deklareerime konstandid
const int red1 = 13;
const int blue1 = 12;
const int green1 = 11;
const int red2 = 10;
const int blue2 = 9;
const int green2 = 8;
const int red3 = 7;
const int blue3 = 6;
const int green3 = 5;
//2.1 Muutujad
int sensorValue = 0;
int Value_new;
int currentMode = 1; // Vaikerežiim on 1
//3. setup() funktsioon algseadistused, mida programm hiljem loop() funktsioonis //kasutab
void setup()
{
pinMode(red1, OUTPUT);
pinMode(red2, OUTPUT);
pinMode(red3, OUTPUT);
pinMode(blue1, OUTPUT);
pinMode(blue2, OUTPUT);
pinMode(blue3, OUTPUT);
pinMode(green1, OUTPUT);
pinMode(green2, OUTPUT);
pinMode(green3, OUTPUT);
// Lähtestab LED-id olekusse OFF
turnOffLEDs();
}
void turnOffLEDs()
{
digitalWrite(red1, LOW);
digitalWrite(red2, LOW);
digitalWrite(red3, LOW);
digitalWrite(blue1, LOW);
digitalWrite(blue2, LOW);
digitalWrite(blue3, LOW);
digitalWrite(green1, LOW);
digitalWrite(green2, LOW);
digitalWrite(green3, LOW);
}
//mode1 3 led red1,blue1,green1 lülitatud sisse.
void mode1()
{
digitalWrite(red1, HIGH);
digitalWrite(blue1, HIGH);
digitalWrite(green1, HIGH);
}
//mode2 3 led red1,red2,green3 lülitatud sisse.
void mode2()
{
digitalWrite(red2, HIGH);
digitalWrite(red3, HIGH);
digitalWrite(green3, HIGH);
delay(100);
digitalWrite(red1, LOW);
digitalWrite(blue1, LOW);
digitalWrite(green1, LOW);
delay(100);
}
//mode3 kolm punase värvi lülitatud sisse, teised lülitatud välja.
void mode3()
{
digitalWrite(red2, HIGH);
digitalWrite(red3, HIGH);
digitalWrite(green3, LOW);
delay(100);
digitalWrite(red1, HIGH);
digitalWrite(blue1, LOW);
digitalWrite(blue2, LOW);
digitalWrite(blue3, LOW);
digitalWrite(green1, LOW);
digitalWrite(green2, LOW);
delay(100);
}
//mode4 kolm rohelist LED'i lülitatud sisse, teised lülitatud välja.
void mode4()
{
digitalWrite(red2, LOW);
digitalWrite(red3, LOW);
digitalWrite(green3, HIGH);
delay(100);
digitalWrite(red1, LOW);
digitalWrite(blue1, LOW);
digitalWrite(blue2, LOW);
digitalWrite(blue3, LOW);
digitalWrite(green1, HIGH);
digitalWrite(green2, HIGH);
delay(100);
}
//mode5 kõik LED'i lülitatud sisse, teised lülitatud välja.
void mode5()
{
digitalWrite(red2, HIGH);
digitalWrite(red3, HIGH);
digitalWrite(green3, HIGH);
delay(100);
digitalWrite(red1, HIGH);
digitalWrite(blue1, HIGH);
digitalWrite(blue2, HIGH);
digitalWrite(blue3, HIGH);
digitalWrite(green1, HIGH);
digitalWrite(green2, HIGH);
delay(100);
}
void loop()
{
//5.Value_new = analogRead(sensorPin);: Selles reas loetakse väärtus mis on
// ühendatud pinnaga sensorPin
Value_new = analogRead(sensorPin);
//1. 0 on algne väärtus, mis vastab analoogsisendi minimaalsele väärtusele.
//2. 1023 on algne väärtus, mis vastab analoogsisendi maksimaalsele väärtusele.
//3. 1 kuni 5 viis erinevat reziimi, vahemik 0 ja 1023 vahel.
Value_new = map(Value_new, 0, 1023, 1, 5); // Map analog input to modes 1-5
//6. Kontrollib, kas režiim on muutunud.
if (Value_new != currentMode)
{
//7. Lülitab LED-id režiimide vahetamisel välja
turnOffLEDs();
//8. Värskendage praegust režiimi
currentMode = Value_new;
}
//9. Valitud režiimi alusel vastava režiimi funktsiooni kutsumine
switch (currentMode)
{
case 1:
mode1();
break;
case 2:
mode2();
break;
case 3:
mode3();
break;
case 4:
mode4();
break;
case 5:
mode5();
break;
default:
turnOffLEDs();
break;
}
}