Skip to content

Instantly share code, notes, and snippets.

#include <SPI.h>
#define CHIP_SELECT 7
byte PH[8] = {0xff, 0x09, 0x09, 0x06, 0xff, 0x18, 0x18, 0xff}; //PH
byte A [8] = {0x00, 0x06, 0x26, 0x40, 0x40, 0x26, 0x06, 0x00}; // :)
byte B [8] = {0x00, 0x06, 0x46, 0x40, 0x40, 0x46, 0x06, 0x00}; // :|
byte C [8] = {0x00, 0x06, 0x86, 0x40, 0x40, 0x86, 0x0E, 0x00}; // -1
byte D [8] = {0x00, 0x06, 0x86, 0x40, 0x40, 0x86, 0x16, 0x00}; // 0
byte E [8] = {0x00, 0x06, 0x86, 0x40, 0x40, 0x86, 0x26, 0x00}; // +1
byte F [8] = {0x00, 0x06, 0x86, 0x40, 0x40, 0x86, 0x46, 0x00}; // +2
void sendData(uint8_t address, uint8_t dat) {
digitalWrite(CHIP_SELECT, LOW);
SPI.transfer(address);
SPI.transfer(dat);
digitalWrite(CHIP_SELECT, HIGH);
}
void setup() {
pinMode(CHIP_SELECT, OUTPUT);
SPI.setBitOrder(MSBFIRST);
SPI.begin();
/*--------------------INIT--------------------*/
sendData(0x0F, 0x01); //Run test, All LED segments should light up
delay(1000);
sendData(0x0F, 0x00); //End Test
sendData(0x09, 0x00); //Decode Mode
sendData(0x0A, 0x00); //Lowest Intensity
sendData(0x0B, 0x0F); //Scan all digits
sendData(0x0C, 0x01); //Turn on chip
for (int i = 1; i < 9; i++) sendData(i, PH[i - 1]);
delay(1500);
}
void loop() {
for (int i = 1; i < 9; i++) { sendData(i, A[i - 1]); }
delay(1000);
for (int i = 1; i < 9; i++) { sendData(i, B[i - 1]); }
delay(1000);
for (int j = 0; j < 2; j++)
{
for (int i = 1; i < 9; i++) { sendData(i, C[i - 1]); }
delay(1000);
for (int i = 1; i < 9; i++) { sendData(i, D[i - 1]); }
delay(1000);
for (int i = 1; i < 9; i++) { sendData(i, E[i - 1]); }
delay(1000);
for (int i = 1; i < 9; i++) { sendData(i, F[i - 1]); }
delay(1000);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment