Internet of Things - Arduino
PWMJednostavan 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