// Geworkian Michael 2024
/*int num_array[10]= {
0b11111100,0b01100000,0b11011010,0b11110010,0b01100110,
// 0 1 2 3 4 5
0b10110110,0b10111110,0b11100000,0b11111110,0b11100110 };
// 5 6 7 8 9
int datapin = 11, clockpin = 13, latchpin = 8;
void setup() { Serial.begin(9600);
pinMode(datapin, OUTPUT); pinMode(clockpin, OUTPUT); pinMode(latchpin, OUTPUT); }
void loop()
{ for (int counter = 0; counter <10; ++counter)
{delay(1000); Num_Write(counter); }
delay(3000);
}
void Num_Write(int number) // this functions writes values to the sev seg pins
{ byte data=num_array[number];
Serial.println(data,BIN);
shiftOut(datapin, clockpin, LSBFIRST, data);
// Toggle the latch pin :
digitalWrite(latchpin, HIGH); digitalWrite(latchpin, LOW);
//for (int i=0; i< 7; i++) {
// digitalWrite(2, num_array[number][i]); pin++;
//}
} */
// Работает, но НЕ правильно (НЕ правильные цифры) Схема соотв-ет Тинкеру
#include <SPI.h> // подключаем СТАНДАРТНУЮ библиотеку SPI
byte 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);
}
//greenoakst.blogspot.ru/2011/11/arduino-7-spi.html