INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Schieberegister funktioniert nicht richtig
20.02.2021, 16:12
Beitrag #1
Schieberegister funktioniert nicht richtig
Hallo

Vorab ehe wieder danach gefragt wird mein Sketch:
Code:
const int DaE = 8;   // Daten Ebene        Ebene 0-aktiv => B01 ~ untere Ebene & B10 ~ obere Ebene
  const int ShE = 9;   // Schieben Ebene (SH)
  const int DaS = 6;   // Daten Säule        Säule 1-aktiv    B0100     B1000
  const int ShS = 7;   // Schieben Säule (SH)
  const int ST = 5;   // Speichern (ST)                       B0010     B0001
  
  int P = 200;
  
void setup()
  {
    pinMode(DaE, OUTPUT);    
    pinMode(DaS, OUTPUT);
    pinMode(ShE, OUTPUT);    
    pinMode(ShS, OUTPUT);
    pinMode(ST, OUTPUT);

  }

void loop()
  {
      for(int z = 0; z < 3; z++)     //alle einzeln der Reihe nach erst untere Ebene dann obere Ebene
      {
        digitalWrite(ST, LOW);
        shiftOut(DaE, ShE, LSBFIRST, B10000000);
        shiftOut(DaS, ShS, LSBFIRST, B10000000);
        setzen();
        delay(P);
        digitalWrite(ST, LOW);
        shiftOut(DaS, ShS, LSBFIRST, B01000000);
        setzen();
        delay(P);
        digitalWrite(ST, LOW);
        shiftOut(DaS, ShS, LSBFIRST, B00100000);
        setzen();
        delay(P);
        digitalWrite(ST, LOW);
        shiftOut(DaS, ShS, LSBFIRST, B00010000);
        setzen();
        delay(P);
        shiftOut(DaE, ShE, LSBFIRST, B01000000);
        shiftOut(DaS, ShS, LSBFIRST, B10000000);
        setzen();
        delay(P);
        digitalWrite(ST, LOW);
        shiftOut(DaS, ShS, LSBFIRST, B01000000);
        setzen();
        delay(P);
        digitalWrite(ST, LOW);
        shiftOut(DaS, ShS, LSBFIRST, B00100000);
        setzen();
        delay(P);
        digitalWrite(ST, LOW);
        shiftOut(DaS, ShS, LSBFIRST, B00010000);
        setzen();
        delay(P);
      }
  }

void setzen()
  {
    digitalWrite(ST, HIGH);
    delay(10);
    digitalWrite(ST, LOW);
  }
und der Schaltplan
[Bild: schaltplan.PNG]
An X1 ist die Spannungsversorgung mit 9VDC angeschlossen (Pin 1 = GND, Pin 2 = 9V). An an X2-5 sind 4 Säulen einens 2x2x2 LED-Würfels angeschlossen und an X6 und X7 die beiden Ebenen.

Wenn ich den Sketch mit der Schaltung laufen lasse, leuchten immer beide Ebenen. Warum ist das so? Was ist da falsch?

Wenn ich die Schaltung ändere und die Transistoren Q1-4 nicht mit 9V sondern mit den 5V aus Pin27 des Arduino betreibe, funktioniert das Ganze und ich weis nicht warum.

Für den kleinen Versuchswürfel brauche ich eigentlich keine Schieberegister. Das ganze ist nur ein Testaufbau, da ich einen Würfel mit 5x5x5 LED bauen will. Für diesen brauche ich dann 4 Schieberegister, da die Ausgänge des Nano nicht ausreichen. Der Strom des internen Spannungsreglers im Arduimo wird aber für 125 LED + 4Schieberegister + den Nano nicht mehr ausreichen.

Was kann ich ändern, damit es funktioniert. Ich vermute, es liegt an der Schltung und nicht am Sketch

Gruß Kay

Kaffee macht besser wach, wenn man ihn (versehentlich) über die Tastatur kippt statt ihn zu trinken.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2021, 16:19
Beitrag #2
RE: Schieberegister funktioniert nicht richtig
Hi,

ein pnp-Transistor leitet, wenn die Basis ca. 0,7V oder mehr unter dem Pegel des Emitter ist.
Also ist auch ein HIGH bei 9Volt immernoch ein LOW-Pegel für den pnp-Transistor, den bekommst Du ohne weiteren npn-Treiber nicht nichtleitend.

Gruß André
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2021, 16:22 (Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2021 16:27 von Tommy56.)
Beitrag #3
RE: Schieberegister funktioniert nicht richtig
Ohne es jetzt Nachzurechnen: Wahrscheinlich ist bei 9V der Spannungsabfall vom 390R über den Rest der externen Schaltung nach GND zu hoch, um den Transistor sauber zu öffnen. Die Plusseite mit pnp- oder p-Kanal Mosfet Transistoren (Siehe Anhang) wird außerdem LOW-aktiv geschaltet, wenn sie direkt geschaltet wird. Besser ist aber ein npn Treiber.
Wenn es bei 5V funktioniert, dann nimm halt 5V, Du brauchst sowieso eine extra Versorgung der LED mit einem eigenen Netzteil.

Gruß Tommy


Angehängte Datei(en) Thumbnail(s)
       

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2021, 16:46
Beitrag #4
RE: Schieberegister funktioniert nicht richtig
auch wenn ich das Netzteil auf 5V runterdrehe, leuchten beide Ebenen.
Ich hab jetzt die PNP (BC327) durch NPN-Transistoren (BC 337) ersetzt, und den beim Sketch die 0en und 1en in den betreffenden Zeilen getauscht. Und schon läuft das.

Danke für die schnelle Hilfe. Hätte man auch selber drauf kommen können. Hinterher ist man immer schlauer.

Danke Kay

Kaffee macht besser wach, wenn man ihn (versehentlich) über die Tastatur kippt statt ihn zu trinken.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2021, 17:07
Beitrag #5
RE: Schieberegister funktioniert nicht richtig
(20.02.2021 16:46)flint74 schrieb:  auch wenn ich das Netzteil auf 5V runterdrehe, leuchten beide Ebenen.
Ich hab jetzt die PNP (BC327) durch NPN-Transistoren (BC 337) ersetzt, und den beim Sketch die 0en und 1en in den betreffenden Zeilen getauscht. Und schon läuft das.

Und du schaltest mit dem NPN jetzt die Plusleitung ?
Gut wenn es funktioniert, aber sicher ist das nicht.
Ok, bei einer Led ist das machbar, aber nicht optimal.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2021, 18:14 (Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2021 18:14 von MicroBahner.)
Beitrag #6
RE: Schieberegister funktioniert nicht richtig
Ich gehe mal davon aus, dass in deinem Schaltbild bei den PNP Transistoren Collector und Emitter vertauscht sind. Denn so könnte es gar nicht funktionieren. Der PNP-Transistor will den Emitter an Plus haben. Um ihn zu sperren, muss aber dann die Basis auch entsprechend hoch gezogen werden - und das kann der 595 nicht leisten, wenn der Emitter an 9V hängt. Dann bekommst Du den nicht gesperrt. Bei 5V funktioniert es, da bekommt der 595 die Basis hoch genug.
Wenn Du den PNP-Transistor durch einen NPN ersetzt, arbeitet der aber nicht mehr im Schaltbetrieb. Der 595 kann höchstens 5V an die Basis liefern, und am Emitter hast Du dann etwa 4,3V - damit betriebst Du deine Leds. Die Differenz zu deinen 9V muss der Transistor verbraten - keine so optimale Lösung, auch wenn es im Testaufbau funktioniert. Da betreibst Du das besser grundsätzlich mit 5V.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2021, 20:12
Beitrag #7
RE: Schieberegister funktioniert nicht richtig
(20.02.2021 18:14)MicroBahner schrieb:  Ich gehe mal davon aus, dass in deinem Schaltbild bei den PNP Transistoren Collector und Emitter vertauscht sind.
Stimmt, da hab ich beim Schaltplanzeichnen mal wieder was verwechselt. Man wird eben alt...

(20.02.2021 18:14)MicroBahner schrieb:  I...Um ihn zu sperren, muss aber dann die Basis auch entsprechend hoch gezogen werden - und das kann der 595 nicht leisten, wenn der Emitter an 9V hängt. Dann bekommst Du den nicht gesperrt.

Wie hoch muss den die Spannung an der Basis sein, damit der PNP bei 9V sicher sperrt? Das ganze soll ja mit einer 9V-Block-Batterie betrieben werden. 5V-Batterien gibt es ja eher nicht. Kann man dann die Basis des PNP über einen NPN ansteuern? Klingt irgendwie verworren und komplizert.

Ich hab ja schon mehrere solcher Würfel als 3x3x3 gebaut. Da sind die Ausgänge des Nano ausreichend (9 Säulen + 3 Ebenen macht 12 Ausgänge) da funktionierte die Schaltung mit den PNP für die Säulen und NPN für die Ebenen immer. Da hab ich auch 9V-Batterien als Spannungsquelle verwendet. Aber für 5x5x5 brauch ich 30 Ausgänge und damit die Schieberegister. Oder gibt es da noch ne andere Idee?
Gruß Kay

Kaffee macht besser wach, wenn man ihn (versehentlich) über die Tastatur kippt statt ihn zu trinken.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2021, 20:15
Beitrag #8
RE: Schieberegister funktioniert nicht richtig
Also 5x5x5 LED mit einem 9V-Block - den Aufwand kannst Du Dir sparen, außer Du willst den aller paar Minuten wechseln.
Die Dinger haben einen viel zu hohen Innenwiderstand und viel zu wenig Kapazität.
Nimm ein ordentliches 5V-Netzteil.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Mega wird nicht erkannt Gian-Luca 44 9.784 08.04.2021 17:47
Letzter Beitrag: Geisterjäger
  MKR1200 läuft nicht bei Batteriebetrieb kpc 24 2.141 05.04.2021 22:59
Letzter Beitrag: kpc
  Einfaches Projekt funktioniert am USB Anschluss, aber nicht mit Akkus PurpleLightning 3 297 05.04.2021 12:07
Letzter Beitrag: hotsystems
  Sketche lassen sich aus IDE nicht mehr hochladen Steinspiel 9 1.276 19.03.2021 19:11
Letzter Beitrag: Chopp
  Sketches lassen sich nicht mehr hochladen. Was kann ich noch tun? Tonio 3 556 19.03.2021 15:32
Letzter Beitrag: Tommy56
  Servo funktioniert nicht richtig an Arduino Nano Maxcruiser 25 3.081 14.03.2021 17:11
Letzter Beitrag: hotsystems
  2 I2C-Devices nicht zusammen wonk 36 4.615 04.03.2021 00:08
Letzter Beitrag: hotsystems
  Warum sind mehrere Attiny´s nicht Synchron ? Chris_Arduino 6 2.317 02.02.2021 11:46
Letzter Beitrag: Harry
  Arduino Uno will nicht mehr wonk 35 6.404 21.01.2021 17:33
Letzter Beitrag: Tommy56
  RFID keine Daten / wird nicht erkannt Wochenendprogrammierer 79 7.982 27.12.2020 19:20
Letzter Beitrag: Wochenendprogrammierer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste