//**************************************************************//
// Name : shiftOutCode, Hello World
// Author : Carlyn Maw,Tom Igoe, David A. Mellis
// Date : 25 Oct, 2006
// Modified: 23 Mar 2010
// Version : 2.0
// Notes : Code for using a 74HC595 Shift Register //
// : to count from 0 to 255
//****************************************************************
byte segChar[]={
/*
0b10111111, - 0
0b10000110, - 1
0b11011011, - 2
0b11001111, - 3
0b11100110, - 4
0b11101101, - 5
0b11111101, - 6
0b10000111, - 7
0b11111111, - 8
0b11101111, - 9
0b10000000, - null*
*/
0b10111111,
0b10000110,
0b11011011,
0b11001111,
0b11100110,
0b11101101,
0b11111101,
0b10000111,
0b11111111,
0b11101111,
0b00000000,
};
//Pin connected to ST_CP of 74HC595
int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;
void setup() {
//set pins to output so you can control the shift register
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(6, OUTPUT);
pinMode(3, OUTPUT);
}
void loop() {
// count from 0 to 255 and display the number
// on the LEDs
analogWrite(6,150);
analogWrite(3,200);
for (int numberToDisplay = 0; numberToDisplay < 9; numberToDisplay++) {
// take the latchPin low so
// the LEDs don't change while you're sending in bits:
digitalWrite(latchPin, LOW);
// shift out the bits:
shiftOut(dataPin, clockPin, MSBFIRST, segChar[numberToDisplay]);
//take the latch pin high so the LEDs will light up:
digitalWrite(latchPin, HIGH);
// pause before next value:
delay(500);
}
}