Monitor Gas / Asap MQ-2 Interface 7Segment ARDUINO
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat memonitor asap atau gas yang dimonitor menggunakan interface 7Segment. alat ini menggunakan arduino sebagai kontrollernya. alat ini menggunakan sensor MQ-2 dengan output berupa tegangan. untuk penjelasan lebih lanjut berikut adalah komponen dan programnya.
a. Arduino Uno
b. Driver 7Segment
c. Sensor Gas MQ-2
#include <Wire.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;
byte zerox = B00000010;
byte onex = B10011110;
byte twox = B00100100;
byte threex = B00001100;
byte fourx = B10011000;
byte fivex = B01001000;
byte sixx = B01000000;
byte sevenx = B00011110;
byte eightx = B00000000;
byte ninex = B00001000;
int latchPin = 4; //Pin connected to STR(pin 1) of HEF4094
int clockPin = 3; //Pin connected to CLK(pin 3) of HEF4094
int dataPin = 2; //Pin connected to D(pin 2) of HEF4094
int oe = 5; //Pin connected to OE(pin 2) of HEF4094
int temp;
int x = 5;
int y;
int sensorValue;
void setup(){
Serial.begin(9600);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(oe, OUTPUT);
digitalWrite(oe,HIGH);
}
void loop(){
sensorValue = analogRead(A0);
float volt = sensorValue * (5.0/1023.0);
int voltx = volt * 100;
temp = voltx;
int ribuan = temp / 1000;
temp = temp % 1000;
int ratusan = temp / 100;
temp = temp % 100;
int puluhan = temp / 10;
int satuan = temp % 10;
switch(ratusan){
case 0:
ratusan = zerox;
break;
case 1:
ratusan = onex;
break;
case 2:
ratusan = twox;
break;
case 3:
ratusan = threex;
break;
case 4:
ratusan = fourx;
break;
case 5:
ratusan = fivex;
break;
case 6:
ratusan = sixx;
break;
case 7:
ratusan = sevenx;
break;
case 8:
ratusan = eightx;
break;
case 9:
ratusan = ninex;
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