int dataPin = PB0;
int clockPin = PB2;
int latchPin = PB1;
int dat1 = PB5;
int dat2 = PB3;
int dat3 = PB4;
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(dat1, INPUT);
pinMode(dat2, INPUT);
pinMode(dat3, INPUT);
}
int num;
void loop() {
int value1 = digitalRead(dat1);
int value2 = digitalRead(dat2);
int value3 = digitalRead(dat3);
if (value1 == 0)
{
if (value2 == 0)
{
if (value3 == 0)
{
num = 0;
}
else
{
num = 4;
}
}
else
{
if (value3 == 0)
{
num = 2;
}
else
{
num = 6;
}
}
}
else
{
if (value2 == 0)
{
if (value3 == 0)
{
num = 1;
}
else
{
num = 5;
}
}
else
{
if (value3 == 0)
{
num = 3;
}
else
{
num = 7;
}
}
}
displayNumber(num);
}
void displayNumber(byte number) {
int pattern = 0b00000000;
if (number == 0) {
pattern = 0b00000011;//0
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(50);
}
if (number == 1) {
pattern = 0b10011111;//1
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(50);
}
if (number == 2) {
pattern = 0b00100101;//2
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(50);
}
if (number == 3) {
pattern = 0b00001101;//3
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(50);
}
if (number == 4) {
pattern = 0b10011001;//4
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(50);
}
if (number == 5) {
pattern = 0b01001001;//5
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(50);
}
if (number == 6) {
pattern = 0b01000001;//6
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(50);
}
}