Pada kesempatan kali ini saya akan menjelaskan mengenai sebuah alat menggunakan interface 7segment untuk monitor suhu ruangan. alat ini menggunakan sensor LM35 dan juga mikrokontroller Nodemcu esp8266. nodemcu memiliki satu buah pin ADC sehngga bisa digunakan untuk satu sensor analog. untuk lebih jelasnya berikut adalah program dan daftar komponennya.
a. Nodemcu ESP8266
b. Interface 7segment IC 4094
c. Sensor Suhu LM35
d. Program Arduino IDE
#include <ESP8266WiFi.h>
byte zero = B00000011;
byte one = B10011111;
byte two = B00100101;
byte three = B00001101;
byte four = B10011001;
byte five = B01001001;
byte six = B01000001;
byte seven = B00011111;
byte eight = B00000001;
byte nine = B00001001;
int latchPin = D1; //Pin connected to STR(pin 1) of HEF4094
int clockPin = D2; //Pin connected to CP(pin 3) of HEF4094
int dataPin = D3; //Pin connected to D(pin 2) of HEF4094
int oe = D0; //Pin connected to OE(pin 2) of HEF4094
int temp;
int x = 5;
int y;
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(oe, OUTPUT);
//digitalWrite(oe,LOW);
digitalWrite(oe,HIGH);
}
void loop()
{
int sensorValue = analogRead(A0);
int suhu = sensorValue * (3.3/1023) * 100;
temp = suhu;
int ribuan = temp / 1000;
temp = temp % 1000;
int ratusan = temp / 100;
temp = temp % 100;
int puluhan = temp / 10;
int satuan = temp % 10;
switch(ribuan){
case 0:
ribuan = zero;
break;
case 1:
ribuan = one;
break;
case 2:
ribuan = two;
break;
case 3:
ribuan = three;
break;
case 4:
ribuan = four;
break;
case 5:
ribuan = five;
break;
case 6:
ribuan = six;
break;
case 7:
ribuan = seven;
break;
case 8:
ribuan = eight;
break;
case 9:
ribuan = nine;
break;
}
switch(ratusan){
case 0:
ratusan = zero;
break;
case 1:
ratusan = one;
break;
case 2:
ratusan = two;
break;
case 3:
ratusan = three;
break;
case 4:
ratusan = four;
break;
case 5:
ratusan = five;
break;
case 6:
ratusan = six;
break;
case 7:
ratusan = seven;
break;
case 8:
ratusan = eight;
break;
case 9:
ratusan = nine;
break;
}
switch(puluhan){
case 0:
puluhan = zero;
break;
case 1:
puluhan = one;
break;
case 2:
puluhan = two;
break;
case 3:
puluhan = three;
break;
case 4:
puluhan = four;
break;
case 5:
puluhan = five;
break;
case 6:
puluhan = six;
break;
case 7:
puluhan = seven;
break;
case 8:
puluhan = eight;
break;
case 9:
puluhan = nine;
break;
}
switch(satuan){
case 0:
satuan = zero;
break;
case 1:
satuan = one;
break;
case 2:
satuan = two;
break;
case 3:
satuan = three;
break;
case 4:
satuan = four;
break;
case 5:
satuan = five;
break;
case 6:
satuan = six;
break;
case 7:
satuan = seven;
break;
case 8:
satuan = eight;
break;
case 9:
satuan = nine;
break;
}
digitalWrite(latchPin, HIGH); //Pull latch HIGH to send data
shiftOut(dataPin, clockPin, LSBFIRST, satuan);
shiftOut(dataPin, clockPin, LSBFIRST, puluhan);
shiftOut(dataPin, clockPin, LSBFIRST, ratusan);
digitalWrite(latchPin, LOW); //Pull latch HIGH to send data
delay(1000);
}
e. VIDEO HASILNYA
No comments:
Post a Comment