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);
  }
  
}