// #define FIRST_PIN 4
// #define LAST_PIN 12
// void setup() {
// for(int pin=FIRST_PIN; pin<=LAST_PIN; ++pin){
// pinMode(pin, OUTPUT);
// }
// }
// void loop() {
// for(int pin=FIRST_PIN; pin<=LAST_PIN; ++pin){
// digitalWrite(pin, HIGH);
// delay(300);
// digitalWrite(pin, LOW);
// delay(300);
// }
// }
///////// Далее со сдвиговым регистром //////////
#define CLK_PIN 4
#define RCLK_PIN 5
#define SER_PIN 6
void setup() {
pinMode(CLK_PIN, OUTPUT); // SH_CP clock pin
pinMode(RCLK_PIN, OUTPUT); // ST_CP latch pin - строба
pinMode(SER_PIN, OUTPUT); // D_S - data pin
// ///// зажигаем ноль на индикаторе
// digitalWrite(RCLK_PIN, LOW); /// начинаем управлять
// digitalWrite(SER_PIN, LOW); // выключаю последние два
// for (int i = 0; i < 2; i++) {
// digitalWrite(CLK_PIN, HIGH); // начало такта
// digitalWrite(CLK_PIN, LOW); // конец такта
// }
// digitalWrite(SER_PIN, HIGH); // значение выхода
// for (int i = 0; i < 6; ++i) { //зажигаю первые 6 делений
// digitalWrite(CLK_PIN, HIGH); // начало такта
// digitalWrite(CLK_PIN, LOW); // конец такта
// }
// digitalWrite(RCLK_PIN, HIGH);/// сдвиговый регистр вдвинет
// digitalWrite(RCLK_PIN, LOW);/// указанные нами пины
}
////////////// 0 1 2
////////////// abcdefg. abcdefg. abcdefg.
byte digits[] = {0b11111100, 0b01100000, 0b11011010,
0b00000010, 0b00000001, 0b00000010,
0b00000001, 0b00000010, 0b00000001,
0b00000010
};
int i = 0;
void loop() {
i = ++i % 10;
digitalWrite(RCLK_PIN, LOW);
shiftOut(SER_PIN, CLK_PIN, LSBFIRST, digits[i]);
digitalWrite(RCLK_PIN, HIGH);
delay(1000);
}