Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara mengakses IC 4094 sebagai driver untuk menampilkan nilai ADC pada 7segment. pada contoh kali ini menggunakan Arduino sebagai mikrokontroller dan pemberi sinyalnya. jadi nanti akan ditampilkan nilai ADC sebanyak 3 digit pada 7segment yang jumlahnya juga 3 pcs. IC 4094 yang dibutuhkan juga harus 3 buah dikarenakan 1 buah IC 4094 bisa mengendalikan 1 buah 7segment. untuk lebih jelasnya berikut adalah skema dan programnya
a. Arduino UNO
b. Rangkaian Driver 7Segment IC 4094
c. Program Arduino IDE
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 = 4; //Pin connected to STR(pin 1) of HEF4094
int clockPin = 3; //Pin connected to CP(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;
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);
temp = sensorValue;
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);
}
d. VIDEO HASILNYA
No comments:
Post a Comment