Membuat Counter 7 Segment 2,3 Inch Menggunakan Arduino Uno
Kali ini saya akan membagikan bagaimana cara membuat Counter Up dan Down Menggunakan Arduino Uno dan akan di tampilkan di Modul 7 Segment 2,3 inch dengan menggunakan 3 Buah tombol untuk mengendalikan counter tersebut. Bagi kalian yang ingin membuat atau mencoba percobaan kali ini kalian perlu menyiapkan bahan sebagai berikut:
1. Modul 7 Segment 2,3 Inch Beli
2. Arduino Uno
3. DMD Uno Shield Beli
4. Tombol 3 Buah
5. Kabel Secukupnya
6. Power Supply 12V
Setelah bahan lengkap silahkan dirangkai sesuai skema rangkaian dibawah ini:
Jika Rangkaian sudah selesai Buatlah Program Counter seperti di bawah ini:
Jika Rangkaian sudah selesai Buatlah Program Counter seperti di bawah ini:
================================== SOURCE CODE ==================================
#include "Wire.h"
#define Data 5
#define Clk 4
#define Ser 2
byte digit1[11] = {0xFC, 0x50 , 0xBA, 0xDA, 0x56, 0xCE, 0xEE, 0x58, 0xFE, 0xDE};//2,3 Inch
int Up = A0;
int Down = A1;
int Reset = A2;
int Satuan,Puluhan,Ratusan,Ribuan;
unsigned long Counter = 0;
void setup(){
pinMode(Data, OUTPUT);
pinMode(Clk, OUTPUT);
pinMode(Ser, OUTPUT);
pinMode(Up, INPUT_PULLUP);
pinMode(Down, INPUT_PULLUP);
pinMode(Reset, INPUT_PULLUP);
}
void loop(){
Satuan = Counter % 10/1;
Puluhan = Counter % 100/10;
Ratusan = Counter % 1000/100;
Ribuan = Counter % 10000/1000;
if(digitalRead(Up)==LOW){
delay(200);
Counter++;
}
if(digitalRead(Down)==LOW){
delay(200);
Counter--;
}
if(digitalRead(Reset)==LOW){
delay(200);
Counter=0;
}
if(Counter >= 9999){
Counter = 0;
}
if(Counter <= 0000){
Counter = 0;
}
{
digitalWrite(Ser, LOW);
shiftOut(Data, Clk, MSBFIRST, digit1[Ribuan]);
shiftOut(Data, Clk, MSBFIRST, digit1[Ratusan]);
shiftOut(Data, Clk, MSBFIRST, digit1[Puluhan]);
shiftOut(Data, Clk, MSBFIRST, digit1[Satuan]);
digitalWrite(Ser, HIGH);
}
}
lalu Upload program tersebut ke Board Arduino yang sudah siap dipakai.
Program Diatas Digunakan untuk 4 Digit Jika ingin Menggunakan 2 Digit Gunakan Rangkaian dibawah ini:
================================== SOURCE CODE ==================================
#include "Wire.h"
#define Data 5
#define Clk 4
#define Ser 2
byte digit1[11] = {0xFC, 0x50 , 0xBA, 0xDA, 0x56, 0xCE, 0xEE, 0x58, 0xFE, 0xDE};//2,3 Inch
int Up = A0;
int Down = A1;
int Reset = A2;
int Satuan,Puluhan,Ratusan,Ribuan;
unsigned long Counter = 0;
void setup(){
pinMode(Data, OUTPUT);
pinMode(Clk, OUTPUT);
pinMode(Ser, OUTPUT);
pinMode(Up, INPUT_PULLUP);
pinMode(Down, INPUT_PULLUP);
pinMode(Reset, INPUT_PULLUP);
}
void loop(){
Satuan = Counter % 10/1;
Puluhan = Counter % 100/10;
if(digitalRead(Up)==LOW){
delay(200);
Counter++;
}
if(digitalRead(Down)==LOW){
delay(200);
Counter--;
}
if(digitalRead(Reset)==LOW){
delay(200);
Counter=0;
}
if(Counter >= 99){
Counter = 0;
}
if(Counter <= 00){
Counter = 0;
}
{
digitalWrite(Ser, LOW);
shiftOut(Data, Clk, MSBFIRST, digit1[Satuan]);
shiftOut(Data, Clk, MSBFIRST, digit1[Puluhan]);
digitalWrite(Ser, HIGH);
}
}
Selamat Mencoba...!!
No comments
Post a Comment