// Pin definitions
const int DS = 8; // Data (SER)
const int SH = 7; // Clock (SRCLK)
const int ST = 4; // Latch (RCLK)
#define stCLK(x) digitalWrite(ST, x)
#define shCLK(x) digitalWrite(SH, x)
#define dataS(x) digitalWrite(DS, x)
void setup()
{ pinMode(DS, OUTPUT);
pinMode(SH, OUTPUT);
pinMode(ST, OUTPUT);
digitalWrite(DS, LOW);
digitalWrite(SH, LOW);
digitalWrite(ST, LOW);
}
uint8_t ledSeq[] = {0x81,0x42,0x24,0x18,0x24,0x42,0x81,0x00};
void loop()
{ for(uint8_t i=0;i<sizeof(ledSeq);i++)
{
leds(ledSeq[i]);
delay(200);
}
}
void leds(uint8_t x)
{ stCLK(LOW);
for(int8_t i = 7; i >= 0; i--)
{ shCLK(LOW);
if(x & (1 << i)) dataS(HIGH);
else dataS(LOW);
shCLK(HIGH);
}
stCLK(HIGH);
}POT - A0
PB1 - A1
PB2 - A2
PB3 - A3
DS - 8
SH - 7
ST - 4
BUZZ - 3