int datapin = 2;
int clockpin = 3;
int latchpin = 4;
byte data = 0;
void setup()
{
pinMode(datapin, OUTPUT);
pinMode(clockpin, OUTPUT);
pinMode(latchpin, OUTPUT);
}
void loop()
{
// allAtOnce();
oneOnAtATime();
// binaryCount();
}
void shiftWrite(int desiredPin, boolean desiredState){
bitWrite(data,desiredPin,desiredState);
shiftOut(datapin, clockpin, MSBFIRST, data);
digitalWrite(latchpin, HIGH);
digitalWrite(latchpin, LOW);
}
void allAtOnce()
{
int index;
for(index = 0; index <= 7; index++)
{
shiftWrite(index, HIGH);
}
delay(1000);
for(index = 7; index >= 0; index--)
{
shiftWrite(index, LOW);
}
delay(1000);
}
void oneOnAtATime()
{
int index;
int delayTime = 500;
for(index = 0; index <= 7; index++)
{
shiftWrite(index, HIGH);
delay(delayTime);
shiftWrite(index, LOW);
}
}
void binaryCount()
{
int delayTime = 100;
shiftOut(datapin, clockpin, MSBFIRST, data);
digitalWrite(latchpin, HIGH);
digitalWrite(latchpin, LOW);
data++;
delay(delayTime);
}