Pages: 1 [2]   Go Down
Author Topic: 2 Schieberegister 74HC595 Anschließen  (Read 5245 times)
0 Members and 1 Guest are viewing this topic.
Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21879
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
for (int thisLed = 0; thisLed < 16; thisLed++) {    
    registerWrite(thisLed, HIGH);                 // schaltet 1 LED an
    if (thisLed > 0) {
      registerWrite(thisLed - 1, LOW);           // schaltet alle LED aus
    }    
    else {
      registerWrite(15, LOW);                       // schaltet alle LED aus
    }
    delay(250);
  }
und die Funktion:
Code:
void registerWrite(int whichPin, int whichState) {  
  unsigned int bitsToSend = 0;                                    // alle led aus (alle Bit auf LOW)
  digitalWrite(latchPin, LOW);
  bitWrite(bitsToSend, whichPin, whichState);              // setzt das entsprechende LED; hat aber nur Sinn wenn HIGH da alle Bit sowiso LOW sind
  byte registerOne = highByte(bitsToSend);                 // sendet die Daten
  byte registerTwo = lowByte(bitsToSend);  
  shiftOut(dataPin, clockPin, MSBFIRST, registerTwo);
  shiftOut(dataPin, clockPin, MSBFIRST, registerOne);
  digitalWrite(latchPin, HIGH);
}
Die Funktion registerWrite setzt ein Byte auf H. Anders als man es vermutet werden alle anderen Byte auf LOW gesetzt. Also wird eine LED angeschaltet und dann gleich wieder gelöscht. Nach 250mS wiederholt es sich.
Abhilfe: die Variable bitsToSend muß aus der Funktion registerWrite heraus und global definiert werden.
also:

Code:
//Pin connected to latch pin (ST_CP) of 74HC595
const int latchPin = 8;
//Pin connected to clock pin (SH_CP) of 74HC595
const int clockPin = 12;
////Pin connected to Data in (DS) of 74HC595
const int dataPin = 11;

unsigned int bitsToSend = 0;  
 
char inputString[2];

void setup() {
...
und
Code:
void registerWrite(int whichPin, int whichState) {  
  // unsigned int bitsToSend = 0;      
  digitalWrite(latchPin, LOW);
...
Grüße Uwe
« Last Edit: July 24, 2012, 02:18:30 pm by uwefed » Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21879
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hab eine Email an den Support geschrieben und das Problem erklährt.
Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Einfach superklasse. Du hast es ziemlich gut drauf!! ;-)
Gruß Andy
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21879
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Danke für den Lob.
Uwe
Logged

Pages: 1 [2]   Go Up
Jump to: