Oke langsung saja apa saja sih yang dibutuhkan untuk membuat project ini?
1. Seven segment common catoda
2. Resistor 330 Ohm
3. Resistor 10K Ohm
4. Arduino
UNO R3
5. Project board
6. Tact switch/micro
switch
Skematik Rangkaian
Rangkai semua komponen seperti skematik dibawah ini
Input Program
Setelah selesai merakit semua komponennya, sambungkan arduino ke PC untuk
proses pemrograman.
Masukkan program di bawah ini:
.
.
byte numbers[10] = {
B11111100, B01100000, B11011010, B11110010, B01100110,
B10110110, B10111110, B11100000, B11111110, B11110110
};
void setup() {
for(int i = 2; i <= 8; i++)
{
pinMode(i, OUTPUT);
}
pinMode(9, INPUT);
pinMode(10, INPUT);
}
B11111100, B01100000, B11011010, B11110010, B01100110,
B10110110, B10111110, B11100000, B11111110, B11110110
};
void setup() {
for(int i = 2; i <= 8; i++)
{
pinMode(i, OUTPUT);
}
pinMode(9, INPUT);
pinMode(10, INPUT);
}
int counter = 0;
bool go_by_switch = true;
int last_input_value = LOW;
bool go_by_switch = true;
int last_input_value = LOW;
void loop() {
if(go_by_switch) {
int switch_input_value = digitalRead(9);
if(last_input_value == LOW && switch_input_value == HIGH) {
delay(100);
counter = (counter + 1) % 10;
}
last_input_value = switch_input_value;
}
else {
delay(500);
counter = (counter + 1) % 10;
}
writeNumber(counter);
}
if(go_by_switch) {
int switch_input_value = digitalRead(9);
if(last_input_value == LOW && switch_input_value == HIGH) {
delay(100);
counter = (counter + 1) % 10;
}
last_input_value = switch_input_value;
}
else {
delay(500);
counter = (counter + 1) % 10;
}
writeNumber(counter);
}
void writeNumber(int number) {
if(number < 0 || number > 9)
{
return;
}
byte mask = numbers[number];
byte currentPinMask = B10000000;
for(int i = 2; i <= 8; i++)
{
if(mask & currentPinMask) digitalWrite(i,HIGH);
else digitalWrite(i,LOW);
currentPinMask = currentPinMask >> 1;
}
}
if(number < 0 || number > 9)
{
return;
}
byte mask = numbers[number];
byte currentPinMask = B10000000;
for(int i = 2; i <= 8; i++)
{
if(mask & currentPinMask) digitalWrite(i,HIGH);
else digitalWrite(i,LOW);
currentPinMask = currentPinMask >> 1;
}
}
Upload dan Test
Setelah selesai memasukkan program tersebut, kemudian upload program.
Coba tekan switch maka tampilan seven segment akan berubah secara
berurutan/counter angka dari 0 sampai 9 kemudian kembali lagi ke 0, dan
seterusnya.
Tidak ada komentar:
Posting Komentar