mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik schieberegister 74hc595, mega8 und leds


Autor: kitesurfer1404 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
versuche verzweifelt einen 74hc595 an einem mega8 zum laufen zu kriegen.
es sollen 8 leds geschaltet werden. den aufbau habe ich der c't
entnommen, wo er so im c't bot verwendet wird. leider klappt die
ansteuerung nicht so, wie ich es mir vorgestellt habe - es passiert
garnichts, bis auf, dass am mega8 das rauskommt, was ich ausgebe (siehe
unten)
aber anscheinend ist da noch immer ein denkfehler drin. vom sinn her
soll das programm dem 595 mitteilen, welche led an, welche aus ist.
hier mein aufbau: (hc595 + atmega8)

hc595:
pin 8 (GND) : GND (ach was....)
pin 16 (vcc) : 5 V
pin 10 (sclr) : 5 V
pin 13 (g) : GND

pin 14 (SI) : pin 2 ( PD0 ) am mega8
pin 12 (RCK) : pin 4 ( PD2 ) am mega8
pin 11 (SCK) : pin 3 ( PD1 ) am mega8

an den ausgängen ( Qa - Qh ) LEDs mit vorwiderständen (200 ohm) gegen
GND

der aufbau für den 595 hier ausm forum stimmt so weit ja überein (oder
hab ich was vertauscht?), leider fehlt mir noch ein einfacher beispiel
code.

mein programm:

8x
{
bit für PD0 setzen (oder auch nicht, je nach gewünschtem
schaltzustand)

bit für PD1 setzen ( steigende flanke erzeugen )
PD1 zurück setzen
}

dann steigende flanke an PD2

und das ganze in ner endlosschleife hab ich auch schon versucht.

habe schon alles mögliche aus dem datenblatt des 595 versucht, leider
ohne erfolg.

hab auch die bauteile ausetauscht, aber das hats auch nicht gerichtet.
wie gesagt, mega8 gibt ein schönes signal auf dem oszilloskop, keine
reaktion am 595.

wäre euch für eine anfänger-freundliche antwort (wann muss ich wo was
an/aus schalten ;) ) sehr verbunden.
vielleicht einen kurzen quelltext, der einfach ein paar leds an, ein
paar aus schaltet.

danke schön

Autor: Magnus Müller (Magnetus) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
--> mein programm:
-->
--> 8x
--> {
--> bit für PD0 setzen (oder auch nicht, je nach gewünschtem
--> schaltzustand)
-->
--> bit für PD1 setzen ( steigende flanke erzeugen )
--> PD1 zurück setzen
--> }

Hmmm... eigenartige Programmiersprache...

Autor: kitesurfer1404 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hmpf... ;)
naja, hab jetzt mal mein letztes, verzweiflungs programm dran
gehängt^^
die wiederholung hatte ich teilweise auch mal weggelassen, teilweise
ganz am anfang mal RCK oder SCK gesetzt und und und
leider keine wirkliche hilfe das ganze.

Autor: Jack Braun (jackbraun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In (8051)Assembler würde das ganze so aussehen(Bitfolge ist im Akku):

setb clock
For Zähler = 8
        rlc A
        mov Datenpin, C
        clr clock          ;fallende Flanke
        setb clock
next
setb RCLK                  ;Daten ins Ausgangsregister übernehmen
clr  RCLK

Autor: Magnus Müller (Magnetus) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@kitesurfer1404:

Kann es sein, dass einer oder mehrere der folgenden Punkte auf deine
Schaltung zutreffen?

 - die Schaltung ist auf einem Steckbrett aufgebaut
 - der HC595 hat keinen eigenen Abblockkondensator spendiert bekommen
 - der HC595 wird überlastet (lt. Datenblatt max. 75mA gesamt)
 - die Eingänge des HC595 sind mit den falschen Pins am AVR verbunden
 - die LEDs sind falsch herum bestückt (Anode / Kathode)

Gruß
Magnetus

Autor: kitesurfer1404 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also:

ja: die Schaltung ist auf einem Steckbrett aufgebaut
nein, (wo muss der hin?): der HC595 hat keinen eigenen
Abblockkondensator spendiert bekommen
nein: der HC595 wird überlastet (lt. Datenblatt max. 75mA gesamt)
(waren nur 2 leds im test dran, keine signale an den ausgängen
(multimeter/oszilloskop))
so wie es oben^^ steht, doppelt gecheckt:  die Eingänge des HC595 sind
mit den falschen Pins am AVR verbunden
auch doppelt kontrolliert, keine spannung am multimeter: die LEDs sind
falsch herum bestückt (Anode / Kathode)

Autor: Magnus Müller (Magnetus) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
--> nein, (wo muss der hin?): der HC595 hat keinen eigenen
    Abblockkondensator spendiert bekommen

Den Kondensator (i.d.R. 100nF) direkt an die VCC-/GND-Pins des HC595
hängen.

--> ja: die Schaltung ist auf einem Steckbrett aufgebaut

Potentielle Fehlerquelle: relativ hohe Übergangswiderstände bei den
Federkontakten der Steckbretter (viel Spaß)

Ist GND des Controllers auch mit GND des HC595 verbunden? (Klingt
vielleicht etwas hirnverbrannt, aber solche Fälle gabs hier auch
schon!)

Gruß
Magnetus

Autor: kitesurfer1404 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab an den drähten des hc595 direkt gemessen, weil ich mir so was schon
dachte, dass da was nicht richtig verbunden ist oder so. naja, kam auf
jeden fall was an.
GND ist auch an GND (habe nur ein GND, das auch überall mit ~1 Ohm zu
erreichen ist.)

versuche das jetzt mal mit den kondensatoren und nem neuen quelltext...

Autor: kitesurfer1404 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
also....
nun geht's
lag tatsächlich nur am quelltext.
so wie ich es sehe, hatte ich eine steigende flanke, um die bits
einzulesen, es wird aber eine fallende benötigt...
tja, der teufel ist ein eichhörnchen und steckt im detail und so
weiter.

vielen dank an alle, die mir weitergeholfen haben!

Autor: kitesurfer1404 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach so, die wiederholund ist garnicht nötig, der hc595 hält die pins,
bis man ihm was neues gibt. wieder was gelernt :D

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.