Ich habe über einen gewissen Zeitraum etwas über den Pic-Mikrocontroller gelernt und habe ein angemessenes Wissen über den Umgang mit digitaler Elektronik. Ich habe an grundlegenden elektronischen Projekten gearbeitet und jetzt muss ich an einigen kommerziellen Anwendungen arbeiten.
Meine Frage ist, wie man zuverlässige und langlebige Schaltungen entwirft und baut. Ich habe eine automatische Lichtsteuerschaltung gebaut, die den Eingang eines LDR übernimmt und den Wert des analogen Messwerts auf einem Sieben-Segment-Panel anzeigt. Dann führt es einige Berechnungen durch und steuert ein Licht über ein Relais. Dieser Stromkreis muss permanent eingeschaltet sein (24 Stunden am Tag). In den ersten Monaten funktionierte die Schaltung einwandfrei, aber nach etwa 6 Monaten kam es zu Fehlfunktionen. Auf dem 7-Segment-Display wurden sinnlose Dinge angezeigt (es wurden nur Teile von Zahlen angezeigt), dann leuchtet die Lampe an der Anzeige-LED auf, aber das Relais wird nicht eingeschaltet. Dies ist nicht das erwartete Verhalten. Die Sache ist, dass es nicht immer so funktioniert. Manchmal funktioniert es perfekt. Dann beginnt es wieder zu einer Fehlfunktion. Es gibt keine genaue Reihenfolge, in der es funktioniert.
Meine Frage ist nun, warum sich diese Schaltkreise so verhalten. Ich gehe davon aus, dass dies daran liegen kann, dass es den ganzen Tag ohne Intervalle funktioniert. Diese Art von Anwendung muss den ganzen Tag funktionieren. Ich benutze PIC, weil ich nur über Bild Bescheid weiß. Ist atmal zuverlässiger als pic? (Ich habe gefragt, weil atmal in den meisten Automatisierungsanwendungen häufiger verwendet wird als das Bild.) Ich benötige einen Rat von einem Experten für digitale Elektronik. Wie sind solche industriellen Anwendungen aufgebaut? Gibt es spezielle Regeln zu befolgen? Wie kann man zuverlässigere Schaltungen entwerfen? Jeder Rat oder jede Anleitung eines Experten wird sehr geschätzt. Vielen Dank...
BEARBEITEN
Wie in den Antworten vorgeschlagen, bearbeite ich meine Antwort, indem ich zusätzliche Ressourcen bereitstelle, um die Fehler im Design herauszufinden.
Unten sehen Sie ein Bild, das beschreibt, wie die Schaltung nach dem Bau aussieht. Es handelt sich um einen 12-V-Transformator mit Mittelabgriff, der die Schaltung mit Strom versorgt. Er wird mit einem Halbwellengleichrichter gleichgerichtet und dann mit einem 7805-IC geregelt.
Unten ist der schematische Aufbau.
Wenn zusätzliche Informationen benötigt werden, werde ich alles Notwendige bereitstellen. Wenn das Programm benötigt wird, werde ich es hinzufügen. Das Programm ist etwas lang. Es verwendet Interrupts.
quelle
Antworten:
Stellen Sie sicher, dass Sie ein solides Design haben, bevor Sie über einen Wechsel nachdenken. Sie müssen darüber nachdenken, wie Sie Probleme bei Ihrem Design haben können. Ein guter Weg, dies zu tun, besteht darin, nicht mehr an einen Mikroprozessor als "magische Kiste" zu denken, in die Sie Code einfügen, und das zu tun, was Sie ihm sagen, und darüber nachzudenken, wie er auf Gate- und Systemebene funktioniert. Sie müssen Ihren Mikroprozessor bei Laune halten.
Was Sie wirklich tun müssen, ist den Fehlermechanismus zu finden. Sie müssen wissen, warum er fehlschlägt. Sobald Sie wissen, warum es fehlschlägt, können Sie das Problem beheben. Wenn Sie das nicht finden können, müssen Sie Ihr Design unbesiegbar machen, um das Auftreten von Problemen zu verhindern. Wenn Sie dies nicht tun, können Sie die Mikroprozessoren wechseln und haben immer noch die gleichen Probleme. Wenn Sie wechseln möchten, stellt ST einige großartige Mikroprozessoren her, die für industrielle Anwendungen besser geeignet sind.
quelle
Da Sie nicht sagen, frage ich mich, wie die gestörte Schaltung physisch aufgebaut ist - da dies genau die Art von Problem klingt, die normalerweise auftritt, wenn jemand, der nicht löt, eine Schaltung auf einem temporären "Push-to-Connect" -Breadboard baut und verlässt es für ein paar Monate.
Wenn dies Ihrem Fall ähnelt, liegt Ihr Problem vor. Wenn nicht, würde ich immer noch schlechte Verbindungen vermuten, aber es wird mehr zu einem Problem der "Fähigkeit zum Löten" als zu einem Problem, bei dem nichts gelötet werden kann.
quelle
Sie haben keinen Entkopplungskondensator an der PIC-Versorgung, aber auf einer kleinen Platine wie dieser werden Sie wahrscheinlich damit durchkommen. Möglicherweise möchten Sie auch einen Brown-Out-Schutz hinzufügen, damit der PIC zurückgesetzt wird, wenn die Spannung unter einen Schwellenwert fällt.
Aber ich würde mir Ihren Code ansehen.
Für den Anfang sollte der Watchdog auf dem Mikro aktiviert sein. Wenn der Code nicht mehr richtig funktioniert, wird er vom Watchdog neu gestartet.
Höchstwahrscheinlich haben Sie gerade irgendwo einen Fehler. Als Embedded-Software-Ingenieur von Beruf würde ich vermuten, dass dies mit den Interrupts zusammenhängt, da Anfänger dort am häufigsten Fehler machen. Als Anfänger gibt es jedoch eine Menge Fehler, die Sie im Code machen können. Das ist also nur der erste Ort, an dem ich nachsehen würde. (Sei nicht beleidigt - ich habe viele dieser Fehler selbst gemacht, auch wenn ich es wirklich besser hätte wissen sollen. ;-)
quelle
Ich stimme den Kommentaren zu, dass Sie auf beiden Seiten des 7805 einen schönen Fettkondensator benötigen. Besonders mit einem Relais dort. Ich gehe davon aus, dass dies das Hauptproblem ist. Ich würde auch einen Entkopplungskondensator über die Stromversorgungsleitungen des PIC hinzufügen.
Ich würde auch nach trockenen Gelenken suchen.
Ich würde auch mein Programm gründlich überprüfen und die dort vorhandene Watchdog-Funktion verwenden.
Aber hier sind ein paar interessante Teile Ihrer Frage:
Ich würde versuchen herauszufinden, was passiert ist. Ist der PIC zum Beispiel abgestürzt?
Wenn ich nun Ihren Schaltplan richtig gelesen habe, muss jeder der 7 Segmentanzeigen etwas und etwas anderes und konstantes auf mindestens zwei von ihnen anzeigen, dann muss jeder von Q1, Q2 und Q3 noch gedreht sein nacheinander eingeschaltet, und die Ausgaben für die Segmente müssen korrekt gewesen sein. Dies würde mir sagen, dass auf Ihrem PIC immer noch mindestens ein Teil seines Codes ausgeführt wird, aber irgendwie wurde die Ziffernausgabe verschlüsselt. Zum Beispiel wurde möglicherweise keine Ziffer 0-9 angezeigt, sondern eine Ziffer 17 oder ähnliches (für die das Ziffernlayout von einem zufälligen Speicherort abgerufen wird).
Du sagst:
Wenn man sich den Schaltplan ansieht, müsste dies entweder ein elektrischer Fehler (z. B. eine trockene Verbindung) oder ein Netzteilproblem sein (siehe oben bezüglich Kondensatoren), es sei denn, der PIC-Ausgang pulsiert oder etwas anderes (nicht unmöglich, da dies auch ein Timer-Ausgangsanschluss ist). oder der Q4-Transistor ist (möglicherweise) nicht vollständig gesättigt. Ich habe das PIC-Datenblatt nicht gelesen, aber ein BC547 hat eine maximale I C von 100 mA (hoffentlich reicht das aus, um Ihr Relais und die LED anzusteuern) und eine hFE von 120 auf diesem Niveau, sodass Sie ungefähr 1 mA benötigen in. 10k könnte daher ein wenig viel sein. Ich könnte 3k3 versuchen.
Darüber hinaus haben Sie keine nützlichen Mittel zum Debuggen. Da Ihre Anzeige ständig eingeschaltet ist, können Sie den endgültigen Dezimalpunkt möglicherweise einmal pro Sekunde (oder ähnlich) blinken lassen, um anzuzeigen, dass alles in Ordnung ist.
Wenn ich im Dunkeln einen wilden Stich machen müsste, würde ich vermuten, dass der Stromkreis besonders bei eingeschaltetem Relais einen erheblichen Strom zieht. Aufgrund des Fehlens eines großen Kondensators auf der Eingangsseite des 7805 liefert der 7805, wenn die Wechselspannung Null überschreitet, keinen Ausgangsstrom (und entleert möglicherweise tatsächlich den Kondensator selbst) - aus dem 7805-Datenblatt 'The Die Eingangsspannung muss typischerweise 2,0 V über der Ausgangsspannung bleiben, selbst während des Tiefpunkts der Eingangswelligkeitsspannung . Die Spannung am PIC wird daher reduziert, möglicherweise genug, um ihn zum Absturz zu bringen. Stellen Sie einen Bereich der 5-V-Leitung neben den PIC. Wenn Sie nichts anderes als eine schöne feste 5-V-Leitung sehen, wissen Sie, dass Sie ein Problem haben.
quelle
Jedes Mal, wenn Sie ein fehlerhaftes Verhalten in einem Mikroprozessor haben, gibt es zwei Hauptursachen für das Problem. 1) fehlende oder unzureichende "Bypass" -Kondensatoren, 2) "schwebende" Mikroprozessorstifte.
Jeder "Chip" muss eine Bypass-Kappe direkt am mit Vcc (+ 5 V) verbundenen Chip-Pin haben.
Jeder nicht verwendete Stift muss hoch oder niedrig gebunden werden, darf aber niemals "schwebend" bleiben.
Ich bin damit einverstanden, dass Sie nicht "hart genug" Q4 fahren, ich empfehle 1K für R12.
quelle