Data input analog dari tegangan merupakan data ADC yang kemudian di convert menjadi data tegangan. Hasil pembacaan tegangan ditampilkan pada seven segment 3 digit. Tegangan input masuk pada pin A0. Terdapat tombol hold berupa saklar ON/OFF, apabila saklar dalam kondisi ON maka tampilan di seven segment tidak berubah meskipun tegangan input berubah.
Kebutuhan Hardware
- Modul Seven segment 3 digit
- Potensio Meter
- 2 Tombol push ON
- Modul Arduino UNO
- Power supply +5 Volt
7-Segment | Source
Diagram Blok
Koneksi Arduino dengan 7-Segment
Koneksi Arduino dengan Komponen Lain
Source Code/Sketch
word miliVolt;
byte seven_seg_digits[10][7] = { { ,0,0,0,0,0,1 }, // = 0
{ 1,0,0,1,1,1,1 }, // = 1
{ 0,0,1,0,0,1,0 }, // = 2
{ 0,0,0,0,1,1,0 }, // = 3
{ 1,0,0,1,1,0,0 }, // = 4
{ 0,1,0,0,1,0,0 }, // = 5
{ 0,1,0,0,0,0,0 }, // = 6
{ 0,0,0,1,1,1,1 }, // = 7
{ 0,0,0,0,0,0,0 }, // = 8
{ 0,0,0,0,1,0,0 } // = 9
};
void setup(){
for(char i=2; i<13; i++){
pinMode(i,OUTPUT);
}
pinMode(13,INPUT);
digitalWrite(13,HIGH);
}
void loop(){
int adc=(analogRead(A0));
float vin = adc * (5.0 / 1023.0);
miliVolt = vin*100;
displaySeg();
if (digitalRead(13)==0){
byte hold=1;
do{
displaySeg();
if (digitalRead(13)==1){
hold=0;
}
}
while(hold);
}
}
void displaySeg(){
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(9,0);
sevenSegWrite(miliVolt/100);
delay(7);
digitalWrite(9,1);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
sevenSegWrite((miliVolt%100)/10);
delay(7);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
sevenSegWrite((miliVolt%100)%10);
delay(7);
}
void sevenSegWrite(byte segment) {
byte pin = 2;
for (byte segCount = 0; segCount < 7; ++segCount) {
digitalWrite(pin, seven_seg_digits[segment][segCount]);
++pin;
}
}
byte seven_seg_digits[10][7] = { { ,0,0,0,0,0,1 }, // = 0
{ 1,0,0,1,1,1,1 }, // = 1
{ 0,0,1,0,0,1,0 }, // = 2
{ 0,0,0,0,1,1,0 }, // = 3
{ 1,0,0,1,1,0,0 }, // = 4
{ 0,1,0,0,1,0,0 }, // = 5
{ 0,1,0,0,0,0,0 }, // = 6
{ 0,0,0,1,1,1,1 }, // = 7
{ 0,0,0,0,0,0,0 }, // = 8
{ 0,0,0,0,1,0,0 } // = 9
};
void setup(){
for(char i=2; i<13; i++){
pinMode(i,OUTPUT);
}
pinMode(13,INPUT);
digitalWrite(13,HIGH);
}
void loop(){
int adc=(analogRead(A0));
float vin = adc * (5.0 / 1023.0);
miliVolt = vin*100;
displaySeg();
if (digitalRead(13)==0){
byte hold=1;
do{
displaySeg();
if (digitalRead(13)==1){
hold=0;
}
}
while(hold);
}
}
void displaySeg(){
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(9,0);
sevenSegWrite(miliVolt/100);
delay(7);
digitalWrite(9,1);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
sevenSegWrite((miliVolt%100)/10);
delay(7);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
sevenSegWrite((miliVolt%100)%10);
delay(7);
}
void sevenSegWrite(byte segment) {
byte pin = 2;
for (byte segCount = 0; segCount < 7; ++segCount) {
digitalWrite(pin, seven_seg_digits[segment][segCount]);
++pin;
}
}
Jalannya Alat
1. Koneksikan antara sistem Arduino dengan peripheral lain seperti pada rangkaian (skematik).
2. Untuk simulasinya nanti Anda bisa menggunakan potensio meter sebagai inputan tegangan yang
outputnya bisa Anda atur sendiri.
3. Pasang power supply.
4. Tampilan pertama pada seven segment menampilkan kondisi pin A0.
5. Selanjutnya jika tombol hold ditekan maka tampilanya berhenti pada pembacaan tegangan Vin
terakhir.
6. Tekan lagi tombol hold untuk kembali ke tampilan normal.
Video untuk Project I - 5. Voltmeter Digital (5V) menggunakan Tampilan 7-Segment berbasis Arduino
KONTAK KAMI 085743320570 (adi sanjaya)
No comments:
Post a Comment