Multiplexering med Arduino och 74HC595 (14 / 14 steg)
Steg 14: Flytta ut
LED TEST 2 w / 74HC595
Amanda Ghassaei 2012
/*
* Detta program är fri programvara; Du kan vidaredistribuera det och/eller ändra
* det enligt villkoren i GNU General Public License som offentliggjorts av
* den Free Software Foundation; antingen version 2 av licensen, eller
* (på ditt alternativ) någon senare version.
*
* Detta program är distribuerat i hopp om att det kommer att vara användbar,
* men utan garantier; utan att ens underförstådd garanti om
* SÄLJBARHET eller lämplighet för ett visst ändamål. Se den
* GNU General Public License för mer detaljer.
*/
denna kod skickar data till 74HC595 utan "shiftOut"
PIN-anslutningar-#define tag kommer att ersätta alla förekomster av "latchPin" i koden med A1 (och så vidare)
#define latchPin A1
#define clockPin A0
#define dataPin A2
looping variabler
byte i.
byte j;
lagring variabel
byte dataToSend;
lagring för ledde staterna, 4 byte
byte ledData [] = {1, 3, 7, 15};
void setup() {
Ange stift
pinMode (latchPin, produktionen);
pinMode (clockPin, produktionen);
pinMode (dataPin, produktionen);
}
void loop() {
för (jag = 0; jag < 4; i ++) {
Skicka data från ledData till varje rad, en i taget
byte dataToSend = (1 << (jag + 4)) | (15 & ~ ledData[i]);
setlatch pin låg så lysdioderna inte ändra samtidigt skickas i bitar
digitalWrite (latchPin, låg);
/ / flytta ut bitarna av dataToSend till 74HC595
shiftOut (dataPin, clockPin, LSBFIRST, dataToSend);
koden nedan är motsvarigheten till de två raderna ovan
för (j = 0; j < 8; j ++) {
digitalWrite(clockPin,LOW);
digitalWrite (dataPin, ((dataToSend >> j) & 1));
digitalWrite(clockPin,HIGH);
}
Ställ in spärren pin hög - detta skickar data till utgångar så lamporna tänds
digitalWrite (latchPin, hög);
}
}