Forum: Mikrocontroller und Digitale Elektronik Problem mit Schieberegister 74HC595


von Bl4cksh4rk (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe gerade ein kleines Problem mit einer LED Matrix von mir.
Die Schaltung habe ich nach dem Schaltplan aufgebaut und gerade 
getestet. Mir ist dabei aufgefallen, dass mein Schieberegister verrückt 
spielt. Das Schieberegister habe ich auch schon ausgetauscht doch der 
Fehler besteht weiter.

Ich habe ein kleines Testprogramm auf den ATTiny aufgespielt:
1
#include "ShiftRegister595.h"
2
3
byte latchPin = 0;  //Pin connected to ST_CP of 74HC595
4
byte clockPin = 1; //Pin connected to SH_CP of 74HC595
5
byte dataPin = 2;  //Pin connected to DS    of 74HC595
6
7
int led1 = 8;
8
int led2 = 9;
9
int led3 = 10;
10
int led4 = 11;
11
int led5 = 12;
12
int led6 = 13;
13
int led7 = 14;
14
int led8 = 15;
15
int led9 = 16;
16
17
ShiftRegister595 shiftRegister595 = ShiftRegister595( latchPin , clockPin , dataPin );
18
19
20
void setup() {
21
  pinMode(led1, OUTPUT);
22
  pinMode(led2, OUTPUT);
23
  pinMode(led3, OUTPUT);
24
  pinMode(led4, OUTPUT);
25
  pinMode(led5, OUTPUT);
26
  pinMode(led6, OUTPUT);
27
  pinMode(led7, OUTPUT);
28
  pinMode(led8, OUTPUT);
29
  pinMode(led9, OUTPUT);
30
}
31
32
void loop() {
33
  digitalWrite(led1, HIGH);
34
  digitalWrite(led2, HIGH);
35
  digitalWrite(led3, HIGH);
36
  digitalWrite(led4, HIGH);
37
  digitalWrite(led5, HIGH);
38
  digitalWrite(led6, HIGH);
39
  digitalWrite(led7, HIGH);
40
  digitalWrite(led8, HIGH);
41
  digitalWrite(led9, HIGH);
42
  //count up routine
43
  for (int j = 0; j < 256; j++) {
44
    shiftRegister595.write(j);
45
    delay(1000);
46
  }
47
}

Das komische ist die LEDs bleiben dunkel, aber wenn ich den dataPin 
ablege dann flackern die LEDs.

Meine Frage ist jetzt, ist die Schaltung überhaupt richtig?

von Sebastian H. (technik_freak)


Lesenswert?

Hallo,

Wie ist deine Versorgung des Schieberegisters? (Ich sehe nirgends die 
Versorgungspins)

von Manfred G. (magroma)


Lesenswert?

Bl4cksh4rk schrieb:
> Meine Frage ist jetzt, ist die Schaltung überhaupt richtig?

Auf den ersten Blick sehe ich keinen Fehler. Was ist IC4 für einer. 
Genug Abblockkondensatoren verbaut?

von abcdefg (Gast)


Lesenswert?

5V als Eingang für den 7805 sind zu wenig.

von Bl4cksh4rk (Gast)


Lesenswert?

Die pins liegen ganz normal an VCC und GND. Sollte ich an dem Sockel 
vielleicht noch ein Kondensator löten oder muss das auch so klappen?

von Bl4cksh4rk (Gast)


Lesenswert?

Der IC4 ist ein ULN2803 und an den 7805 stehen ungefähr 16V an, das ist 
nur ein Fehler im Plan.

von Falk B. (falk)


Lesenswert?


von Karl H. (kbuchegg)


Lesenswert?

Fehler im Schaltplan?
Den Widerstand am Reset hast du aber nicht  wirklich so verbaut. Oder?

von Bl4cksh4rk (Gast)


Lesenswert?

Nein den Widerstand habe ich nicht verbaut.

Ich habe jetzt gerade mal eine neue fassung mit kondensator eingelötet. 
Der fehler besteht immernoch.

von Karl H. (kbuchegg)


Lesenswert?

ok. welche Teile sind noch anders, als im Schaltplan?

von Karl H. (kbuchegg)


Lesenswert?

> byte latchPin = 0;  //Pin connected to ST_CP of 74HC595
> byte clockPin = 1; //Pin connected to SH_CP of 74HC595
> byte dataPin = 2;  //Pin connected to DS    of 74HC595

Aufgrund welcher Unterlagen hast du festgestellt, dass die Arduino 
Pinnummern 0, 1 und 2 zu den Pins PD0, PD1 und PD2 gehören?

von Bl4cksh4rk (Gast)


Lesenswert?

Der einzige unter schied im Plan ist die 5V Spannungsquelle und der 10k 
Widerstand.

Ich habe das Programm auf einem ATTiny mit einem Arduino gebrannt. Das 
Programm läuft soweit also daran kann es nicht liegen.

von Karl H. (kbuchegg)


Lesenswert?

Bl4cksh4rk schrieb:
> Der einzige unter schied im Plan ist die 5V Spannungsquelle und der 10k
> Widerstand.
>
> Ich habe das Programm auf einem ATTiny mit einem Arduino gebrannt. Das
> Programm läuft soweit also daran kann es nicht liegen.


Mag sein.
Aber irgendwas IST falsch. Wenn du uns mit deinem Plan Fehler 
präsentierst, die sich dann bei Nachfrage als "das ist nur im Plan so" 
herausstellen, dann ist das auf dieser Seite des Bildschirms nicht sehr 
hilfreich.


Gib mal ein einziges fixes Muster am Schieberegister aus und sieh nach, 
ob die Ausgänge entsprechende Pegel annehmen.

von Franz F. (franzman)


Lesenswert?

Erstens finde ich die Ansteuerung der Transistoren schlecht, ich wûrde 
das mit Stromgegengekoppelten pnp transistoren lösen.

Zweitens gibst du an deinem Schieberegister alle Werte von 0 bis 255 
aus, d. H. Im ersteren Fall sind alle Ausgänge eingeschaltet. Du musst 
hier immer 1sen rausschicken, außer bei der Spalte die du gerade 
ansteuerst.
Also Ansteuerung Spalte für Spalte.

Zu dem anderen Problem, wenn du den sdi Pin abklemst, kann es sein dass 
Sie flackern, weil du dir eine Störung einfängst. Probier mal mit einem 
Widerstand auf 5V hängen

von Bl4cksh4rk (Gast)


Lesenswert?

Das Programm war ja jetzt erstmal nur zum testen. Das Schieberegister 
reagiert ja überhaupt nicht auf befehle. Ich habe das vorhin auch von 
hand versucht ohne attiny. Das müsste ja eigentlich auch ohne probleme 
funktionieren, aber das schieberegister reagiert nicht.

von Karl H. (kbuchegg)


Lesenswert?

Mach mal ein Photo von deinem Aufbau.
Irgendwas ist da faul.

von Bl4cksh4rk (Gast)


Lesenswert?

Ich habe das Problem gelöst gelöst. Es lag wohl an den Ausgängen des 
ATTiny. Pin 0,1,2 waren nicht geeignet.

Mich würde jetzt nur noch interessieren was mit dem SDI Pin gemeint war. 
An welchem Bauteil sitzt der?

von Franz F. (franzman)


Lesenswert?

Sorry hab mich vertan, mit SDI meinte ich den DS Pin vom 595er.
Wenn dieser nämlich in der Luft hängt, kann es sein dass du dir etwas 
einfängst.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.