Kostenlose technische Bibliothek ENZYKLOPÄDIE DER FUNKELEKTRONIK UND ELEKTROTECHNIK Multiprogramm-Timer-Uhr-Thermometer. Enzyklopädie der Funkelektronik und Elektrotechnik Lexikon der Funkelektronik und Elektrotechnik / Leistungsregler, Thermometer, Wärmestabilisatoren Der Artikel beschreibt ein universelles digitales Gerät auf Basis eines PIC-Controllers, das die Funktionen eines Multiprogramm-Timers ausführen kann, der vier Lasten, eine Uhr, einen Wecker, ein Weitbereichsthermometer und einen Thermostat steuern kann, der sowohl für Heizung als auch für Kühlung sorgt des kontrollierten Objekts. Ein universelles digitales Gerät, dessen Schaltung in Abb. dargestellt ist. 1, hat die folgenden Spezifikationen:
Steuern Sie das Gerät über eine 16-Tasten-Tastatur. Es besteht die Möglichkeit, den Ton beim Drücken von Tasten ein- und auszuschalten, die Versorgung mit Ton-, Licht- und Steuersignalen einzustellen und das Gerät durch Änderung des Steuerprogramms MK individuell an eine bestimmte Anwendung anzupassen. Die Notstromversorgung erfolgt über den eingebauten Akku. Alle beim Arbeiten mit dem Gerät eingestellten Parameter bleiben auch dann erhalten, wenn die Notstromversorgung für mehr als 40 Jahre ausgeschaltet ist. Wie aus dem Diagramm ersichtlich ist, basiert das Gerät auf dem PIC-Controller DD1. Das Schieberegister DD2 und der Decoder DD3 dienen zur Organisation der dynamischen Anzeige, deren Prinzip wie folgt ist. Zunächst wird der Code 3 an den DD1111-Decoder angelegt, wodurch an allen seinen Ausgängen Log-Level gesetzt werden. 1 und keine der Ziffern der HG1-Anzeige leuchtet. Als nächstes wird der Code des erforderlichen Zeichens in das Register DD2 eingegeben, woraufhin der Code, der dem gewünschten Bit des Indikators entspricht, an DD3 gesendet wird. Gleichzeitig mit der Aktualisierung der Daten für den Indikator wird die Tastatur gescannt, von der 16 Tasten in zwei Gruppen unterteilt sind – jeweils acht. Die allgemeinen Schlussfolgerungen der Tasten dieser Gruppen sind mit zwei Eingängen des MK (RB0 und RB1) verbunden. Bei Betätigung einer Taste wird ein Protokollsignal an einen dieser Eingänge gesendet. 0 aus dem entsprechenden Ausgang des Decoders DD3 und bestimmt so seinen Code. Mit der Tastatur können Sie einen oder alle Programm-Timer gleichzeitig starten/stoppen, den Thermostat-Betriebsmodus, die aktuelle Uhrzeit, die Alarmzeit usw. einstellen. Die meisten Tasten haben einen doppelten Zweck, je nachdem, welche Informationen der Benutzer erhält Eingabe über die Tastatur: numerisch oder Steuerung. Betrachten Sie den Zweck der Tastaturtasten genauer. „0“, „Uhr“ – Ziffer 0 bei der Eingabe numerischer Informationen oder beim Wechsel in den Uhrmodus, in dem Sie die aktuelle Uhrzeit ändern, die Zeit für das Einschalten des Alarms einstellen, den neuen Stundenalarmmodus einschalten und die Uhrzeit bearbeiten können Korrekturfaktor (siehe unten). „1“ – „9“ – Zahlen 1 – 9 bei der Eingabe numerischer Informationen oder der Auswahl des entsprechenden Programmtimers. „Begriff“ – Wechsel in den Thermostatmodus, in dem Sie den aktuellen Temperaturwert einstellen, den Wert der geregelten Temperatur, die Art der Regelung (Heizen oder Kühlen) und Thermistorparameter bearbeiten können. „Entf“ – „Minus“-Zeichen beim Eingeben des Wertes der geregelten Temperatur, Ein-/Ausschalten von Thermostat, Thermometer, Wecker oder Uhr (beim Ausschalten werden Zeichen --- anstelle der entsprechenden Messwerte angezeigt), Nullstellung bei Eingabe numerischer Daten. „Einstellen“ – Übergang/Ausgang zum Modus zum Ändern des Werts eines beliebigen Parameters (Software-Timer, aktuelle Uhrzeit, Wecker, Thermometer, Thermostat, Einstellungen). „Optionen“ – Wechseln Sie in den Modus zum Ändern von Einstellungen. Hier können Sie den Tastenton, den Begrüßungsmodus ein-/ausschalten, Quellen für die Ausgabe von Steuersignalen auswählen usw. „Auswählen“ – Starten/Stoppen des aktuellen Software-Timers, wenn sein Zeitverzögerungswert von 0 abweicht. „AH“ – startet/stoppt alle Software-Timer, deren Zeitverzögerungswert ungleich 0 ist. Das Gerät ist in der Lage, vier Steuersignale auszugeben, die jeweils nach Ermessen des Benutzers verwendet werden können. Es ist möglich, die Quelle dieser Signale einzustellen:
Das Gerät verwendet eine zweifarbige LED HL1, die rot blinkt, wenn beim Starten eines oder mehrerer Timer mindestens ein Steuersignal aktiv geworden ist, und grün, wenn keine aktiven Signale vorliegen. Am Ende der Zeitverzögerung eines der laufenden Timer beginnt die HG1-Anzeige zu blinken und der Piezo-Emitter HA1 mit integriertem Unterbrecher piept. Dies wird so lange fortgesetzt, bis der Benutzer eine beliebige Taste auf der Tastatur drückt oder eine bestimmte Zeit vergeht, deren Wert im Speicher des MK abgelegt wird und bei dessen Programmierung geändert werden kann. Das beim Auslösen des Timers ausgegebene Tonsignal wird durch zwei Parameter bestimmt: die Dauer des Tons und die Anzahl der Tonpakete. Wenn der Wecker klingelt, werden auch Tonsignale ausgegeben, aber nur die beiden Symbole ganz links in der Anzeige – A und L (aus dem Englischen: ALARM – Wecker) beginnen zu blinken. Das Tonsignal des Weckers wird auch durch zwei im Speicher des MK abgelegte Parameter beschrieben. Abhängig vom verwendeten Quarzresonator fällt die Genauigkeit der Uhr unterschiedlich aus, daher ist in diesem Gerät eine Software-Zeitkorrektur implementiert. Der Korrekturfaktor wird vom Benutzer über die Tastatur eingestellt und auch im Speicher des MK abgelegt. Tatsächlich stellt es die Anzahl der Mikrosekunden dar, die zu den vom internen Timer des MK erzeugten Schwingungsperioden addiert werden – in unserem Fall 1,92 ms. Mit Hilfe eines Korrekturfaktors wird erreicht, dass diese Zeit 2 ms beträgt (alle 1 solcher Perioden wird eine Zeitspanne von 500 s aufgezeichnet). Die Temperaturmessung erfolgt durch Messung des Spannungsabfalls am Thermistor RK1. Sein Widerstand als Funktion der Temperatur wird durch die folgende Formel bestimmt: wobei R0 eine Konstante mit der Dimension eines Widerstands ist; B ist eine Konstante mit der Dimension Temperatur; T ist die absolute Temperatur. Daher muss diese Abhängigkeit auf eine lineare reduziert werden. Es gibt eine bekannte Methode zur Linearisierung mithilfe einer Thermistorbrücke, diese Vorgehensweise ist jedoch unpraktisch, da beim Austausch des Thermistors die Parameter der Brücke selbst geändert werden müssen, was nicht so einfach ist. Es wäre bequemer, den Temperaturwert ohne Linearisierung zu erhalten, aber dafür müssen Sie den Wert des folgenden Ausdrucks berechnen: wobei Rd der Widerstandswert des zusätzlichen Widerstands ist; N – 10-Bit-Binärcode, erhalten nach Analog-Digital-Umwandlung; Un - Versorgungsspannung. Bei dem beschriebenen Gerät wird dieser Ausdruck vom MK-Steuerungsprogramm berechnet und das Ergebnis auf dem Anzeigegerät angezeigt. Es ist zu beachten, dass der oben genannte Bereich der gemessenen und kontrollierten Temperaturen (-43 ... +470 °C) beliebig gedehnt, gestaucht oder verschoben werden kann. Das angegebene Intervall wurde gewählt, weil der Temperaturmessfehler darin ±2 °C nicht überschreitet. In diesem Fall beträgt der Widerstandswert des Zusatzwiderstands R17 300 Ohm. Um den Fehler zu verringern, kann er erhöht werden, allerdings ändern sich dadurch die Grenzen des Temperaturintervalls. Zur einfacheren Berechnung können Sie verwenden Dokument term (10 Bit).mcd für das MathCAD 2001-System, das den Bereich der gemessenen Temperaturen basierend auf den angegebenen Parametern des Thermistors RK1, des Widerstands R17 und des erforderlichen Fehlers berechnet. Um sicherzustellen, dass die Echtzeituhr beim Ausschalten der Hauptstromversorgung nicht außer Kontrolle gerät, verfügt das Gerät über ein Ersatznetzteil MK. Es besteht aus einer 1-V-Batterie GB3,6, einem Widerstand R16 und den Dioden VD2, VD3. Wenn die Hauptstromversorgung eingeschaltet wird, schließt die VD3-Diode und die GB1-Batterie wird über den R16-Widerstand geladen. Wenn die Hauptstromversorgung ausgeschaltet ist, wird die Batteriespannung über die VD3-Diode nur dem MK zugeführt (die VD2-Diode verhindert die Spannungsversorgung der übrigen Elemente des Geräts). Der MK stellt die Tatsache eines Stromausfalls fest, indem er ständig den Spannungspegel am RB2-Pin überwacht. Und wenn es gleich log wird. 0 stoppt der MK die Regenerierung des Indikators und die Abfrage der Tastatur, stoppt alle laufenden Software-Timer, stoppt die Messung und Regelung der Temperatur und wechselt in den Uhrmodus. Wenn außerdem die Einstellungen während der Arbeit mit dem Gerät geändert wurden, blinkt die rote LED nach dem Ausschalten kurz, wenn sich die Einstellungen nicht geändert haben – grün. Wenn das Gerät längere Zeit (eine Woche oder länger) nicht verwendet werden soll, können Sie die Notstromversorgung mit der Brücke S1 abschalten, um eine vollständige Entladung des Akkus zu verhindern. Der MK überwacht ständig den Status der Kontakte der Tasten auf der Tastatur und wechselt automatisch in den Uhrmodus, wenn während der angegebenen Zeit kein einziger Tastendruck erfolgte und kein einziger Programm-Timer gestartet wurde. Das MK-Steuerungsprogramm ist in C geschrieben, sodass es problemlos alle Datentypen verwenden kann, auch echte. Das Programm wurde im Programmiersystem HT-PIC C entwickelt (es kann von der Website „heruntergeladen“ werden). ). Zum Debuggen haben wir den einfachsten In-Circuit-Emulator verwendet, bei dem es sich um eine Reihe von Kontakten handelt, die die Leitungen des Parallelports des Computers mit dem Sockel unter dem MK auf der Hauptplatine verbinden. Die Übereinstimmung der Anschlüsse des Parallelports des Computers mit den Buchsen des MK-Sockels auf der Timer-Platine ist in der Tabelle angegeben. 1. Zur Steuerung des Emulators wurde das MK-Steuerungsprogramm mit geringfügigen Änderungen in der Programmierumgebung Borland C++ 3.1 kompiliert. Leider erfolgt die Arbeit eines solchen Emulators in einem anderen Zeitrahmen als der reale, aber dennoch wäre es ohne ein solches Gerät fast unmöglich, ein so komplexes Programm zu debuggen. Ohne den Einsatz eines Emulators wurde lediglich eine Analog-Digital-Wandlung durchgeführt, deren Beschreibung zu diesem MK auf der Website zu finden ist (Dokument DS30292C – „10-Bit-ADC-Modul in PIC16F87x-Mikrocontrollern“). Betrachten wir kurz die Hauptpunkte des MC-Steuerungsprogramms. Es ist mit der Methodik der strukturierten Programmierung geschrieben und verfügt daher über eine große Anzahl von Unterprogrammen. Nach dem Einschalten richtet die MCU die I/O-Ports, den ADC und den internen Timer ein. Dann beginnt die Hauptschleife zu laufen, die unendlich ist. Darin wird, wie bereits erwähnt, ständig das Vorhandensein der Hauptversorgungsspannung überprüft, und wenn diese ausgeschaltet wird, führt der MK alle Funktionen außer der Zeitmessung nicht mehr aus. Beim Einschalten der Hauptstromversorgung wird der Begrüßungsbildschirm angezeigt und in den Betriebsmodus zurückgekehrt. Die Informationen, die zum aktuellen Zeitpunkt auf dem Indikator angezeigt werden sollen, werden im Array d gespeichert. Bei der Regeneration des Indikators schreibt der MC seinen Inhalt in ein Zwischenarray um, liest daraus nacheinander die Codes der ausgegebenen Zeichen und zeigt sie auf dem Indikator an. Ein zusätzliches Array wird eingeführt, um das Flackern des Indikators zu beseitigen, das dadurch entsteht, dass neue Informationen in Array d geschrieben werden, bevor die alten noch nicht vollständig angezeigt werden. Nehmen wir zum Beispiel an, dass das Array d ursprünglich die Zeichenfolge „ABCDEFHLP“ enthielt und wenn das vierte Zeichen („D“) angezeigt wird, wird die Zeichenfolge „FDA 2002“ in das Array eingegeben. Dann wird der Benutzer des Geräts aufgrund der Trägheit des menschlichen Sehens irgendwann die Zeile „ABC 2002“ sehen. Wenn sich solche Vorgänge außerdem ständig wiederholen (und dies wird in der realen Arbeit der Fall sein), hat die Person den Eindruck, dass die Informationen auf dem Indikator flackern. Wie bereits erwähnt, wird die Tastatur gleichzeitig mit der Aktualisierung der Anzeige gescannt. Wenn eine beliebige Taste gedrückt wird, wird die Unterroutine zur Unterdrückung von Kontaktprellen aufgerufen, die einige Millisekunden verzögert (der Wert dieser Zeit wird im MK-Speicher gespeichert), während der das Gerät nicht auf weitere Tastendrücke reagiert. Es ist auch zu beachten, dass die Belichtungszeit von Software-Timern, Uhren und Alarmen in Sekunden eingestellt wird (der Stundenzähler wird zurückgesetzt, wenn der Wert 24 x 60 x 60 = 86400 erreicht ist) und vor der Anzeige auf dem Indikator umgerechnet wird in das Format H : MM : SS für Timer oder in das Format HH : MM für Uhr und Alarm. Dies geschieht mit folgenden Formeln: C = Zeitmod 60. Hier bedeutet die Operation ][ das Verwerfen des Bruchteils, d. h. die Division ist eine ganze Zahl. Die erhaltenen Werte von Stunden, Minuten und Sekunden sind noch nicht für die direkte Anzeige auf dem Indikator geeignet, da sie im Binärcode dargestellt werden. Um die höchstwertigen und niedrigstwertigen Dezimalstellen auszuwählen, müssen für jeden Wert zwei weitere Operationen ausgeführt werden: LSB = Wert mod 10. Betrachten wir ein Beispiel. Möglicherweise muss der Wert 8673 s auf dem Indikator im Format H : MM : SS angezeigt werden. Wir bekommen C = 8673 mod 60 = 33. Daher zeigt die Anzeige 2 : 24 : 33 an Aus den angegebenen Beispielen ist ersichtlich, wie viele Operationen ausgeführt werden müssen, um die Ausgabe an den Indikator zu organisieren. Es wäre nahezu unmöglich, eine solche Mathematik in Assemblersprache zu implementieren. In der Sprache C ist dies in wenigen Zeilen umgesetzt, während der Programmcode dank hoher Optimierung recht kompakt und schnell ist. Aber das Wichtigste ist, dass der Programmierer sein Hauptaugenmerk auf den Programmalgorithmus richten und von den spezifischen Merkmalen der Architektur des verwendeten Mikrocontrollers abstrahieren kann. All dies trägt zur einfachen Übertragung des Programms von einem MK auf einen anderen bei. Der Quelltext des MK-Programms und die „Firmware“-Codes im Intel HEX-Format finden Sie unter der oben genannten Adresse im Internet. Um den MK zu programmieren, verwendete der Autor einen Programmierer, der nach dem in Abb. gezeigten Schema zusammengestellt wurde. 2 und die PonyProg2000-Software, deren neueste Version von der Website „heruntergeladen“ werden kann . Der Hauptunterschied zwischen dem Programmiergerät und dem in [1] beschriebenen besteht in der Hinzufügung eines weiteren Transistors (VT3) zur Synchronisationssignal-Erzeugungsschaltung, der die Programmierzuverlässigkeit erhöht, indem die negative Spannung an den MK-Pins vollständig eliminiert wird. Das beschriebene Gerät ermöglicht die MK-Programmierung auf der Platine, d. h. es unterstützt die ICSP-Technologie (In-Circuit Serial Programming – serielle In-Circuit-Programmierung). Dazu wird es über fünf Drähte über den Stecker X1 wie folgt mit dem Programmiergerät verbunden: 7 - gemeinsam; 5,6 - 5 V; 2 - SDA; 3 - SCL; 1 - Upprog. Es ist möglich, andere Programmiergeräte zu verwenden, einschließlich solcher, die die Niederspannungsprogrammierung unterstützen. Im letzteren Fall müssen Sie zusätzlich den entsprechenden Kontakt des Programmiergeräts mit Pin 4 des Steckers X1 verbinden. Eine Zeichnung der Leiterplatte des Geräts ist in Abb. 3 dargestellt. 4, Tastaturen - in Abb. vier. Auf der Timer-Platine befinden sich sieben Löcher, in die vor der Montage der Teile verzinnte Drahtstücke eingeführt und auf beiden Seiten der Platine mit den Leiterbahnen verlötet werden. Die Funktion von Jumpern übernehmen auch die Anschlüsse einiger Teile. Die Löcher, durch die solche Verbindungen von Leiterbahnen hergestellt werden, sind in Abb. hervorgehoben. 3 mit vier kreuzförmigen Punkten. Die Quelldateien des Projekts und die Bibliothek der verwendeten Komponenten für CAD Accel EDA 15.0 befinden sich auf der oben genannten Website. Das Gerät verwendet Festwiderstände und Kondensatoren für die Oberflächenmontage. Die Ausnahme bilden die Oxidkondensatoren C6, C7 (K50-35). MK PIC16F876 kann jede maximale Betriebsfrequenz und jeden Temperaturbereich haben, Hauptsache, es befindet sich in einem DIP-Gehäuse (hatte ein SP-Suffix). Der piezoelektrische Emitter HRM14AX kann durch eine Einheit ersetzt werden, die aus drei Elementen der Mikroschaltung KR1533LAZ und einem piezoelektrischen Emitter ZP-18 besteht [2]. Thermistor RK1 - MMT-4 mit einem Nennwiderstand von 15 kOhm (R0 = 0,294 Ohm, V = 3176 K). Als Anschlüsse X1 – Der achte Kontakt des XP1-Steckers und des dritten XP2-Steckers wurden entfernt und die Stecker in die entsprechenden Buchsen der passenden Teile der Steckverbinder gesteckt – Stücke dicker Angelschnur. Durch diese Maßnahme wird verhindert, dass die Steckverbinder falsch zusammengesteckt werden. Die X1-Anschlussbuchse besteht aus einer Platte mit 2 Steckplätzen für eine Mikroschaltung in einem DIP-Gehäuse (ein Teil davon wird verwendet, der 2 Pins hat). Tasten SB20-SB10 - TS-A1PS-16. Der Inhalt des MK-EEPROMs, der geändert werden kann, um andere Betriebsparameter einzustellen, ist in der Tabelle aufgeführt. 2. Die Spalte „Parameter“ enthält den Namen des Parameters, der auf dem Indikator angezeigt wird. Steht in dieser Spalte ein Bindestrich, kann dieser Parameter nur bei der Programmierung des MK geändert werden. Literatur
Autor: D.Frolov, Rjasan Siehe andere Artikel Abschnitt Leistungsregler, Thermometer, Wärmestabilisatoren. Lesen und Schreiben nützlich Kommentare zu diesem Artikel. Neueste Nachrichten aus Wissenschaft und Technik, neue Elektronik: Kunstleder zur Touch-Emulation
15.04.2024 Petgugu Global Katzenstreu
15.04.2024 Die Attraktivität fürsorglicher Männer
14.04.2024
Weitere interessante Neuigkeiten: ▪ Unsterbliche Quantenteilchen ▪ Testen von selbstfahrenden Autos mit einem Remote-Fahrer ▪ LED macht Gemüse zu Heilpflanzen ▪ Beeinflussen Meteoriten das Klima? News-Feed von Wissenschaft und Technologie, neue Elektronik
Interessante Materialien der Freien Technischen Bibliothek: ▪ Abschnitt der Website Elektronische Nachschlagewerke. Artikelauswahl ▪ Artikel Wer hat die Noten erfunden? Ausführliche Antwort ▪ Artikel Hypertonie-Krise. Gesundheitspflege ▪ Artikel Spiralantenne für tragbare Radios. Enzyklopädie der Funkelektronik und Elektrotechnik ▪ Artikel Netzteil, 1-29 Volt 2 Ampere. Enzyklopädie der Funkelektronik und Elektrotechnik
Hinterlasse deinen Kommentar zu diesem Artikel: Alle Sprachen dieser Seite Startseite | Bibliothek | Artikel | Sitemap | Site-Überprüfungen www.diagramm.com.ua |