Помогите создать таймер с обратным отсчётом на 7-ми сегментном индикаторе.
- Войдите на сайт для отправки комментариев
Сб, 01/12/2018 - 18:29
Помогите изменить скетч чтобы он заработал. Программа проверяет и находит ошибки. Исправьте пожалуйста.
// LED pins
int aPin = 9;
int bPin = 2;
int cPin = 3;
int dPin = 4;
int ePin = 5;
int fPin = 6;
int gPin = 7;
int dpPin = 8;
// digits pins
int y1 = 10;
int y2 = 11;
int y3 = 12;
int y4 = 13;
// pins arrays
int ledArray[] = {aPin, bPin, cPin, dPin, ePin, fPin, gPin, dpPin
int yArray[] = {y1, y2, y3, y4
// timer value
int test = 20;
void setup() {
pinMode(LEDPin, OUTPUT
// pinMode OUTPUT for all LED pins
for (int i = 0; i < 8; i++
pinMode(ledArray[i], OUTPUT
}
// pinMode OUTPUT for pins that control digits
for (int i = 0; i < 4; i++
pinMode(yArray[i], OUTPUT
}
}
void loop() {
int thousand = test/1000;
int hundred = (test - thousand*1000)/100;
int ten = (test - thousand*1000 - hundred*100)/10;
int one = test - thousand*1000 - hundred*100 - ten*10;
// OFF all digit pins at start
for (int y = 0; y < 4; y++
digitalWrite(yArray[y], HIGH
}
// check that number to display is not zero
if (test > 0) {
// loop for display digits
for (int i = 0; i < 50; i++
// display first digit
if (thousand != 0) {
digitalWrite(yArray[0], LOW
LEDDisplay(thousand
delay (5);
digitalWrite(yArray[0], HIGH
} else {
digitalWrite(yArray[0], LOW
LEDDisplay(0);
delay (5);
digitalWrite(yArray[0], HIGH
}
// display second digit
if (hundred != 0) {
digitalWrite(yArray[1], LOW
LEDDisplay(hundred
delay (5);
digitalWrite(yArray[1], HIGH
} else {
digitalWrite(yArray[1], LOW
LEDDisplay(0);
delay (5);
digitalWrite(yArray[1], HIGH
}
// display third digit
if (ten != 0) {
digitalWrite(yArray[2], LOW
LEDDisplay(ten
delay (5);
digitalWrite(yArray[2], HIGH
} else {
digitalWrite(yArray[2], LOW
LEDDisplay(0);
delay (5);
digitalWrite(yArray[2], HIGH
}
// display last digit
if (one != 0) {
digitalWrite(yArray[3], LOW
LEDDisplay(one
delay (5);
digitalWrite(yArray[3], HIGH
} else {
digitalWrite(yArray[3], LOW
LEDDisplay(0);
delay (5);
digitalWrite(yArray[3], HIGH
}
// close for loop
}
// decriment number for count down
test = test - 1;
} else {
digitalWrite(dpPin, HIGH); // use this dpPin for LED
}
}
void LEDDisplay(int x
switch(x
case 0:
digitalWrite(aPin, HIGH
digitalWrite(bPin, HIGH
digitalWrite(cPin, HIGH
digitalWrite(dPin, HIGH
digitalWrite(ePin, HIGH
digitalWrite(fPin, HIGH
digitalWrite(gPin, LOW
digitalWrite(dpPin, LOW
break;
case 1:
digitalWrite(aPin, LOW
digitalWrite(bPin, HIGH
digitalWrite(cPin, HIGH
digitalWrite(dPin, LOW
digitalWrite(ePin, LOW
digitalWrite(fPin, LOW
digitalWrite(gPin, LOW
digitalWrite(dpPin, LOW
break;
case 2:
digitalWrite(aPin, HIGH
digitalWrite(bPin, HIGH
digitalWrite(cPin, LOW
digitalWrite(dPin, HIGH
digitalWrite(ePin, HIGH
digitalWrite(fPin, LOW
digitalWrite(gPin, HIGH
digitalWrite(dpPin, LOW
break;
case 3:
digitalWrite(aPin, HIGH
digitalWrite(bPin, HIGH
digitalWrite(cPin, HIGH
digitalWrite(dPin, HIGH
digitalWrite(ePin, LOW
digitalWrite(fPin, LOW
digitalWrite(gPin, HIGH
digitalWrite(dpPin, LOW
break;
case 4:
digitalWrite(aPin, LOW
digitalWrite(bPin, HIGH
digitalWrite(cPin, HIGH
digitalWrite(dPin, LOW
digitalWrite(ePin, LOW
digitalWrite(fPin, HIGH
digitalWrite(gPin, HIGH
digitalWrite(dpPin, LOW
break;
case 5:
digitalWrite(aPin, HIGH
digitalWrite(bPin, LOW
digitalWrite(cPin, HIGH
digitalWrite(dPin, HIGH
digitalWrite(ePin, LOW
digitalWrite(fPin, HIGH
digitalWrite(gPin, HIGH
digitalWrite(dpPin, LOW
break;
case 6:
digitalWrite(aPin, HIGH
digitalWrite(bPin, LOW
digitalWrite(cPin, HIGH
digitalWrite(dPin, HIGH
digitalWrite(ePin, HIGH
digitalWrite(fPin, HIGH
digitalWrite(gPin, HIGH
digitalWrite(dpPin, LOW
break;
case 7:
digitalWrite(aPin, HIGH
digitalWrite(bPin, HIGH
digitalWrite(cPin, HIGH
digitalWrite(dPin, LOW
digitalWrite(ePin, LOW
digitalWrite(fPin, LOW
digitalWrite(gPin, LOW
digitalWrite(dpPin, LOW
break;
case 8:
digitalWrite(aPin, HIGH
digitalWrite(bPin, HIGH
digitalWrite(cPin, HIGH
digitalWrite(dPin, HIGH
digitalWrite(ePin, HIGH
digitalWrite(fPin, HIGH
digitalWrite(gPin, HIGH
digitalWrite(dpPin, LOW
break;
case 9:
digitalWrite(aPin, HIGH
digitalWrite(bPin, HIGH
digitalWrite(cPin, HIGH
digitalWrite(dPin, LOW
digitalWrite(ePin, LOW
digitalWrite(fPin, HIGH
digitalWrite(gPin, HIGH
digitalWrite(dpPin, LOW
break;
default:
digitalWrite(aPin, LOW
digitalWrite(bPin, LOW
digitalWrite(cPin, LOW
digitalWrite(dPin, LOW
digitalWrite(ePin, LOW
digitalWrite(fPin, LOW
digitalWrite(gPin, LOW
digitalWrite(dpPin, LOW
}
}
void dp () {
// digitalWrite(aPin, LOW
// digitalWrite(bPin, LOW
// digitalWrite(cPin, LOW
// digitalWrite(dPin, LOW
// digitalWrite(ePin, LOW
// digitalWrite(fPin, LOW
// digitalWrite(gPin, LOW
digitalWrite(dpPin, HIGH
}
Какие ошибки?
Какие ошибки?
Ибо отсутсвие закрывающих скобок, похоже, не ошибка, а принцип.
интересно, это как/чем надо было так закопипастить ?
Вам сколько лет?
И где Вы взяли .... эээ ... то, что Вы называете кодом?