#include <SPI.h> // подключаем библиотеку SPI
enum { reg = 8 }; // провод CS подсоединяем к 8-му пину Arduino
void setup()
{
SPI.begin(); // инициализируем SPI
pinMode(reg, OUTPUT); // настраиваем 8-й пин как выход
}
void loop()
{
// храним в массиве все цифры
static uint8_t digit[16] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
// выводим цифры по одной
for (int i=0;i<16;i++){
digitalWrite(reg, LOW); // притягиваем CS к земле - начало передачи
SPI.transfer(digit[i]); // передаем байт
digitalWrite(reg, HIGH); // отпускаем CS - конец передачи
delay(1000); // ждем секунду
}
//очистим дисплей на секунду
digitalWrite(reg, LOW);
SPI.transfer(0xFF);
digitalWrite(reg, HIGH);
delay(1000);
}
/*
DS счетчика подключаем к 11 пину Arduino (желтый провод);
выходы мы всегда разрешаем, поэтому садим OE сразу на землю;
STCP подключаем к 8 пину Arduino (зеленый провод);
SHCP (тактирующий вход) подключаем к 13 пину Arduino (оранжевый провод);
MR садим на питание, так как не планируем использовать сброс; Q7S оставляем болтаться, в данный момент он нам не нужен.
С подключением семисегментника все просто:
нужно аккуратно подключить ногу А к выходу регистра Q0, ногу B к выходу Q1 и т.д., ногу dp к Q7
*/