3 Arduino Pins to 24+ Output Pins (7 / 7 steg)
Steg 7: LED chaser för kul!!!
Om du har nått detta test har slutförts moduler. Så låt oss göra en LED chaser bara för skojs skull och även för att förstå koderna arbetar ännu mer. Koden anges nedan att experimentera med dina nya moduler. Jag laddade upp en video av min LED chaser.
KOD:
int SER_Pin = 11; stift 14 på 75HC595
int RCLK_Pin = 8; stift 12 på 75HC595
int SRCLK_Pin = 12; stift 11 på 75HC595
Hur många av skiftet register - ändra detta
#define number_of_74hc595s 3
rör inte
#define numOfRegisterPins number_of_74hc595s * 8
Boolean registrerar [numOfRegisterPins];
void setup() {
Serial.BEGIN(9600);
pinMode (SER_Pin, OUTPUT);
pinMode (RCLK_Pin, OUTPUT);
pinMode (SRCLK_Pin, OUTPUT);
Återställ alla register stift
clearRegisters();
writeRegisters();
}
alla register stift inställd på låg
void clearRegisters() {
för (int jag = numOfRegisterPins - 1; i > = 0; i--) {
register [i] = låg;
}
writeRegisters();
}
Ange och Visa register
Bara ringa när alla värden är hur du vill ha (långsam annars)
void writeRegisters() {
digitalWrite (RCLK_Pin, låg);
för (int jag = numOfRegisterPins - 1; i > = 0; i--) {
digitalWrite (SRCLK_Pin, låg);
int val = register [i];
digitalWrite (SER_Pin, val);
digitalWrite (SRCLK_Pin, hög);
}
digitalWrite (RCLK_Pin, hög);
}
ställa in en individuell pin högt eller lågt
void setRegisterPin (heltal index, int värde) {
register [index] = värde;
}
void loop() {
för (int jag = 0; jag < numOfRegisterPins; i ++)
{
setRegisterPin i, hög.
Serial.println(i);
writeRegisters();
Delay(70);
clearRegisters();
}
clearRegisters();
för (int jag = 24; jag > 0; i--)
{
setRegisterPin i, hög.
writeRegisters();
Serial.println(i);
Delay(70);
clearRegisters();
}
clearRegisters();
}
Väl har jag slutligen kommit till slutet av denna handledning. Jag hade massor av kul att göra dessa moduler och jag hoppas det har du. Jag ser fram emot dina kommentarer och feedback. Tills nästa gång bye!