Опыт со потенциометром/Potentsiomeetri kasutamine

Kõigepealt tuleb paigutada LED ja potentsiomeeter maketeerimislauale ja ühendada need, sarnaselt joonisel kujutatule arendusplaadiga.

LED vilgutamise kiiruse reguleerimiseks kasutatakse potentsiomeetrit.

int sensorPin = 0;    	  

int ledPin = 13;                           			  

int sensorValue = 0;  					  

void setup()

{       

  pinMode(ledPin, OUTPUT);  

  Serial.begin(9600);

}

void loop() {          					   

  sensorValue = analogRead(sensorPin); //   loeb analoog sisendi väärtust ja saadab tagasi täisarvu vahemikus 0 kuni 1023. See tähendab 10 bitilist täpsust (2^10 = 1024).		  

  digitalWrite(ledPin, HIGH);         

  delay(sensorValue);                 

  digitalWrite(ledPin, LOW);              

  delay(sensorValue);  

  float voltage = sensorValue * (5.0 / 1023.0); // konverteerime väärtuse (0 - 1023)  ja tagastab (0 - 5V):

  Serial.println(voltage);   // Saadud tulemused kirjutame Serial Monitori.         

}

Ülesanne 2 “Valguskett”

Töö kirjeldus




Kasutatud komponenid


Töö protsess


Uuritud funktsioonid



Kasutamisvõimalused tavaelus


Skeem



Video (link)



Programm

int sensorPin = 0;

int ledPins[] = {13, 12, 11, 10, 9, 8, 7, 6, 5};  // LED-id punasest kuni viimase punaseni
int arrayLength = sizeof(ledPins) / sizeof(ledPins[0]);  // Massiivi suurus

int sensorValue = 0;
int Value_new;

void setup()
{
  for (int i = 0; i < arrayLength; i++)
  {
    pinMode(ledPins[i], OUTPUT);
  }
}

void loop()
{
  Value_new = analogRead(sensorPin);
  Value_new = map(Value_new, 0, 1023, 1, 10);  // 10 režiimi
  Value_new = constrain(Value_new, 1, 10);

  if (Value_new == 2)
  {
    red();
  }
  else if (Value_new == 3)
  {
    blue();
  }
  else if (Value_new == 4)
  {
    green();
  }
  else if (Value_new == 5)
  {
    yellow();
  }
  else if (Value_new == 6)
  {
    all_led_on();
  }
  else if (Value_new == 7)
  {
    normal_mode();
  }	
  else if (Value_new == 8)
  {
    pair_blink();
  }	
  else if (Value_new == 9)
  {
   	disco();
  }	
  else if (Value_new == 10)
  {
    wave();
  }	
  else
  {
    turn_off_all();
  }
}

// vilguvad ainult punased LED-id
void red()
{
  digitalWrite(ledPins[0], HIGH);  // RED1
  digitalWrite(ledPins[4], HIGH);  // RED2
  digitalWrite(ledPins[8], HIGH);  // RED3'
  
  digitalWrite(ledPins[1], LOW);  
  digitalWrite(ledPins[2], LOW);  
  digitalWrite(ledPins[3], LOW);
  digitalWrite(ledPins[5], LOW);  
  digitalWrite(ledPins[6], LOW);  
  digitalWrite(ledPins[7], LOW);
  delay(100);
  
  digitalWrite(ledPins[0], LOW);
  digitalWrite(ledPins[4], LOW);
  digitalWrite(ledPins[8], LOW);
  delay(100);
}

// vilguvad ainult sinised LED-id
void blue()
{
  digitalWrite(ledPins[1], HIGH);  // BLUE1
  digitalWrite(ledPins[5], HIGH);  // BLUE2
  
  digitalWrite(ledPins[0], LOW);  
  digitalWrite(ledPins[2], LOW);  
  digitalWrite(ledPins[3], LOW);  
  digitalWrite(ledPins[4], LOW);
  digitalWrite(ledPins[6], LOW);  
  digitalWrite(ledPins[7], LOW);  
  digitalWrite(ledPins[8], LOW);
  delay(200);
  
  digitalWrite(ledPins[1], LOW);
  digitalWrite(ledPins[5], LOW);
  delay(200);
}

// vilguvad ainult rohelised LED-id
void green()
{
  digitalWrite(ledPins[2], HIGH);  // GREEN1
  digitalWrite(ledPins[6], HIGH);  // GREEN2
  
  digitalWrite(ledPins[0], LOW);  
  digitalWrite(ledPins[1], LOW);  
  digitalWrite(ledPins[3], LOW);  
  digitalWrite(ledPins[4], LOW);
  digitalWrite(ledPins[5], LOW);  
  digitalWrite(ledPins[7], LOW);  
  digitalWrite(ledPins[8], LOW);
  delay(200);
  
  digitalWrite(ledPins[2], LOW);
  digitalWrite(ledPins[6], LOW);
  delay(200);
}

// vilguvad ainult kollased LED-id
void yellow() {
  digitalWrite(ledPins[3], HIGH);  // YELLOW1
  digitalWrite(ledPins[7], HIGH);  // YELLOW2
  
  digitalWrite(ledPins[0], LOW);  
  digitalWrite(ledPins[1], LOW);  
  digitalWrite(ledPins[2], LOW);  
  digitalWrite(ledPins[4], LOW);
  digitalWrite(ledPins[5], LOW);  
  digitalWrite(ledPins[6], LOW);  
  digitalWrite(ledPins[8], LOW);
  delay(200);
  
  digitalWrite(ledPins[3], LOW);
  digitalWrite(ledPins[7], LOW);
  delay(200);
}

// vilguvad kõik korraga
void normal_mode()
{
  for (int i = 0; i < arrayLength; i++)
  {
    digitalWrite(ledPins[i], HIGH);
  }
  delay(random(10,200));  // pausi suurus genereerime juhuslikult
  for (int i = 0; i < arrayLength; i++)
  {
    digitalWrite(ledPins[i], LOW);
  }
  delay(random(10,200));
}

// kõik LED-id sisse lülitatud
void all_led_on()
{
  for (int i = 0; i < arrayLength; i++)
  {
    digitalWrite(ledPins[i], HIGH);
  }
}

// kõik LED-id välja lülitatud
void turn_off_all()
{
  for (int i = 0; i < arrayLength; i++)
  {
    digitalWrite(ledPins[i], LOW);
  }
}

// kõik LED-id vilguvad juhuslikult ja suvalise kiirusega
void disco()
{
  for (int i = 0; i < 15; i++)
  {
    int r = random(0, arrayLength);
    digitalWrite(ledPins[r], HIGH);
    delay(random(50, 150));
    digitalWrite(ledPins[r], LOW);
  }
}

// LED-id süttivad lainekujuliselt
void wave()
{
  for (int i = 0; i < arrayLength; i++)
  {
    digitalWrite(ledPins[i], HIGH);
    delay(100);
    digitalWrite(ledPins[i], LOW);
  }
}

// LED-id vilguvad paarikaupa
void pair_blink()
{
  // paaris LED-id
  for (int i = 0; i < arrayLength; i += 2)
  {
    digitalWrite(ledPins[i], HIGH);
  }
  delay(250);
  for (int i = 0; i < arrayLength; i += 2)
  {
    digitalWrite(ledPins[i], LOW);
  }

  // paaritu LED-id
  for (int i = 1; i < arrayLength; i += 2)
  {
    digitalWrite(ledPins[i], HIGH);
  }
  delay(250);
  for (int i = 1; i < arrayLength; i += 2)
  {
    digitalWrite(ledPins[i], LOW);
  }
  delay(150);
}