|et

Teema 2: POTENTSIOMEETER

Ühendamise skeem:

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

LED vilgutamise kiiruse reguleerimiseks kasutatakse potentsiomeetrit.

-----Kood-----

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.         

}

Eesti keeles:

  • pinMode(ledPin, OUTPUT) — määrame, et LED pin on väljund.
  • Serial.begin(9600) — alustame Serial ühendust kiirusel 9600 bitti sekundis.

По-русски:

  • pinMode(ledPin, OUTPUT) — указываем, что пин с LED работает как выход.
  • Serial.begin(9600) — запускаем последовательную связь со скоростью 9600 бит/сек.

Eesti keeles:

  • analogRead(sensorPin) — loeb analoog väärtust pin’ilt 0 ja tagastab arvu vahemikus 0 kuni 1023.

По-русски:

  • analogRead(sensorPin) — считывает аналоговое значение с пина 0 (в диапазоне от 0 до 1023).

Eesti keeles:

  • Arvutame pinget: teisendame sensorValue väärtuse pingeks vahemikus 0–5 V.

По-русски:

  • Переводим значение сенсора в напряжение: из диапазона 0–1023 в 0–5 В.

Eesti keeles:

  • Näitame pinge väärtust Serial Monitoris (kuvaril).

По-русски:

  • Выводим рассчитанное напряжение в монитор порта (Serial Monitor).

Ülesanne 2 Valguskett

Töö kirjeldus:
Alustasin projektist, koostades esmalt skeemi ja kirjutades koodi Tinkercadi keskkonnas. Seejärel kontrollisin, et süsteem virtuaalses keskkonnas korrektselt töötaks. Pärast seda ühendasin koodi Arduino platvormiga, tegin läbi testimise ja käivitasin süsteemi koos elektroonilise plaadiga.

Plaadi tööpõhimõte:
Potentsiomeetri reguleerimise muudab LED-tulede vilkumise sagedust. Mida rohkem potentsiomeetrit pöörata, seda kiiremini LED-id vilguvad.

Kasutatud komponendid:

  • Arduino UNO plaat – 1 tk
  • Arendusplaat (breadboard) – 1 tk
  • LED-dioodid – 9 tk
  • Ühendusjuhtmed – 14 tk
  • Potentsiomeeter – 1 tk
  • Takistid (resistorid) – 9 tk

Video ja skeema

https://drive.google.com/file/d/1VAxNYwC1OdOZ8TVNQtahvSVWVgsbYLDA/view?usp=sharing
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
int potPin = A0;

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

void loop() {
  int potValue = analogRead(potPin);

  // teisendame potentsiomeetri väärtuse vilkuvate LED-ide arvuks
  int ledsToBlink = map(potValue, 0, 1023, 0, 11);

  // kui potentsiomeeter on nullis - midagi ei vilgu
  if (ledsToBlink == 0) {
    for (int i = 0; i < 11; i++) {
      digitalWrite(ledPins[i], LOW);
    }
  } else {
    // vilgutame vajaliku arvu LED-e
    for (int i = 0; i < 11; i++) {
      if (i < ledsToBlink) {
        digitalWrite(ledPins[i], HIGH);
      } else {
        digitalWrite(ledPins[i], LOW);
      }
    }

    delay(100);  // viivitus vilkumiste vahel

    // lülitame vilkuvad LED-id välja
    for (int i = 0; i < ledsToBlink; i++) {
      digitalWrite(ledPins[i], LOW);
    }

    delay(100);  // viivitus vilkumiste vahel
  }
}