-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit f5ba205
Showing
2 changed files
with
89 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
#define LED 13 | ||
|
||
void setup() { | ||
pinMode(LED, OUTPUT); | ||
} | ||
|
||
void loop() { | ||
digitalWrite(LED, HIGH); | ||
delay(1000); | ||
digitalWrite(LED, LOW); | ||
delay(1000); | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
int SER_Pin = 13; //pin 14 on the 75HC595 | ||
int RCLK_Pin = 12; //pin 12 on the 75HC595 | ||
int SRCLK_Pin = 8; //pin 11 on the 75HC595 | ||
|
||
//How many of the shift registers - change this | ||
#define number_of_74hc595s 2 | ||
|
||
//do not touch | ||
#define numOfRegisterPins number_of_74hc595s * 8 | ||
|
||
boolean registers[numOfRegisterPins]; | ||
|
||
void setup(){ | ||
pinMode(SER_Pin, OUTPUT); | ||
pinMode(RCLK_Pin, OUTPUT); | ||
pinMode(SRCLK_Pin, OUTPUT); | ||
|
||
|
||
//reset all register pins | ||
clearRegisters(); | ||
writeRegisters(); | ||
} | ||
|
||
|
||
//set all register pins to LOW | ||
void clearRegisters(){ | ||
for(int i = numOfRegisterPins - 1; i >= 0; i--){ | ||
registers[i] = LOW; | ||
} | ||
} | ||
|
||
|
||
//Set and display registers | ||
//Only call AFTER all values are set how you would like (slow otherwise) | ||
void writeRegisters(){ | ||
|
||
digitalWrite(RCLK_Pin, LOW); | ||
|
||
for(int i = numOfRegisterPins - 1; i >= 0; i--){ | ||
digitalWrite(SRCLK_Pin, LOW); | ||
|
||
int val = registers[i]; | ||
val = i%2; | ||
|
||
digitalWrite(SER_Pin, val); | ||
digitalWrite(SRCLK_Pin, HIGH); | ||
|
||
} | ||
digitalWrite(RCLK_Pin, HIGH); | ||
|
||
|
||
} | ||
|
||
//set an individual pin HIGH or LOW | ||
void setRegisterPin(int index, int value){ | ||
registers[index] = value; | ||
} | ||
|
||
|
||
void loop(){ | ||
|
||
setRegisterPin(0, HIGH); | ||
setRegisterPin(1, HIGH); | ||
setRegisterPin(2, LOW); | ||
setRegisterPin(3, HIGH); | ||
setRegisterPin(4, HIGH); | ||
setRegisterPin(5, LOW); | ||
setRegisterPin(6, HIGH); | ||
setRegisterPin(7, LOW); | ||
|
||
|
||
|
||
writeRegisters(); //MUST BE CALLED TO DISPLAY CHANGES | ||
writeRegisters(); | ||
//Only call once after the values are set how you need. | ||
} |