Internet of Things - Arduino

PWM

Jednostavan voltmetar

Zadatak

Na mikrokontroler spojite jedan potenciometar i 5 svjetlećih dioda. Iskoristite 3 zelene diode, jednu žutu i jednu crvenu. Napišite program pomoću kojeg će ovaj mikrokontroler raditi kao jednostavni voltmetar. Kada je očitani napon na analognom ulazu između 0V i 1V neka svijetli samo prva led dioda, kada je očitani napon između 1V i 2V neka svijetle prve dvije, između 2V i 3V prve tri svjetleće diode, između 3V i 4V neka svijetle četiri diode, a kada je očitani napon veći od 4V neka svijetli svih pet svjetlećih dioda. Serijskim putem ispišite na računalu očitanu vrijednost analognog ulaza i određenu vrijednost napona.

 

Prikaz spajanja

Arduino kod

int led1 = 6;                      //definiraj led1 = 6
int led2 = 7;                      //definiraj led2 = 7
int led3 = 8;                      //definiraj led3 = 8
int led4 = 9;                      //definiraj led4 = 9
int led5 = 10;                      //definiraj led5 = 10
int pot = A0;                      //definiraj pot = A0
int ocitanjepot;                   //definiraj varijablu očitanjepot

void setup() {
  pinMode(led1, OUTPUT);           //postavi izvod led1 kao izlazni
  pinMode(led2, OUTPUT);           //postavi izvod led2 kao izlazni
  pinMode(led3, OUTPUT);           //postavi izvod led3 kao izlazni
  pinMode(led4, OUTPUT);           //postavi izvod led4 kao izlazni
  pinMode(led5, OUTPUT);           //postavi izvod led5 kao izlazni
  digitalWrite(led1, LOW);         //isključi LED diodu - početno stanje
  digitalWrite(led2, LOW);         //isključi LED diodu - početno stanje
  digitalWrite(led3, LOW);         //isključi LED diodu - početno stanje
  digitalWrite(led4, LOW);         //isključi LED diodu - početno stanje
  digitalWrite(led5, LOW);         //isključi LED diodu - početno stanje
}

void loop() {
  ocitanjepot = analogRead(pot);   //očitaj stanje analognog ulaza

  if (ocitanjepot <= 250) {        //ako je očitanje <1V
    digitalWrite(led1, HIGH);     //uključi LED 1
    digitalWrite(led2, LOW);      //isključi LED 2
    digitalWrite(led3, LOW);      //isključi LED 3
    digitalWrite(led4, LOW);      //isključi LED 4
    digitalWrite(led5, LOW);      //isključi LED 5
  } else if (ocitanjepot > 250 && ocitanjepot <= 410) {
    //ako je očitanje >1V i <2V
    digitalWrite(led1, HIGH);     //uključi LED 1
    digitalWrite(led2, HIGH);     //uključi LED 2
    digitalWrite(led3, LOW);      //isključi LED 3
    digitalWrite(led4, LOW);      //isključi LED 4
    digitalWrite(led5, LOW);      //isključi LED 5
  } else if (ocitanjepot > 410 && ocitanjepot <= 615) {
    //ako je očitanje >2V i <3V
    digitalWrite(led1, HIGH);     //uključi LED 1
    digitalWrite(led2, HIGH);     //uključi LED 2
    digitalWrite(led3, HIGH);     //uključi LED 3
    digitalWrite(led4, LOW);      //isključi LED 4
    digitalWrite(led5, LOW);      //isključi LED 5
  } else if (ocitanjepot > 615 && ocitanjepot <= 820) {
    //ako je očitanje >3V i <4V
    digitalWrite(led1, HIGH);     //uključi LED 1
    digitalWrite(led2, HIGH);     //uključi LED 2
    digitalWrite(led3, HIGH);     //uključi LED 3
    digitalWrite(led4, HIGH);     //uključi LED 4
    digitalWrite(led5, LOW);      //isključi LED 5
  } else {                         //ako je očitanje >4V
    digitalWrite(led1, HIGH);     //uključi LED 1
    digitalWrite(led2, HIGH);     //uključi LED 2
    digitalWrite(led3, HIGH);     //uključi LED 3
    digitalWrite(led4, HIGH);     //uključi LED 4
    digitalWrite(led5, HIGH);     //uključi LED 5
  }
}

verzija 6

Pogledajte ostale materijale za svjetleće diode