Hi, ich brauche mal wieder eure Hilfe. Ich hab mir einen Controller gebaut, der anhand von ein paar Sensorwerten, Eingabe befehlen und der Uhrzeit/Datum ein paar Lampen, Pumpen und andere Geräte steuert. Der Controller selbst funktioniert an sich eigentlich auch. Das Problem ist, dass wenn man ein Gerät ohne Schuko(bisher zumindest nur bei solchen beobachtet) in die Steckdose steckt der Controller irgendwelche Befehle ausführt, die er gar nicht soll. Die Befehle sind völlig wahllos und reichen von dem Einschalten einer Lampe, bis hin zu beliebig rhythmischen Schaltmustern, die eigentlich niemals von den vorgegebenen Programmen ausgeführt werden könnten. Da die Pumpen nun alle keinen Schutzkontakt haben und über die 230V Hausstromleitung versorgt werden stürzt der Controller sich regelmäßig selbst ins Delirium. Es gibt eine Häufigkeitsverteilung der Ausfälle, wenn man z.B. eine bestimmte Pumpe an der Relaisleiste schalten lässt, oder per Hand einsteckt, dann ist i.d.R. spätestens beim zweiten mal Happyhoure. Wenn man eine X-beliebige Schreibtischlampe irgendwo im Zimmer einsteckt, dann ist nach dem ca. 15ten mal Schluss. Wenn man aber dieselbe Schreibtischlampe in einem anderen Zimmer des Hauses einsteckt (Verlängerungsschnur aus einem anderen Zimmer reicht auch schon), dann passiert nichts. Ich hab mal den Schaltplan der Spannungsversorgung und der Schaltleisten eingegeben, da ich vermute, dass hier das Problem liegen muss. Ich hab es bereits mal ohne Relaisleiste und ohne externe Sensoren versucht (komplett vom Netz und dem Controller getrennt) aber das hat auch nichts gebracht. Auf den Bildern ist der Controller zusehen, ohne externe Sensoren und Aktoren. Man kann leider nicht viel erkennen, aber für einen groben Eindruck reicht es denke ich. Zum Controller selbst: Es sind drei µC, die mittels UART und SPI/USI Informationen mit einander austauschen, anhand der Informationen werden dann gegebenenfalls Aktionen eingeleitet. Da ich so was leider nie gelernt habe und es nur Hobby mäßig mache, entschuldigt bitte falls ich essentielle Informationen vergessen habe. Ich bin echt Ratlos woran das liegen könnte :( Fotos: http://www.abload.de/img/_8280727u0ra7.jpg http://www.abload.de/img/_8280728prpxw.jpg http://www.abload.de/img/_8280729nsq8p.jpg http://www.abload.de/img/_82807333ir1i.jpg http://www.abload.de/img/_8280734zroll.jpg
Hast du an den Controllern Abblock-Kondensatoren? Hier: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment findest du etwas weiter unten einen Schaltplan, in dem alle wichtigen Teile eingezeichnet sind. Wenn (abgesehen von dem Quarzoszillator) etwas davon bei dir fehlt, dann ist das ganz normal, dass die Controller verrückt spielen. Abblock-Kondensatoren so dicht an die Versorgungspins der Controller, wie möglich, also auf Lochraster direkt an den Sockel ran! Abgesehen davon möchten die beiden Spannungsregler ebenfalls jeweils 2x100nF Keramik (X7R) am Eingang nach Masse und am Ausgang nach Masse, so nah am Regler wie möglich. Wenn du das gemacht hast, dann können wir weiter über mögliche Probleme reden. _.-=: MFG :=-._
Die Controllerplatine darf überhaupt keinen Bezug zur Erde haben. Stichwort: Schuko. Dann sollte es gehen. Aktuell habe ich gerade ein µC-Board hier liegen, mit dem 8051-er 80C535, der ein Goldcap gepuffertes RAM als Programmausführungsspeicher hat. Früher war ein NiCd-Akku drauf, der auf der Platine die Chemie-Pest mit Zerstörung verbreitete. Gestern beobachtete ich bei fort schreitender Batterieentleerung, daß er plötzlich stoppte. Etwa bei 4,35V. Auf dem Board befindet sich ein Reset-Baustein, aber die dumme Sache ist, daß der Baustein im Reset die Batterie nur halb so stark belastet, und die Ein- und Ausschaltungen dann schwingen. Die Batteriespannung kommt dann wieder hoch. Auf einmal unbeachtet lief der plötzlich in einem Programm, was ich einen Tag vorher ins RAM lud, und ab Adresse 0x1000 im RAM beginnt. Wie kommt der plötzlich dort hin? Das RAM ist so am Bus gemappt. 0x1000 ist die erste Adresse über dem Monitor-EPROM im RAM, welches im Code-Bereich liegt. Komisch. Ich schickte den µC allerdings nicht bei Unterspannung in den Power-Down-Mode, so aufwändig ist das Board nicht. Die Unterspannung hätte ein externer Baustein signalisieren müssen, oder der ADC mit geeigneter äußerer Beschaltung. Z.B. Band-Gap-Referenz. Der jetzige Baustein erzeugt nur einen Reset, der die Batteriespannung wieder wachsen läßt. Ein Teufelskreis. ;-) OK, es ist nur Spielzeug. Für seriöse Dinge denke ich mir auch anderes aus. So ein Netzwerk aus 3 µC im Ringnetz habe ich hier auch. Die sind glücklicherweise über LWL am UART gekoppelt, haben mit elektrischen Potentialen gar nichts zu tun.
Wenn die Gleichrichterdioden wirklich wie im Bild geschaltet sind, dann wundert mich eher dass überhaupt was passiert, ausser rauchen. 8000µF hinter dem 7805 wirken "leicht" übertrieben.
So ganz ohne Einblick ins Grünzeug wirds schwierig.
Du hast keine Basisvorwiderstände für die PNP Transistoren? Nicht gut!!! Ingo
Ingo schrieb: > Du hast keine Basisvorwiderstände für die PNP Transistoren? Nicht gut!!! Wieso? In Kollektorschaltung sind die unnötig. Nur kriegen die Relais so lediglich 4,3V ab.
A. K. schrieb: > Wenn die Gleichrichterdioden wirklich wie im Bild geschaltet sind, dann > wundert mich eher dass überhaupt was passiert, ausser rauchen. > > 8000µF hinter dem 7805 wirken "leicht" übertrieben. Die Schaltung ist sowas, wie ein Pferd von hinten aufgezäumt. Hab ich so noch nie gesehen. ;-)
Für sowas würde ich dann schon eine Platine ätzen. Eine mit den Controllern und I/O-Pins und eine mit den Relais. Wenn die Relais schalten können Störungen auftreten, am besten du entkoppelst die +5V Versorgungsspannung von der Relais-Platine. Zum planen einer Lochraster-Platine eignet sich BlackBoard. Beitrag "Open Source Lochraster Layout"
Hi, danke schon mal für die vielen Hinweise. Ich hab jetzt vor jeden µC und an den Spannungswandlern so dicht es nur ging je einen 100µF Kondensator geschaltet. Leider ohne Konsequenzen. Ich hab jetzt auch mal anstatt eines Trafos einen Akku als Stromquelle genommen, leider auch ohne irgendwelche Konsequenzen. Wenn ich die Masse nicht auf Erde lege, dann funktionieren die Berührungssensoren nicht, aber auch wenn ich die Weglasse und die Masse nicht auf Erde lege, bleibt alles beim alten. Der Gleichrichter ist in meinem Schaltplan falsch herum, das hab ich übersehen. Ich zeichne normaler weise nie Schaltpläne, ich bitte das zu entschuldigen. Die 8000µF hab dran wegen ein paar Servos, zum Ausgleich wenn es mal etwas schwerer wird. Also alles in allem ist der Controller zu Testzwecken komplett vom Hausnetz getrennt, sowie von den Relais und auch vom Schuko. Ich würde euch ja den Schaltplan gerne zeigen, aber ich brauch dafür bestimmt einen Monat um den zu machen.
Hallo, was passiert auf den Sensorleitungen? Leider fehlt der entsprechende Ausschnitt völlig. Um was für Sensoren handelt es sich? Könntest du den Teil des Schaltplanes mal posten? Und die SW, welche die Sensorsignale bearbeitet, auch? Gruss Robert
Dshing Sung schrieb: > Ich hab jetzt vor jeden µC und an den Spannungswandlern so dicht es nur > ging je einen 100µF Kondensator geschaltet. Leider ohne Konsequenzen. Du meinst 100 nF oder? _.-=: MFG :=-._
> spielt Scheibe
diese Redewendung ist mir nicht bekannt. Was soll das bedeuten??
Also so ist die jetzt noch relevante Schaltung, ein paar LEDs und Ausgänge hab ich weggelassen(sind aber nicht anders beschaltet), sowie die Siebensegment anzeige und den Quarz. Die Relaisleiste ist nicht am 230V Netz, es sind keine Geräte in der Leiste und die Erde liegt vorübergehend auch nicht auf Masse und der Strom kommt aus einem Akku. Es ist besser als vorher, aber manchmal flippt er dennoch aus. Also kann es noch nur sein, dass die Leitungen irgendwie als Antennen wirken, denn ich bin ja nirgends mehr auch nur ansatzweise an der 230V Leitung. Die 100µF sollten nF werden, aber da ist das µ wohl umgefallen und hat sich den Kopf gestoßen :)
Vor die Sensoren sollte noch ein RC. Wie wird die Abfrage der Sensoren gemacht? Was machen die Interrupts ? Gruss Robert
Viel Spass mit LED1. Q6 ist wohl auch eher kreativ gezeichnet, oder? Lass mich raten: das ist ein N-MOSFET, kein N-JFET 2N4416? So angesteuert fungiert der nämlich nur als Kurzschlussdiode. Dessen induktive Last hat hoffentlich eine Freilaufdiode. Dank Grünzeug statt ICs kann man nur raten, was welcher Pin ist, aber AREF könnte hier unsinnigerweise gegroundet sein.
Die ganze Leitungsführung kommt mir doch sehr fehlerträchtig vor. Ein Motor wird an die Conroller-Masse geschaltet, die Ausgänge der µC werden über mehrere Meter an die Schalttransistoren geführt. Ist es wirklich so, das ein Controller-Ausgang über mehrere Meter an die Basis eines Transistors führt? Es ist doch wesentlich schlauer und störunempfindlicher, wenn der Schalttransistor in der Nähe (gleiche Platine) wie der µC sitzt, nur das Relais weiter entfernt sitzt. Optimal wäre das Relais und den Schalttransistor über kurze Wege anzubinden, die Last über den langen Weg. 5 Volt-Relais sind nicht immer das optimale, schon gar nicht, wenn die Verorgungsspannung des µC dadurch über mehrere Meter im ganzen Raum verteilt wird.
Relaiskontakte für 230V brauchen einen Snubber: http://de.wikipedia.org/wiki/Snubber Allen Eingängen zum MC würde ich einen >=10k Schutzwiderstand spendieren. Noch besser sind Optokoppler. Und die Eingänge natürlich in SW entprellen (4-fach Abtastung), damit Störungen nicht ungewollt was auslösen. Peter
Ja ich hätte auch gerne anstatt der grünen Flecken die entsprechenden µC in die Schaltung gezeichnet, aber genau die gibt es leider nicht, und wenn ich jetzt andere nehme kommt es auf das gleiche raus. Das gleiche bei dem MOSFET, das ist ein IRLR024N mit Freilaufdiode. Wie gesagt, funktionieren im primitiven Sinne funktioniert es ja, also der Motor Läuft die LED-leist(Symbolisiert durch eine LED, weil ich fertig werden wollte), die Sensoren ect. Die Interrupts: Einer zählt die Zeit für die Uhr(122/s), einer guckt nach dem TSOP ob ein IR- Signal erkannt wird(15000/s), einer pulst die Servosteuerleitung(3900/s) und zwei unterbrechen bei empfangenden Zeichen am UART. Die Sensoren werden mit ADC oder einfachen I/O Pins ausgelesen, aber nur ein paar mal pro Sekunde, oder noch seltener (Ausgenommen der TSOP). Ich kann ja versuchen die Pins an den Controllern noch zu beschriften, aber erst mal würde ich gerne das mit den Snubbern, bzw. mit den RC-Glied ausprobieren, bin mir aber unsicher wo genau und in in welcher Dimension das sein müsste.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.