I am just totally stuck...
I somehow tried to put the different suggestion into the code but I simply dont get it to work.
How would I put it into this code here? (the huge part at the end is only to control the shift register with the different blinking modes)
this code now executes all the different blinking modes in a row, when I press the button...
const int clockPin = 9; //setting the clock to talk to the 74HC164 shifter to pin 9 on arduino
const int dataPin = 8; // setting the pin for serial communication with the 74HC164 shifter
const int buttonPin = 2; // setting the pin of the button
int buttonState = 0; // button state low
//setting the different pins as Out or Input
void setup() {
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
// Loop checking the button high low and executing command on high else all leds off
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
loopSnakeLeftRight ();
walkLeftRight ();
traindrive();
leftrightcollusionSingle();
leftrightcollusionsnake();
fastblink();
snakecentral();
strobeblink();
leftrightblink();
}
else allOFF ();
}
// All LEDS off function
void allOFF() {
shiftOut (dataPin, clockPin, MSBFIRST, B00000000);
}
// now all the different blinking modes for the shift register are bellow
void loopSnakeLeftRight() {
for (int i=0; i<3; i++)
{
shiftOut(dataPin, clockPin, MSBFIRST, B00000001);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B00000011);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B00000111);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B00001111);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B00011111);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B00111111);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B01111111);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B11111111);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B10000000);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B11000000);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B11100000);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B11110000);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B11111000);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B11111100);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B11111110);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B11111111);
delay(50);
}
}
void walkLeftRight() {
for (int i=0; i<8; i++)
{
shiftOut(dataPin, clockPin, MSBFIRST, B00000001 << i);
delay(50);
}
for (int i=0; i<8; i++)
{
shiftOut(dataPin, clockPin, MSBFIRST, B10000000 >> i);
delay(50);
}
}
void traindrive() {
for (int i=0; i<3; i++)
{
shiftOut(dataPin, clockPin, MSBFIRST, B00000000);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B00000001);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B00000010);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B00000101);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B00001010);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B00010101);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B00101010);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B01010101);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B10101010);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B01010101);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B10101010);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B01010101);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B10101010);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B01010101);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B10101010);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B01010101);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B10101010);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B01010100);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B10101000);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B01010000);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B10100000);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B01000000);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B10000000);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B00000000);
delay(100);
shiftOut(dataPin, clockPin, MSBFIRST, B00000000);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B10000000);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B01000000);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B10100000);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B01010000);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B10101000);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B01010100);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B10101010);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B01010101);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B10101010);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B01010101);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B10101010);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B01010101);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B10101010);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B01010101);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B10101010);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B01010101);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B00101010);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B00010101);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B00001010);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B00000101);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B00000010);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B00000001);
delay(50);
shiftOut(dataPin, clockPin, MSBFIRST, B00000000);
delay(50);
}
}
I mean I dont even know how to put it into the code there...
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
randomled();
}
else allOFF ();
}
// All LEDS off function
void allOFF() {
shiftOut (dataPin, clockPin, MSBFIRST, B00000000);
}
switch randomled (random_num_0_to_2)
{
case 0;
loopSnakeLeftRight ();
break;
case 1:
walkLeftRight ();
break;
case 2;
traindrive();
break;
}