Valguskett:
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 (0). Siin on Potentsiomentr, mis kontrollib kolme erinevat LED-i. red()
, blue()
ja green()
funktsioonid, mis panevad vastavalt punase, sinise ja rohelise LED-i põlema ning seejärel kustutavad need teatud ajavahemike järel. Peamine tegevus toimub loop()
funktsioonis, kus loetakse analoogseisundi väärtus (analogRead(sensorPin)
), misjärel see väärtus mappitakse (map()
) vahemikust 0-1023 vahemikku 1-4. Sõltuvalt määratud väärtusest süüdatakse vastav LED kasutades eelnevalt funktsioone (red()
, blue()
, green()
).
//1. deklareerim integer-tüüpi muutuja nimega sensorPin.
int sensorPin=0;
//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;
//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);
}
//4. red(), blue()ja green()funktsioonid, mis panevad vastavalt punase, sinise ja //rohelise LED-i põlema ning seejärel kustutavad need teatud ajavahemike järel.
void red()
{
digitalWrite(red1, HIGH);
digitalWrite(red2, HIGH);
digitalWrite(red3, HIGH);
delay(100);
digitalWrite(red1, LOW);
digitalWrite(red2, LOW);
digitalWrite(red3, LOW);
delay(100);
}
void blue()
{
digitalWrite(blue1, HIGH);
digitalWrite(blue2, HIGH);
digitalWrite(blue3, HIGH);
delay(200);
digitalWrite(blue1, LOW);
digitalWrite(blue2, LOW);
digitalWrite(blue3, LOW);
delay(200);
}
void green()
{
digitalWrite(green1, HIGH);
digitalWrite(green2, HIGH);
digitalWrite(green3, HIGH);
delay(100);
digitalWrite(green1, LOW);
digitalWrite(green2, LOW);
digitalWrite(green3, LOW);
delay(100);
}
void loop()
{
//5.Value_new = analogRead(sensorPin);: Selles reas loetakse väärtus mis on
// ühendatud pinnaga sensorPin
Value_new=analogRead(sensorPin);
//6. map() funktsiooni, et teisendada analoogsisendi väärtus uuele vahemikule
//Значение в диапазоне от 0 до 1023 будет преобразовано в диапазон от 1 до 4. То
//есть, если исходное измеренное значение меньше 341, Value_new будет равно 1, если //значение от 341 до 682, то оно будет 2, а если значение больше 682, оно становится //3 или 4 в зависимости от точного значения.
Value_new=map(Value_new,0,1023,1,4);
if (Value_new==2)
{
red();
}
else if (Value_new==3)
{
blue();
}
else if (Value_new==4)
{
green();
}
//7. Selles osas lülitatakse kõik punased, sinised ja rohelised LED-id välja
else
{
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);
}
}