Problem mit Schaltung aus "Die elektronische Welt mit Arduino entdecken"

Hallo verehrte Mitglieder des Arduino Forums,

ich habe ein kleines Problem mit einer Schaltung aus dem Buch von Erik Bartmann “Die elektronische Welt mit Arduino entdecken”.
Es geht um Projekt 7 Porterweiterung mal 2.
Hierbei sollen mittels zweier Schieberegister vom Typ 74HC595 die DOs des Arduino erweitert werden. D.h. mit nur drei Ausgängen am Arduino lassen sich 16 LEDs schalten.

Ich habe die Schaltung auf einem Breadboard aufgebaut und den Sketch aus dem Buch abgeschrieben, leider tritt nicht die erwartete Funktion ein. Danach habe ich den Sketch sowie die Schaltung zigmal auf Fehler überprüft, aber nichts gefunden.

Hier der Sketch-Code:

/

/Variablendeklaration
int taktPin = 8;           // SH_CP
int speicherPin = 9;  // ST_CP
int datenPin = 10;     // DS

//setup-Funktion
void setup(){
  pinMode(taktPin, OUTPUT); 
  pinMode(speicherPin, OUTPUT);
  pinMode(datenPin, OUTPUT);
}

//loop-Funktion
void loop(){
  sendeBytes(0B1111111111111111);  // zu übertragende Binärzahlen
  delay(1000);
  sendeBytes(0B0000000000000000);
  delay(1000);
  sendeBytes(0B1100110011001100);
  delay(1000);
  sendeBytes(0B0011001100110011);
  delay(1000);
  sendeBytes(0B0101010101010101);
  delay(1000);
  sendeBytes(0B1010101010101010);
  delay(1000);
  sendeBytes(0B1111000011110000);
  delay(1000);
  sendeBytes(0B0000111100001111);
  delay(1000);
  sendeBytes(0B1111111100000000);
  delay(1000);
  sendeBytes(0B0000000011111111);
  delay(1000);
  sendeBytes(0B1111000000001111);
  delay(1000);
  sendeBytes(0B0000111111110000);
  delay(1000);
}

// Funktion zum Übertragen der Informationen
void sendeBytes(int wert){ 
 digitalWrite(speicherPin, LOW);
 shiftOut(datenPin, taktPin, MSBFIRST, wert >> 8);
 shiftOut(datenPin, taktPin, MSBFIRST, wert & 255); 
 digitalWrite(speicherPin, HIGH); 
}

Im Anhang befindet sich ein Screenshot der Schaltung.

Ich schreibe bewusst, dass die erwartete Funktion nicht eintritt, denn scheinbar funktioniert es - irgendwie… Die Muster der LEDs stimmen, nur leider leuchten diese nur ab und zu und mit sehr langen Pausen dazwischen und auch nicht alle nacheinander.
Meine Erwartung ist eigentlich, dass durch die verschiedenen gesendeten Binärzahlen die LEDs auf meinem Breadboard dementsprechend leuchten und zwar ohne Unterbrechung in der richtigen Reihenfolge und das auch noch in einer Endlosschleife.

Was ist hier los?
Hat jemand vielleicht auch dieses Buch und ist auf das selbe Problem/ Phänomen gestoßen?

Es wäre toll, wenn ihr mir helfen könntet.

Vorab schon vielen Dank!

Mit freundlichen Grüßen

Benedikt

hi,

hier hast Du das gleiche schön bebildert. funktioniert 100%.
ich hab das sehr gute buch von bartmann zwar, aber nicht hier. wenn das beispiel von oben mit den beigelegten sketches funkt, kannst Du ja dann den sketch von bartmann nehmen.

gruß stefan

H0N3CK3R:
Hierbei sollen mittels zweier Schieberegister vom Typ 74HC595 die DOs des Arduino erweitert werden. D.h. mit nur drei Ausgängen am Arduino lassen sich 16 LEDs schalten.

Hallo,

zu dem Buch kann ich nichts sagen, die Schaltung unten sieht auf den ersten Blick ok aus, obwohl ich mich nicht rein vertieft habe. Wenn Du willst schau mal hier: meinduino.de. Da wird das gleiche auf dem Breadboard gezeigt und das funktioniert so. Vielleicht kannst Du es ja mit Deinem Aufbau vergleichen.

Gruß,
Ralf

PS: Verträgt sich der 74HC595 eigentlich mit 8 LEDs oder ziehen die zuviel Strom? Ich meinte ich hätte was von "70mA continous current through VCC or GND" gelesen.

Meist liegt es am einem Fehler im Aufbau.
Ein Kabel falsch gesteckt, ein Wackelkontakt....
Prüfe das nochmal Pin für Pin

hi,

PS: Verträgt sich der 74HC595 eigentlich mit 8 LEDs oder ziehen die zuviel Strom? Ich meinte ich hätte was von "70mA continous current through VCC or GND" gelesen.

wie so oft:
eigentlich geht's nicht, aber in wirklichkeit schon...

gruß stefan

PS: Verträgt sich der 74HC595 eigentlich mit 8 LEDs oder ziehen die zuviel Strom? Ich meinte ich hätte was von "70mA continous current through VCC or GND" gelesen.

Es ist grezwertig. Da die Information fehlt, welche Farbe die LED haben kann die Richtige bemessung der Vorwiderstände nicht kontrolliert werden. 9mA pro LEd sind durchaus in der Spezifikation und das wären bei weißen oder blauen LED durchaus gegeben.

@H0N3CK3R

Auf Deinem schaltbild sind die 74HC595 von unten gesehen numeriert; das ist unüblich. Hast Du sie richtig eingesetzt?

H0N3CK3R ist ein sehr unglücklich gewälter Username.
Grüße Uwe

Dass du auch alles weißt, Uwe.
Musste erst schaun was des fürn Name ist.

skorpi08:
Dass du auch alles weißt, Uwe.
Musste erst schaun was des fürn Name ist.

Das macht das Alter. :wink: :wink: :wink: :wink:

Hallo,

hab zwar das Buch, aber mangels Schieberegister ... :wink:
Wenn es auf der Homepage vom Erik keine Korrektur gibt sollte es funktionieren.
Ansonsten, wie schon erwähnt wurde, bestimmt nur ein Kontaktproblem.

Ich habe die Tage ein Problem gehabt, dass ich mit einem HCT4017 lösen wollte. Auf dem Breadboard hat es nicht funktioniert. Die Schaltung hatte auch nach der X-ten Kontrolle keinen Fehler. Das IC war neu. Ein anderes neues IC funktionierte auch nicht. Daher habe ich die Schaltung testweise an einen IC-Sockel angelötet. Siehe da - nun lief alles, wie es sollte. Offensichtlich hatte das Breadbord ein (Kontakt)Problem mit den "zu kurzen" Beinchen des ICs.

Wenn Du also alle anderen Fehler ausschließen kannst, versuch es mal auf einer Lochrasterplatine.

Hallo zusammen,

vielen Dank erstmal für die zahlreichen Antworten!

@Stefan & Ralf:
Danke für die interessanten Links, ich werde die Schaltungen mal nachbauen und testen ob es bei mir auch funktioniert.

@Uwe:
Ich verwende eine Bargraph-Anzeige mit 20 roten LEDs.
Auf dem Schaltbild habe ich die ICs bewusst verdreht dargestellt, da dies die Verdrahtung wie ich finde etwas übersichtlicher gemacht hat. Auf dem Board habe ich die Anschlüsse korrekt belegt, da bin ich mir nach diversen Überprüfungen sicher.
Ich dachte auch erst, dass eine Überlastung der ICs die Ursache ist (gemessener Strom wenn alle 16 LEDs eingeschaltet sind etwa 160mA), aber ich glaube dann würde einfach gar nichts mehr laufen.
Bitte stoß’ dich nicht an meinem Spitznamen, den hab ich schon ewig und er geht nicht auf den ehem. SED-Chef zurück und er soll auch auf keinen Fall irgendetwas verherrlichen oder gut heißen.

@ Doc_Arduino & Gelegenheitsbastler:
Ich glaub auch fast, dass die Kontaktierung das Problem ist. Diesen Breadboards kann man scheinbar nicht uneingeschränkt vertrauen. Habe mir schon ein zweites “besseres” gekauft, weil ich gemerkt habe, dass bei meinem ersten Breadboard Wackelkontakte auftraten - hat scheinbar auch nichts genutzt. Es geht wohl nichts über einer sorgfältig hergestellte Lochrasterplatine…

Gruß, Benedikt

Dann mach mal ein Foto von Deinem Aufbau
Grüße Uwe

Hallo,

anbei ein paar Bilder von meinem Schaltungsaufbau.

MfG Benedikt

20140622_163210.jpg

20140622_163226.jpg

20140622_163235.jpg

20140622_163243.jpg