arduino
unknown
plain_text
a month ago
2.4 kB
6
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