Potentsiomeeter

Potentsiomeetr

Kasutatud komponeendid

  • Adruino Uno R3 – 1
  • Breadboard Small – 1
  • Potentsiomeetr -1
  • LED (valge) – 1
  • Takisti – 1
  • Juhe – 6

Ühendamise skeem (www.tinkercad.com)

https://www.tinkercad.com/things/iBCWn4nJjvn-potentsiomeetr?sharecode=sP4AEjqJx6v2JmlK1Jc8CVZsf-MCkaD4cP8glRWXdl8

Programm/kood kommentaridega

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.         

}

Valguskett

Töö kirjeldus

Valgusketi moodustavad 9 LED-i. Potentsiomeetri abil saab lülitada erinevaid režiime:

  1. Kõikide LED-ide vilkumine.
  2. Järjekordne sisselülitamine.
  3. Vilkumine värvide kaupa.
  4. Juhuslik vilkumine.
  5. Lainefekt.

Kasutatud komponeendid

  • Adruino Uno R3 – 1
  • Breadboard Small – 1
  • Potentsiomeetr -1
  • LED – 9 (valge, kollane, oranž, punane ja roheline)
  • Takisti – 9
  • Juhe – 14

Töö protsess

Kood laaditakse Arduino peale. See loeb potentsiomeetri asendit ja aktiveerib vastavalt selle väärtusele ühe viiest valgusefektist.

Potentsiomeetri keeramine muudab LED-ide töörežiimi:

  • Kõik LED-id vilguvad korraga iga 0,5 sekundi järel.
  • LED-id lülituvad sisse ja välja järjekorras 0,2-sekundilise viivitusega.
  • LED-id vilguvad värvigruppide kaupa (näiteks esmalt esimesed kolm, seejärel järgmised kolm).
  • LED-id lülituvad sisse ja välja juhuslikus järjekorras erinevate viivitustega.
  • LED-id lülituvad sisse järjekorras ühes suunas ja seejärel vastupidises suunas, luues lainefekti.

Ühendamise skeem (www.tinkercad.com)

https://www.tinkercad.com/things/kDyDJJV3K3f-valguskett?sharecode=3qRWGNAJOAzbX38-qijhFaW8zcBrhiB69S0UG9E7hc8

Programm/kood kommentaridega

int sensorPin = 0;
int ledPin[] = {5, 6, 7, 8, 9, 10, 11, 12, 13};
int sensorValue = 0;
int arrayLength = sizeof(ledPin) / sizeof(ledPin[0]);
int potPin = A0; 

void setup() {

  for (int i = 0; i < 9; i++) {
    pinMode(ledPin[i], OUTPUT);
  }
  Serial.begin(9600);
}

void loop() {

  int potValue = analogRead(potPin);
 
  int mode = map(potValue, 0, 1023, 0, 4);

  Serial.println(mode);

  switch (mode) {
    case 0:
      allBlink();
      break;
    case 1:
      sequentialBlink(); 
      break;
    case 2:
      colorBlink();
      break;
    case 3:
      randomFlicker();
      break;
    case 4:
      chaseEffect();
      break;
  }
}

void allBlink() {
  for (int i = 0; i < arrayLength; i++) {
    digitalWrite(ledPin[i], HIGH);
  }
  delay(500);
  for (int i = 0; i < arrayLength; i++) {
    digitalWrite(ledPin[i], LOW);
  }
  delay(500);
}

void sequentialBlink() {
  for (int i = 0; i < arrayLength; i++) {
    digitalWrite(ledPin[i], HIGH);
    delay(200);
    digitalWrite(ledPin[i], LOW);
  }
}

void colorBlink() {
  for (int i = 0; i < 3; i++) {
    digitalWrite(ledPin[i], HIGH);
  }
  delay(500);
  for (int i = 0; i < 3; i++) {
    digitalWrite(ledPin[i], LOW);
  }
  delay(500);

  for (int i = 3; i < 6; i++) {
    digitalWrite(ledPin[i], HIGH);
  }
  delay(500);
  for (int i = 3; i < 6; i++) {
    digitalWrite(ledPin[i], LOW);
  }
  delay(500);

  for (int i = 6; i < 9; i++) {
    digitalWrite(ledPin[i], HIGH);
  }
  delay(500);
  for (int i = 6; i < 9; i++) {
    digitalWrite(ledPin[i], LOW);
  }
  delay(500);
}

void randomFlicker() {
  for (int i = 0; i < arrayLength; i++) {
    digitalWrite(ledPin[i], HIGH);
    delay(random(10, 100));
    digitalWrite(ledPin[i], LOW);
    delay(random(10, 50));
  }
}


void chaseEffect() {
  for (int i = 0; i < arrayLength; i++) {
    digitalWrite(ledPin[i], HIGH);
    delay(100);
    digitalWrite(ledPin[i], LOW);
  }

  for (int i = arrayLength - 1; i >= 0; i--) {
    digitalWrite(ledPin[i], HIGH);
    delay(100);
    digitalWrite(ledPin[i], LOW);
  }
}

Video

https://drive.google.com/file/d/1sebJRz5dXV6h2e2FxTfSoyuJ1_HUpopd/view?usp=sharing

Video näitab skeemi tööd ja režiimide vahetamist potentsiomeetri abil.

Kasutamisvõimalused tavaelus.

  1. Dekoratiivne valgustus – kodu, pühade või pidude kaunistamine.
  2. Signaalsüsteemid – oleku näitamiseks (nt nutiseadmetes).
  3. Mänguasjad ja vidinad – lastele mõeldud valgustatud mänguasjad.
  4. Reklaam – vilkuv reklaam, mis tõmbab rohkem tähelepanu.