Problem mit Schieberegister 74HC595

Gast #3543096
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?
Angehängte Dateien:
Gast #3543210
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.
#3543212
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.
#3543251
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
Gast #3543271
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.
Gast #3544902
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren