Internet of Things - Arduino

PWM

Upravljanje brzinom trčanja dioda pomoću potenciometra

Zadatak

Na mikrokontroler spojite jedan potenciometar i pet svjetlećih dioda. Napišite program koji će animirati svjetleće diode tako da se one uključuju jedna po jedna s lijeve na desnu stranu. Brzinu efekta trčećeg svjetla određujemo pomoću potenciometra. Neka trajanje uključenog stanja svake svjetleće diode u milisekundama bude jednako očitanju stanja analognog ulaza na kojem je spojen potenciometar.

 

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

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() {
  digitalWrite(led1, HIGH);       //uključi LED diodu 1
  delay(analogRead(pot));         //čekaj onoliko ms koliko je vrijednost očitanja analognog izvoda A0
  digitalWrite(led1, LOW);        //isključi LED diodu 1

  digitalWrite(led2, HIGH);       //uključi LED diodu 2
  delay(analogRead(pot));         //čekaj onoliko ms koliko je vrijednost očitanja analognog izvoda A0
  digitalWrite(led2, LOW);        //isključi LED diodu 2

  digitalWrite(led3, HIGH);       //uključi LED diodu 3
  delay(analogRead(pot));         //čekaj onoliko ms koliko je vrijednost očitanja analognog izvoda A0
  digitalWrite(led3, LOW);        //isključi LED diodu 3

  digitalWrite(led4, HIGH);       //uključi LED diodu 4
  delay(analogRead(pot));         //čekaj onoliko ms koliko je vrijednost očitanja analognog izvoda A0
  digitalWrite(led4, LOW);        //isključi LED diodu 4

  digitalWrite(led5, HIGH);       //uključi LED diodu 5
  delay(analogRead(pot));         //čekaj onoliko ms koliko je vrijednost očitanja analognog izvoda A0
  digitalWrite(led5, LOW);        //isključi LED diodu 5
}

verzija 2

Pogledajte ostale materijale za PWM