Praktika 2. Potentsiomeeter

Katse 2.1

Töö protsess:

Potentsiomeeter määrab LED-i vilkumise. Kõik sõltub sellest, kui palju potentsiomeeter näitab.

Kasutatud komponeendid:

LED — 1
Taikisti — 1 (220 Om)
Juhe — 6
Potentsiomeeter — 1
Arendusplaat — 1

Ühendamise skeem:

Programm:

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.         

}

Uued funktsioonid:

Serial.begin (9600) – arvutiga suhtlemine USB-pordi kaudu
Serial.println() – edastamine arvuti ja tahvli vahel

Katse 2.2

Töö kirjeldus:

Kimbukal on 5 režiimi.
1. Kõik vilkuvad.
2. Roheline ja sinine vilkumine, seejärel kollane ja punane.
3. Kõik põlevad pidevalt.
4. Värvipaarid vahelduvad.
5. Kiire vilkumine kõik.

Töö protsess:

Kõigepealt valige režiim.
Esimene režiim töötab nii, et kõik valgusdioodid vilguvad kordamööda . Kõik valgusdioodid lülituvad kõigepealt sisse ja seejärel välja. Seejärel hakkab iga LED kordamööda millisekundilise viivitusega põlema.
Teises režiimis vilguvad kõigepealt roheline ja sinine LED ning seejärel punane ja kollane LED. See režiim töötab järgmiselt: kõigepealt lülitatakse kõik LEDid välja, seejärel lülitatakse kõik sinised ja rohelised LEDid sisse ja viivitusega 1 sekund, seejärel lülitatakse kõik punased ja kollased LEDid välja ja viivitusega 1 sekund. Pärast kõike seda korratakse uuesti.
Kolmandas režiimis põlevad kõik valgusdioodid kogu aeg. See režiim töötab nii, et kõik LED-id lülituvad sisse, jäävad põlema pooleks sekundiks, kustuvad ja süttivad uuesti. See kõik kordub.
Neljandas režiimis vahelduvad värvipaarid. Kõigepealt lülituvad kõik rohelised valgusdioodid sisse ja jäävad põlema pooleks sekundiks. Seejärel kustuvad need ja sinised lülituvad sisse, ka need viivitavad pool sekundit. Pärast seda, kui sinised LEDid kustuvad ja kollased LEDid lülituvad sisse, viivitavad nad pool sekundit ja kustuvad. Punased valgusdioodid lülituvad sisse viimasena, nad jäävad samuti pooleks sekundiks ja kustuvad. See kordub pidevalt, kuni te vahetate teise režiimi.
Viies režiim on kõigi valgusdioodide kiire vilkumine. Kõik valgusdioodid süttivad kõigepealt, need hõõguvad 0,2 sekundit ja kustuvad seejärel. Ja nii edasi ringiratast, kuni valitakse teine režiim.

Kasutatud komponeendid:

LED (green) — 2
LED (yellow) — 2
LED (red) — 2
Taikisti — 8 (220 Om)
Juhe — 13
Potentsiomeeter — 1
Arendusplaat — 1

Ühendamise skeem:

Programm:

// LED pins
int ledgreen1 = 13;   // Зелёный 1
int ledyellow1 = 12;  // Жёлтый 1
int ledblue1 = 11;    // Синий 1
int ledred1 = 10;     // Красный 1
int ledgreen2 = 9;    // Зелёный 2
int ledyellow2 = 8;   // Жёлтый 2
int ledblue2 = 7;     // Синий 2
int ledred2 = 6;      // Красный 2

//  Array koos kõigi LED-pinidega
int ledPins[] = {13, 12, 11, 10, 9, 8, 7, 6};

// potentsiomeetri pin
int sensorPin = 0;     


int sensorValue = 0;

void setup() {
  for (int i = 0; i < 8; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
  
  Serial.begin(9600);
}

void loop() {
  sensorValue = analogRead(sensorPin);
  
  int mode = map(sensorValue, 0, 1023, 0, 4);
  mode = constrain(mode, 0, 4); 
  Serial.println(mode);
  
  // Vali režiim
  switch (mode) {
    case 0:
      reziim1(); //Kõik vilguvad omakorda
      break;
    case 1:
      reziim2(); //Roheline ja sinine vilgub, seejärel kollane ja punane.
      break;
    case 2:
      reziim3(); //Kõik on kogu aeg tules
      break;
    case 3:
      reziim4(); //Värvipaarid vahelduvad
      break;
    case 4:
      reziim5(); //Kõigi kiirelt vilkuvate
      break;
  }
}

//Kõik vilguvad omakorda
void reziim1() {
  for (int i = 0; i < 8; i++) {
    digitalWrite(ledPins[i], LOW);
  }
  for (int i = 0; i < 8; i++) {
    digitalWrite(ledPins[i], HIGH);
    delay(100);
    digitalWrite(ledPins[i], LOW);
  }
}

//Roheline ja sinine vilgub, seejärel 
void reziim2() {
  for (int i = 0; i < 8; i++) {
    digitalWrite(ledPins[i], LOW);
  }
  
  digitalWrite(ledgreen1, HIGH);
  digitalWrite(ledgreen2, HIGH);
  digitalWrite(ledblue1, HIGH);
  digitalWrite(ledblue2, HIGH);
  delay(1000); 
  for (int i = 0; i < 8; i++) {
    digitalWrite(ledPins[i], LOW);
  }
  
  digitalWrite(ledyellow1, HIGH);
  digitalWrite(ledyellow2, HIGH);
  digitalWrite(ledred1, HIGH);
  digitalWrite(ledred2, HIGH);
  delay(1000);

//Kõik on kogu aeg tules
void reziim3() {
  for (int i = 0; i < 8; i++) {
    digitalWrite(ledPins[i], HIGH);
  }
  delay(500); 
}

//Värvipaarid vahelduvad
void reziim4() {
  for (int i = 0; i < 8; i++) {
    digitalWrite(ledPins[i], LOW);
  }
  digitalWrite(ledgreen1, HIGH);
  digitalWrite(ledgreen2, HIGH);
  delay(500);

  digitalWrite(ledgreen1, LOW);
  digitalWrite(ledgreen2, LOW);
  digitalWrite(ledblue1, HIGH);
  digitalWrite(ledblue2, HIGH);
  delay(500);

  digitalWrite(ledblue1, LOW);
  digitalWrite(ledblue2, LOW);
  digitalWrite(ledyellow1, HIGH);
  digitalWrite(ledyellow2, HIGH);
  delay(500);

  digitalWrite(ledyellow1, LOW);
  digitalWrite(ledyellow2, LOW);
  digitalWrite(ledred1, HIGH);
  digitalWrite(ledred2, HIGH);
  delay(500);
}

//Kõigi kiirelt vilkuvate
void reziim5() {
  for (int i = 0; i < 8; i++) {
    digitalWrite(ledPins[i], HIGH);
  }
  delay(200);
  for (int i = 0; i < 8; i++) {
    digitalWrite(ledPins[i], LOW);
  }
  delay(200);
}

Video:

https://drive.google.com/file/d/19WhqGZZ31DiXg3UdUTUKp3pv-LZQTAVk/view?usp=sharing

Uued funktsioonid:

analogRead() – funktsioon, mis loeb analoogsignaali
switch {} – funktsioon, mis aitab valida ühe mitmest tegevusest (koodiplokist) sõltuvalt muutuja väärtusest.

LED-ide rakendamin

Näitamiseks (näitamaks, et midagi töötab või ei tööta);
Valgustus;
Dekoratiivne valgustus;
Ekraanid ja ekraanid;
Häiresignaalid ja turvalisus.