Hallo,
wie schon aus dem Betreff zu lesen ist, habe ich ein Problem mit der
Kaskadierung von einem 74HC595 Schieberegister welches ich an einem
Arduino Ethernet betreibe. Die Ausgänge des Schieberegisters sind an
einer Relai-Platine
(http://www.miniinthebox.com/de/neue-8-kanal-12v-relais-modul-fuer-arduino-arm-avr-dsp-pic-blau-rot_p638926.html)
angebunden. Die Verdrahtung und Schaltung scheint für mich auf dem
ersten Blick in Ordung zu sein (siehe Platinen Layout).
Jedefalls kann ich mit meinem Code alle Relais mit +5V/0V AN und/oder
AUS Schalten wie ich es will. Bei der Benutzung eines Register IC's habe
ich gar keine Problme. Kaskadiere ich aber ein zweites, drittes oder
viertes Register IC zum ersten, habe ich die seltsame Erscheinung das
nur beim AUSschalten eines Relais (egal welches) die LED eines anderen
Relais kurz aufblinkt. Es wirkt für mich, als ob beim Ausschalten eines
oder mehrer Relais, dass Schieberegister kurz Spannung auf einen Ausgang
(meist der erste oder zweite Ausganspin neben dem geschalteten Relai)
legt, der eigentlich 0 sein sollte. Dieser Effekt ist dann aber auch auf
beiden IC's zu sehen. Die Spannung ist so gering das nur die LED kurz
aufleuchtet das Relais selbst aber nicht schaltet. Pulldown-widerstände
zwischen dem Ausgang des IC's und GND beheben das Problem nicht.
Für eine hilfreichen Tipp wäre ich überaus dankbar.
Sollten noch Fragen bestehen, beantworte ich diese gerne.
Beste Grüße,
nerv-seele
@ nerv-seele (Gast)
>angebunden. Die Verdrahtung und Schaltung scheint für mich auf dem>ersten Blick in Ordung zu sein (siehe Platinen Layout).
Nö.
http://www.mikrocontroller.net/articles/Kondensator#Entkoppelkondensator>Für eine hilfreichen Tipp wäre ich überaus dankbar.
C1 ist vollkommen fehl am Platz, und 1µA ist keine sinnvolle Einheit
Es fehlen ALLE Entkoppelkondensatoren
Wie kommt man auf die Idee, DIL Schaltkreise von unten anzulöten?
Vielleicht stimmt ja dein Code nit. Jedenfalls warst du extrem sparsam
mit Entkopplungskondensatoren.
Und die Bezeichnung "Relais blau + rot" kann ich unmöglich als
technische Beschreibung werten ;)
Guten Morgen,
ich danke euch für die vielen und schnellen Antworten. Wie ich sehe,
kann man anhand meines fehlerhaften und rudimentären Layout Designs
erkennen, dass ich nicht vom Fach bin. Trotzdem finde ich es super das
Ihr mich unterstüzt und mir Tipps gebt. Nebenbei erwähnt, die Schaltung
basiert auf dem Tut von http://arduino.cc/en/tutorial/ShiftOut leider
wurden solche dinge darin nicht erwähnt. Aber egal.
Ich werde mich gleich noch ans werk machen und die Fehlenden
Abblock-Kondensatoren/Entkopplungskondensatoren an jeden VCC und GND
eingang von den Schieberegistern nachträglich in die Zeichnung einfügen.
Natürlich werde ich diese dann nah an den IC's positionieren. Ist meine
Annahme, dass 100nF Kerkos, ausreichend sind richtig?
Macht es sinn, außer an den IC's, noch irgendwo Abblock-Kondensatoren
ein zu fügen? Z.B. an der Spannungsversorgung (+12VCC und GND) für die
Relaisplatinen?
Könnt Ihr mir noch weitere verbesserungs vorschläge und Tipps für das
Layout geben. Ich bin nicht abgeneigt in nachfolgenden Versionen das
Layout komplet zu überarbeiten und auch mehr Geld in Bauteile zu
investieren, solange es überschaubar und sinnvoll bleibt.
@Teo Derix
Deine Antwort hätte gerne etwas mehr Text haben können, aber durch die
Schlagwörter und die Posts deiner nachfolger. Konnte ich mich etwas
schlauer machen. Danke.
Wenn ich das richtig verstanden habe, stellen die Freilauf-Dioden nur
einen Schutz der Schaltung da und sind nicht zur funktionalität
notwendig. Oder?
Sollte dies zutreffend sein, werde ich sie erstmal noch nicht einbauen
sondern mir diese für die Finale Version der Platine Vormerken. Damit
kann ich momentan hoffentlich erstmal Fehlerquellen ausschließen.
@Falk Brunner
>Wie kommt man auf die Idee, DIL Schaltkreise von unten anzulöten?
Das habe ich bisher nicht getan. Bevor ich meine Test-Platine mit der
Direkt-Toner-Methode ätze, drucke ich diese Spiegelverkehrt aus. So das
es wiederum passt. Laut dem Layout auszug könnte man aber momentan
denken das Sie auf der Falschen Platinenseite liegen. Wahrscheinlich
müsste ich mich auch ein wenig mehr in EAGLE einfuchsen. Aber dennoch
vielen Dank für die Hinweise.
@ Helge A
>Vielleicht stimmt ja dein Code nit.
Programmieren liegt mir schon eher und da ich auch schon längere Zeit
als Softwareentwickler gearbeitet habe und immer noch zwischen durch
arbeite. Schließe ich diese Fehlerquelle erstmal aus. Ich habe schon
bevor ich überhaupt an Hardware fehler gedacht habe ordentlich schritt
für schritt debugging betrieben um Fehler in der Softwareseite aus zu
schließen. Dennoch danke ich auch dir für den Tip mit den
Entkopplungskondensatoren!
>Und die Bezeichnung "Relais blau + rot" kann ich unmöglich als>technische Beschreibung werten ;)
:D
Da gebe ich dir vollkommen recht und ich entschuldige mich für die
Schlampige Aussage, leider konnte ich kein Datenblatt zu der Platine
finden. Ich weiss nur, dass es zu derzeit von einem bekannten in
besagtem Shop bestellt wurde. Der Platinen Aufdruck Keyes Ver:8R1A
funduino brachte mich auch nicht wirklich weiter. Sorry.
@GroberKlotz
>Output enable (G) beschalten!
Mit der Aussage kann ich momentan nichts Anfangen. Kannst du oder jemand
anderes mir noch ein paar zeilen schreiben. Danke
nerv-seele schrieb:> Wenn ich das richtig verstanden habe, stellen die Freilauf-Dioden nur> einen Schutz der Schaltung da und sind nicht zur funktionalität> notwendig. Oder?
Freilaufdioden müssen schon sein. Das gibt beim Ausschalten von Relais
immer hohe Spannungsspitzen, die auch den Rest stören können.
Bevor diese nicht verbaut sind, musst du nicht weitersuchen.
Genauso wie Abblockkondensatoren an jedem IC immer notwendig sind und
hier auch fehlen.
> @GroberKlotz>>Output enable (G) beschalten!> Mit der Aussage kann ich momentan nichts Anfangen. Kannst du oder jemand> anderes mir noch ein paar zeilen schreiben. Danke
Zur Funktion von G (Output enable): Wenn Du die Daten in das
Schieberegister einlädst und der Pin G ist = H, sind die Ausgänge
hochohmig geschaltet, das heißt, dass dort kein Signal nach außen
gelangt. Dem entsprechend kann dann auch kein Relais fehlerhaft
angesteuert werden.
Sind alle Daten im Schieberegister, schaltets Du Pin G wieder auf Low
(GND) und die Ausgänge sind aktiv, die Latches sind also wieder zum
Ausgangspin durchgeschaltet und die Relais sind entsprechend dem
reingetakteten Bitmuster angezogen/abgefallen.
Siehe dazu im Datenblatt den Abschnitt "truth table" und "logic
diagramm"
mfG GroberKlotz
@Markus
>Freilaufdioden müssen schon sein. Das gibt beim Ausschalten von Relais>immer hohe Spannungsspitzen, die auch den Rest stören können.>Bevor diese nicht verbaut sind, musst du nicht weitersuchen.
Das habe ich gestern auch gelesen, jedoch glaube ich nicht das es daran
liegen könnte. Alle Relais auf der Platine verfügen über eine
Schutzdiode eine LED, einige Widerstände und sind zudem noch per
Optokoppler galvanisch von der Schaltung getrennt(mit ein grund dafür,
wieso ich die fertige Relais-Platinen benutzen will).
Sehe ich es denn richtig, dass ich zum Testen erst einmmal dreckig einen
100nF Kerko an die Pinne 13 und 10 von jedem IC löten könnte?
Besten Dank
@Grober Klotz: Wieso willst du das mit /OE mache? Der 74HC595 hat ja
Ausgangslatches, die man mit RCK ansteuern kann. Wenn du alle Daten ins
SR geschoben hast kannst du sie mit RCK ins Ausgangslatch kopieren…
nerv-seele schrieb:> Sehe ich es denn richtig, dass ich zum Testen erst einmmal dreckig einen> 100nF Kerko an die Pinne 13 und 10 von jedem IC löten könnte?
Der Entkoppel-C kommt zwischen Vdd (Pin 16) und GND (Pin 8).
@ nerv-seele (Gast)
>basiert auf dem Tut von http://arduino.cc/en/tutorial/ShiftOut leider>wurden solche dinge darin nicht erwähnt. Aber egal.
NÖ! Das ist ein GRUNDLEGENDER FEHLER! Hardware isr Hardware und keine
Schickmicki Software! Das ist ungefäht so, wie wenn man beim Schalten im
Auto das Kuppel vergisst. Es "geht", aber ist nicht wirklich Sinn der
Sache.
>Annahme, dass 100nF Kerkos, ausreichend sind richtig?
Ja.
>Macht es sinn, außer an den IC's, noch irgendwo Abblock-Kondensatoren>ein zu fügen? Z.B. an der Spannungsversorgung (+12VCC und GND) für die>Relaisplatinen?
Ja, dort braucht man aber eher Elkos mit ein paar Dutzend uF.
>Könnt Ihr mir noch weitere verbesserungs vorschläge und Tipps für das>Layout geben.Richtiges Designen von Platinenlayouts>Wenn ich das richtig verstanden habe, stellen die Freilauf-Dioden nur>einen Schutz der Schaltung da
"nur"?
>und sind nicht zur funktionalität>notwendig. Oder?
Doch. Sonst zerlegt sich deine Schaltung beim ersten Abschlaten.
>müsste ich mich auch ein wenig mehr in EAGLE einfuchsen. Aber dennoch>vielen Dank für die Hinweise.
Tu das.
>>Output enable (G) beschalten!>Mit der Aussage kann ich momentan nichts Anfangen. Kannst du oder jemand>anderes mir noch ein paar zeilen schreiben. Danke
Das ist so schon OK. Für deine Relais braucht man die nicht.
Ach so, die Freilaufdidoen braucht man natürlich nur, wenn man die
Relais DIREKT ansteuert. Das ist bei dir wahrscheinlich nicht der Fall.
Auf deiner Relaisplatine sind wahrscheinlich Treiber incl.
Freilaufdioden vorhanden. Ausserdem können die 74HC595 nicht sonderlich
viel Strom leifern, so 10-20mA/Ausgang, damit kann man die meisten
Relais nicht ansteuern, schon gar nicht bei 5V.
@nerv-seele (Gast)
>Das habe ich gestern auch gelesen, jedoch glaube ich nicht das es daran>liegen könnte. Alle Relais auf der Platine verfügen über eine>Schutzdiode eine LED, einige Widerstände und sind zudem noch per>Optokoppler galvanisch von der Schaltung getrennt(mit ein grund dafür,>wieso ich die fertige Relais-Platinen benutzen will).
Aua. Wer steuert Relais über Optokoppler an? Was kommt als nächstes?
Helmpflicht beim Pinkeln?
>Sehe ich es denn richtig, dass ich zum Testen erst einmmal dreckig einen>100nF Kerko an die Pinne 13 und 10 von jedem IC löten könnte?
Wie zum Geier kommst du auf Pin 13 und 10? GND/VCC liegen auf 8 und 16!
C1 in deinem Schaltplan ist totaler Unsinn. Die Beschreibung in dem
Arduino-Artikel dazu ebenfalls!
http://arduino.cc/en/tutorial/ShiftOut
"Notice the 0.1"f capacitor on the latchPin, if you have some flicker
when the latch pin pulses you can use a capacitor to even it out."
Aber den eigentlichen Entkoppelkondensator vergessen. Aua!
Falk Brunner schrieb:> C1 in deinem Schaltplan ist totaler Unsinn. Die Beschreibung in dem> Arduino-Artikel dazu ebenfalls!
Was erwartest du von ein Malen/Stecken-nach-Zahlen-Anleitung.
Falk Brunner schrieb:> Wie zum Geier kommst du auf Pin 13 und 10? GND/VCC liegen auf 8 und 16!
Er legt /SCL (shifter clear) auf high, /G (gate oder output enable) auf
low. Powerpins sind nicht eingezeichnet und damit natürlich auch keine
Entkopplungskondensatoren.
Hallo Falk Brunner,
wieder bin ich etwas Schlauer und Dankbarer für eure/speziel deine
Antworten.
Die Relaisplatinen mit Optokoplern war mir in sofern wichtig, dass ich
ungerne bei einem Kurzschluss 230V auf meiner Steuerung haben wollte!
Worst case wäre z.B. das bei einem Kurzschluss über irgendwelche kanäle
mehr Strom auf dem (Arduino) Ethernet liegen würde als mir lieb ist. Das
könnte mir dann hier im schlimmstenfall ein Redundantes 48 Port GBit
Switch zerlegen, was nicht gared günstig ,im fall von Ausfallzeiten
wäre, Der Preis wäre noch das kleinere Übel. Deswegen in dem falle die
Helmpflicht beim pinkeln ;)
Wie ich auf die Pinne 10 und 13 gekommen bin, hat Klaus 2m5 schon
richtig erkannt und geschrieben. Hätte ich mir ein wenig mehr Zeit
genommen und ins Datenblatt des IC's geschaut oder die Beschreibung der
Pinne 10 und 13 im Schaltplan gelesen wäre mir sofort klar geworden das
es sich nicht um VCC und GND handelt. Bisdato ist mir aber auch nie
aufgefallen, dass VCC und GND im Schaltplan beschalten musst.
Dennoch danke ich dir für den über aus wichtigen Tip, wahrscheinlich
hätte ich es erst festgestellt wenn es zuspät gewesen wäre.
Den Link zum "Richtiges Designen von Platinenlayouts" werde ich mir
heute nacht und in den kommen Tage zur Brust nehmen. Danke dafür.
Da die Relais-Platine über eine zusätzliche 12V spannungsversorung
angetrieben wird, benötige die Relais selbt nur einen ganz geringen
Strom zum Schalten. Ich meine etwas von 5-10mA pro Relais
gelesen/gesagt-bekommen zu haben.
Leider habe ich momentan keine 100nF Kerkos hier im Haus, aber ich werde
später nach dem Trainng zum nähsten Conrad(Dortmund) fahren und mir ein
paar stück besorgen. Gibt es irgendwelche Tipps welche man nehmen
sollte?
hätte jetzt zu denen tendiert.
http://www.conrad.de/ce/de/product/531855/Keramik-Kondensator-100-nF-50-VDC-10-Holystone-RDCX104K050DKA-1-St?ref=list
Leider kann ich erst heute nacht von mehr bericht, aber ich werde
zwischen durch im Trainnig mal ins Forum schauen. Sollte ich noch was
essentiels bei Conrad für meine Schaltung benötigen, dann gerne heer
damit.
vielen Dank und Beste Grüße
nerv-seele
nerv-seele schrieb:> nerv-seele
Zu viel NGE geschaut? ;)
Zum Thema: An deiner Stelle würde ich von sämtliche
hardware-beschreibungen die von und/oder mit arduino zu tun haben
fernhalten. Die Arduino-Leute sind nicht mal in der Lage die
Pinbeschriftung/Pinlayout aus dem original Datenblatt richtig zu
entnehmen.
nerv-seele schrieb:> Bisdato ist mir aber auch nie> aufgefallen, dass VCC und GND im Schaltplan beschalten musst.
Die Powerpins werden von Eagle automatisch richtig angeschlossen, was
man an Deinem Platinenlayout auch sehen kann. Leider werden aber die
Blockkondensatoren nicht automatisch hinzugefügt. Wohl oder übel muss
man in Eagle per Invoke die Powerpins in der Schaltung sichtbar machen
und kann dann die Kondensatoren hinzufügen.
nerv-seele schrieb:> Das habe ich gestern auch gelesen, jedoch glaube ich nicht das es daran> liegen könnte. Alle Relais auf der Platine verfügen über eine> Schutzdiode eine LED, einige Widerstände und sind zudem noch per> Optokoppler galvanisch von der Schaltung getrennt(mit ein grund dafür,> wieso ich die fertige Relais-Platinen benutzen will).
Ja, Freilaufdiode ist darauf enthalten.
Wie sieht denn die Speisung zu der Relais-Platine genau aus?
Dort hat es ja eine Jumper (COM-GND) Dieser sollte getrennt sein.
Der COM Anschluss geht an das GND vom Arduion und deiner Platine.
Der GND-Anschluss ist die Speisung für die Relais.
Schaltplan dürfte den hier sein:
http://electronicapagina.com/
Hier die Beschreibugn für den Anschluss an einem Raspberry-pi:
http://the-wizard-in-green.com/raspberrypi/Keyes_Funduino_connections.pdf
Hallo Leute,
Sorry das ich mich erst jetzt melde. Ich habe nun wie mir von euch
geraten wurde, die Entkopplungskondensatoren eingelötet und siehe da, es
Funktioniert. Never ever wäre ich selbst auf die Idee gekommen, dass es
an so einem kleinen verka...tem Kerko liegen könnte. Aber da sieht
man(n) wieder, auch die kleinen dinge im Leben können manchmal ganz groß
und wichig sein :)
Gerne gelobe ich, in nähster Zeit mich mehr mit EAGEL zu befassen, ein
besseres Platinenlayout zu Designen und in diesem auch freilaufdioden
mit ein zu planen.
Zu letzt möchte ich mich, nocheinmal ganz herzlich bei euch allen, für
eure super hilfreichen und nützlichen Tipps bedanken! Danke das Ihr euch
die Zeit genommen habt, mir bei meinem Problem zu helfen!!! Ein ganz
dickes lob von mir an euch.
Danke
nerv-seele