arduino
unknown
plain_text
9 months ago
2.4 kB
9
Indexable
// pb1 = tambah
// pb2 = kurang
// pb3 = reset
// ketika ditekan buzzer bunyi
const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8};
const int pb[] = {9, 10, 11};
const int buzz = 13;
int count = 0;
int data[10][7] = {
{HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW}, //0
{LOW, HIGH, HIGH, LOW, LOW, LOW, LOW}, //1
{HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH}, //2
{HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH}, //3
{LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH}, //4
{HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH}, //5
{HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH}, //6
{HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW}, //7
{HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH}, //8
{HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH}, //9
};
void setup() {
for (int i = 0; i <= 6; i++) {
pinMode(segmentPins[i], OUTPUT);
}
for (int j = 0; j <= 2; j++) {
pinMode(pb[j], INPUT);
}
pinMode(buzz, OUTPUT);
Serial.begin(9600);
}
void loop() {
int btn1 = digitalRead(pb[0]);
int btn2 = digitalRead(pb[1]);
int btn3 = digitalRead(pb[2]);
delay(100);
if (btn1 == 0) {
buzzerActive();
if (count >= 9) {
count = 9;
} else {
count++;
}
}
if (btn2 == 0) {
buzzerActive();
if (count == 0 ) {
count = 0;
} else {
count--;
}
}
if (btn3 == 0) {
buzzerActive();
count = 0;
}
switch (count) {
case 0:
// 0
segmentActive(0);
break;
case 1:
// 1
segmentActive(1);
break;
case 2:
// 2
segmentActive(2);
break;
case 3:
// 3
segmentActive(3);
break;
case 4:
// 4
segmentActive(4);
break;
case 5:
//5
segmentActive(5);
break;
case 6:
// 6
segmentActive(6);
break;
case 7:
// 7
segmentActive(7);
break;
case 8:
// 8
segmentActive(8);
break;
case 9:
// 9
segmentActive(9);
break;
default:
segmentActive(0);
break;
}
}
void buzzerActive() {
digitalWrite(buzz, HIGH);
delay(250);
digitalWrite(buzz, LOW);
}
void segmentActive(int numb) {
for (int i = 0; i <= 6; i++) {
digitalWrite(segmentPins[i], data[numb][i]);
}
}Editor is loading...
Leave a Comment