Elektronisches Thermometer auf einem Mikrocontroller. Elektronisches Thermometer mit Fernsensor DS18B20 auf dem Mikrocontroller Attiny2313

Hallo liebe Besucher. Wir erhalten von Ihnen den Wunsch, den Temperaturregelbereich und seine Anzeige auf der Thermometer-Thermostat-Website zu erweitern.

Das Diagramm des neuen Thermostats ist in Abbildung 1 dargestellt.

Im Prinzip unterscheidet es sich fast nicht von seinem eigenen. Im Allgemeinen ist dies ein großes Plus von Schaltungen, die Mikrocontroller verwenden.
Die Schaltung basiert auf einem PIC16F628A Mikrocontroller. Als Sensor kommt einer der bekannten und beliebten digitalen Temperatursensoren DS18B20 zum Einsatz. Die tatsächlichen Temperaturwerte, der Wert der eingestellten Stabilisierungstemperatur und die erforderliche Hysterese werden auf einer dreistelligen LED-Anzeige mit sieben Segmenten und einer gemeinsamen Anode angezeigt. Die Widerstände R1…R4 sind Pull-up-Widerstände. R1 zieht den Datenbus vom DS18B20-Temperatursensor zum Strombus des Stromkreises plus fünf Volt hoch. R2…R4 ziehen die entsprechenden Pins des Mikrocontrollers an den Bus plus fünf Volt.

Die Widerstände fünf bis zwölf sind Lösch- bzw. Begrenzungswiderstände für den durch die LEDs fließenden Strom. Durch Ändern des Werts dieser Widerstände können Sie die Helligkeit der Anzeigesegmente anpassen. Manchmal gibt es Anzeigen mit unterschiedlicher Helligkeit einzelner Segmente; auch dieser Mangel kann mit diesen Widerständen behoben werden. Zur Einstellung der Temperaturregelung werden zwei Tasten mit den entsprechenden Zeichen „+“ und „-“ verwendet, das sind die Tasten SB2 und SB3. Mit denselben Tasten können Sie die gewünschte Hysterese einstellen, von 0,1 ˚С bis 0,9 ˚С, wenn die Taste SB1 – „Hysterese“ gedrückt wird. Das Steuersignal der Schalttaste wird von Pin 17 des DD1-Chips entfernt. Ich habe das Schlüsseldiagramm nicht gezeichnet, sondern wähle es selbst aus, zum Beispiel aus dem Artikel „“

Bitte beachten Sie, dass ich das Gerät nicht in Hardware getestet habe, sondern alles in Proteus simuliert wurde.

Dementsprechend habe ich die Leiterplatte nicht gezeichnet, aber wenn Sie diesen Thermostat wiederholen möchten, können Sie mir die Zeichnung an die Adresse senden - [email protected] Dies wird sehr nützlich für Anfänger im Bereich „Funkzerstörer“ sein (nur ein Scherz). Ich kenne die Ideen der Besucher, die den Thermostat verbessern wollten, nicht, aber vielleicht waren es Chemiker, für die die Genauigkeit der Temperatur von Lösungen wichtig ist. Ich denke, auch Sie werden eine Verwendung für dieses Gerät finden. Es wäre schön, wenn Sie kommentieren könnten, wo es angewendet werden kann. Viel Glück. K.V.Yu.

Guten Tag, liebe Leser. Wie aus dem Titel des Artikels hervorgeht, handelt es sich um ein auf einem PIC montiertes Thermometer. Also. Warum und wie alles begann?!
Ich brauchte ein Diagramm eines einfachen Thermometers für den Garagenkeller. Ich begann im Internet nach einem geeigneten Schema zu suchen. Ein wichtiges Kriterium war die Verwendung einer minimalen Anzahl von Elementen in der Schaltung. Ich sage gleich, dass es online eine Menge solcher Thermometerschaltungen gibt. Aber! Meistens werden sie auf AVRs gemacht, mit denen ich zu meinem tiefsten Bedauern nicht befreundet bin. Also begann ich nach einer PIC-Schaltung zu suchen. Aber auch hier war ich enttäuscht. Es gibt Schaltpläne für PIC-Thermometer. Aber sie verwenden entweder Transistoren für die Anzeigen oder externe Quarze oder etwas anderes, das die Schaltung kompliziert und in meinem Fall nicht akzeptabel war. Endlich wurde nach langer Suche hier ein Schema gefunden, das zu mir passte:

http://www.labkit.ru/html/show_meter?id=38
Und es wurde mehrmals erfolgreich wiederholt. Alles funktioniert super. (Auf der Website des Autors dieser Schaltung gibt es sowohl Firmware als auch eine Leiterplatte zum Nachbau dieses Thermometers.) Im Laufe der Zeit. Und eines Tages wurden die Mängel dieser Schaltung zum ersten Mal deutlich und ich musste auch einen Indikator mit einer gemeinsamen Kathode verwenden (auf der Website des Autors war die Firmware nur für die gemeinsame Anode vorgesehen). Nun zum Mangel des Schemas in der Originalquelle. Die Schaltung des Autors enthält zunächst keinen Pull-up-Widerstand für den Temperatursensor. Das heißt, es gibt keinen 4,7-K-Widerstand in der Schaltung. Ja, mit diesem Schaltungsaufbau kann das Thermometer tatsächlich funktionieren, allerdings nur, wenn der Temperatursensor direkt in die Platine eingelötet ist bzw. die Länge des Drahtes, auf dem sich der Sensor befindet, eine Drahtlänge von einem Meter nicht überschreiten sollte , eineinhalb Meter. Nicht mehr. Andernfalls beginnt der Indikator etwas Unsinn anzuzeigen, nicht die Temperatur.
Diese Wendung hat mich überhaupt nicht glücklich gemacht. Weil ich eine Länge des Kabels mit dem Sensor von mindestens 10 Metern brauchte.
Dieses Problem wurde sehr einfach und schnell gelöst, nämlich durch den Einbau eines 4,7K Pull-up-Widerstandes am Sensor. Danach begann der Sensor bei jeder Drahtlänge stabil zu arbeiten. Was aber, wenn ich nur Indikatoren mit einer gemeinsamen Kathode habe! Und die Firmware wurde für die Anode erstellt ... Hier hat mir Stanislav Dmitriev geholfen. Dafür danke ich ihm sehr. Er hat nicht nur die Firmware für die gemeinsame Anode geschrieben. Aber auch für eine gemeinsame Kathode und für verschiedene Arten von Temperatursensoren (DS18S20 oder DS18B20). Dies ermöglichte eine weitere Vereinheitlichung dieses Schemas. Und empfehle es zur Wiederholung. Es ist auch möglich, in der Schaltung sowohl Vier-Bit-Sieben-Segment- als auch Drei-Bit-Sieben-Segment-Geräte zu verwenden. Das ist keine große Sache, aber dennoch ein Plus.
Jetzt die Schaltung selbst

Wie Sie sehen, unterscheidet sich das Diagramm nicht von dem auf der Website http://www.labkit.ru dargestellten
So war es ursprünglich gedacht. Die einzige Änderung in der Schaltung ist der Einbau eines zusätzlichen Widerstands. Ich habe das Diagramm nicht von Grund auf neu gezeichnet. Ich habe gerade das fehlende Element der Schaltung hinzugefügt. Wenn Sie die Schaltung noch weiter vereinfachen möchten und über eine stabile 5-V-Stromquelle verfügen, können Sie den Linearstabilisator grundsätzlich aus der Schaltung ausschließen. Und versorgen Sie den MK direkt mit 5V.
Lassen Sie uns nun ein wenig darüber sprechen, wie Sie die Firmware für den benötigten Indikator oder Sensor selbst konfigurieren können. Hier ist alles einfach.

Nachdem Sie die Firmware-Datei in den Programmierer geladen haben, können Sie selbst: Basierend auf Ihren Anforderungen und anhand dieses Screenshots die benötigten Parameter in die Firmware-Datei im Abschnitt EPROM schreiben. Anschließend können Sie den Controller flashen.

In meiner Version der Leiterplatte bietet die Platine nicht nur Platz für einen Linearstabilisator, sondern auch für eine Diodenbrücke (die es ermöglicht, die Schaltung mit einer Spannung von 7,5 V bis 12 V zu versorgen). Die Platine bietet auch Platz für den Einbau Ein Klemmenblock, der es Ihnen ermöglicht, einen Temperatursensor nicht in die Platine einzulöten, sondern ihn mit Klemmen festzuklemmen. Dies ist praktisch, wenn Sie den Sensor wechseln oder wenn Sie den Sensor an einem langen Draht installieren.

Tafelzeichnung

Wie Sie sehen, ist das Thermometer auf zwei Platinen montiert. Einer ist mit einer Sieben-Segment-Anzeige (drei oder vier Ziffern) ausgestattet. Alle anderen Elemente der Schaltung werden auf der zweiten Platine installiert. Die Platinen werden über einen Kamm oder, wie in meinem Fall, über Drähte miteinander verbunden.
Am Ende ist ein Foto meines fertigen Thermometers.

Tisch- und Wanduhren mit Thermometer werden in Gehäusen aus Analoguhren gefertigt. Uhr und Thermometer werden als separate, unabhängige Geräte hergestellt.

Ich werde das Thermometer nicht beschreiben; es ist auf derselben Website veröffentlicht. Die Schaltung, Platine und Firmware sind vorhanden, alles ist unverändert.

Der Temperatursensor DS18B20 der Tischuhr befindet sich außerhalb des Fensters. Isolierte Drähte 0,35 mm, ca. 10 Meter lang

Die Uhr ist auf einzelnen grünen 7-Segment-LED-Anzeigen aufgebaut. Die Größe der Zahlen beträgt 14 x 25,4 mm – gut sichtbar aus jeder Ecke des Raumes. Bitte beachten Sie, dass der Anzeiger ohne Löschwiderstände angeschlossen wird. Denn jedes Segment besteht aus zwei in Reihe geschalteten LEDs und hat eine Nennspannung von 3,8 Volt. Bei der dynamischen Anzeige überschreiten die Ströme die zulässigen Werte nicht.

Der Spannungsstabilisator befindet sich im Adapterstecker. Es ist auf einem 3-Watt-Transformator und einem Hochfrequenzwandler - Stabilisator LM2575T-5.0 gemäß einer Standardschaltung aufgebaut. Ohne Kühlkörper erwärmt sich die Mikroschaltung nicht. Anschluss für 3,5-mm-Stromversorgung. Quarz 4 MHz.

Alle NPN-Transistoren mit geringer Leistung. Knöpfe 6x6 H=14/10mm auf der Leiterseite angelötet . Die Länge des Knopfdrückers wird entsprechend den Designanforderungen ausgewählt. Mit jedem Tastendruck wird eine Einheit hinzugefügt. Wenn die Taste gedrückt gehalten wird, beschleunigt sich die Zählung auf eine angemessene Geschwindigkeit.

Widerstände MLT – 0,25. R3 – R6 1-3 kOhm.

Batterien: 4 Stück GP-170 oder ähnlich. Bei abgeschalteter Netzspannung versorgen sie nur den Mikrocontroller mit Strom.

Es empfiehlt sich, Dioden mit dem geringsten Spannungsabfall in Durchlassrichtung auszuwählen.
Die Platten bestehen aus einseitig folieniertem Fiberglas.
HEX-Datei, Diagramm, Siegel im Ordner Nr. 1.

Option 2: auf einem Board

In diesen Koffer passten nicht zwei Platinen: eine Uhr und ein Thermometer. Ich wollte die Größe der Uhranzeige nicht reduzieren.

Ich mag es nicht, Zeit und Temperatur einzeln auf einer Tischuhr anzuzeigen.
Ich musste einen weiteren kleineren Indikator für das Thermometer nehmen und eine neue Leiterplatte zeichnen. Daher sind die Schaltung und die Firmware des Thermometers unterschiedlich.

HEX-Datei und Thermometerdiagramm im Ordner Nr. 2. Leiterplatte an gleicher Stelle.
Das Uhrendiagramm ist unverändert dem ersten Abschnitt entnommen.

Nachfolgend können Sie Firmware und Leiterplatten im HEX-Format herunterladen

Liste der Radioelemente

Bezeichnung Typ Konfession Menge NotizGeschäftMein Notizblock
Variante 1
MK PIC 8-Bit

PIC16F628A

1 Zum Notizblock
VR1 DC/DC-Pulswandler

LM2575

1 5V Zum Notizblock
VT1-VT4 Bipolartransistor

KT3102

4 Zum Notizblock
VD1, VD2, VD4 Diode

D310

3 Zum Notizblock
VD3 Schottky Diode

1N5819

1 Zum Notizblock
VS1 Diodenbrücke

DB157

1 Zum Notizblock
C1, C2 Kondensator20 pF2 Zum Notizblock
C3, C5 Kondensator0,1 µF2 Zum Notizblock
C4 330 µF 16 V1 Zum Notizblock
C6 Elektrolytkondensator100 µF 35 V1 Zum Notizblock
R1, R2 Widerstand

10 kOhm

2 Zum Notizblock
R3-R6 Widerstand

1 kOhm

4 Zum Notizblock
R7, R10 Widerstand

100 Ohm

2 Zum Notizblock
L1 Induktor330 µH1 Zum Notizblock
Tr1 Transformator 1 Zum Notizblock
F1 Sicherung100mA1 Zum Notizblock
Batterie4,8 V1 Zum Notizblock
HL1, HL2 Leuchtdiode 2 Zum Notizblock
S1, S2 Taste 2 Zum Notizblock
Z1 Quarz4 MHz1 Zum Notizblock
IndikatorFYS10012BG211 Zum Notizblock
Option 2
MK PIC 8-Bit

PIC16F628A

1 Zum Notizblock
VT1-VT4 Bipolartransistor

KT3102

1 Zum Notizblock
C1, C2 Kondensator20 pF2 Zum Notizblock
C3 Kondensator0,1 µF1 Zum Notizblock
R1 Widerstand

4,7 kOhm

1 Zum Notizblock
R2, R3, R5, R6 Widerstand

Uhr am Temperatursensor PIC16F628A und DS18B20.

4-Segment-LED-Anzeige.

Animierter Anzeigewechsel.

Eine Variante einer einfachen Uhr auf dem beliebten und erschwinglichen Mikrocontroller PIC16F628A. Tatsächlich begann mit ihnen das AVR-Projekt.

Beschreibung der Uhr.


1. Funktionen.

– Uhr, Zeitanzeigeformat 24 Stunden, Stunden:Minuten.

– digitale Genauigkeitskorrektur. Tägliche Korrektur ist ±25 Sek. möglich. Der eingestellte Wert von 1 Stunde 0 Minuten 30 Sekunden wird zur aktuellen Zeit addiert/subtrahiert.

– Thermometer.

- Indikation. Wechseln.

– Anpassbare Animation sich ändernder Messwerte.

– Verwendung des nichtflüchtigen Speichers des Mikrocontrollers zum Speichern von Einstellungen, wenn der Strom ausgeschaltet ist.

– wenn Sie im Hauptmodus die Taste drückenPLUS , dann wird die Uhrzeit auf den Indikatoren angezeigt, wenn Sie auf klickenMINUS - Temperatur. Beim Loslassen der Tasten wird der automatische Messwertwechsel fortgesetzt.

2. Einrichtung.

2.1. Beim Einschalten befindet sich die Uhr im Hauptmodus.

2.2. Per KnopfdruckSATZ Ruft den Einstellungsmodus auf und wählt einen zu installierenden Parameter aus. Zur Installation stehen wiederum zur Verfügung:

- Protokoll;

- Uhr;

– Sekunden (wird beim Drücken der Tasten auf Null zurückgesetztPLUS oderMINUS );

– Korrekturwert. In der höchsten Reihenfolge das Symbol „Mit ";

– Uhrzeit der Anzeige der aktuellen Uhrzeit. In den höchsten Ziffern sind die Symbole „tc ". Einstellbereich 0-99 Sek. Bei der Einstellung 0 wird die Uhrzeit nicht angezeigt;

– Temperaturanzeigezeit. In den höchsten Ziffern sind die Symbole „tt ". Einstellbereich 0-99 Sek. Bei der Einstellung 0 wird die Temperatur nicht angezeigt;

– Auswahl des Animationseffekts. In den höchsten Ziffern sind die Symbole „EF ". Bei der Einstellung 0 werden Informationsänderungen ohne Auswirkungen durchgeführt, wenn der Automatikmodus ausgewählt ist (SymbolA ), dann ändern sich die Effekte abwechselnd. Wenn der Modus ausgewählt istR , dann ändern sich die Effekte zufällig.

– Animationsgeschwindigkeit auswählen. In der höchsten Reihenfolge das Symbol „P ". Der Einstellbereich liegt zwischen 0 und 99. Eine Einheit entspricht ca. 2 ms, je höher der Wert, desto langsamer die Animation.

2.3. Der einzustellende Parameter blinkt.

2.4. Indem Sie die Tasten gedrückt haltenPLUS / MINUS Der Parameter ist schnell eingestellt.

3. Notizen.

Es ist notwendig, die Geschwindigkeit der Animation und die Zeit, die zum Anzeigen von Informationen benötigt wird, in Einklang zu bringen. Wenn langsame Animation und kurze Anzeigezeit gewählt werden, kann es sein, dass die Informationen vor der nächsten Schicht keine Zeit haben, vollständig aktualisiert zu werden.

Wenn die Hauptstromversorgung ausgeschaltet ist (+12V) erlischt die Anzeige, die Uhr läuft weiter. Der MK wird von einer Backup-Quelle mit Strom versorgt.

Das Archiv enthält Firmware für Indikatoren mit gemeinsamer Kathode und Anode, ein Projekt in Proteus und eine Beschreibung.

Fragen, Wünsche im Forum.

11.03.2015

Aktualisierte Firmware für einen Indikator mit gemeinsamer Kathode hinzugefügt. Die neue Firmware verfügt über mehr Animationseffekte und kleinere Änderungen im Algorithmus. Ausführliche Beschreibung im Archiv.

Ich möchte sofort darauf hinweisen, dass die Leiterplatte und das Design mit der Erwartung entwickelt wurden, ein kompaktes Gerät zu schaffen, das an der Wand montiert werden kann.

Die Steuerung des Geräts erfolgt über eine Taste. Das Programm für den Mikrocontroller ist in C geschrieben, mit Kommentaren versehen und kann vom Benutzer an seine spezifischen Aufgaben angepasst oder in der Funktionalität erweitert werden. Zur Steuerung der LCD-Anzeige wird eine vorgefertigte Peter Fleury-Bibliothek verwendet (das herunterladbare Archiv ist im Download-Bereich verfügbar). Zusätzlich können Daten in Celsius oder Fahrenheit angezeigt werden. Es gibt verschiedene Modi zur Steuerung der Hintergrundbeleuchtung der Anzeige.

Erwähnenswert ist noch ein weiterer wichtiger Punkt: Das Gerät kann über ein spezielles Modul (optional) eine drahtlose Datenübertragung über das Bluetooth-Protokoll durchführen.

Schematische Darstellung

Aus schaltungstechnischer Sicht ist das Gerät einfach und wir werden die Komponentenelemente separat betrachten.

Die Stromversorgung des Thermometers erfolgt auf Basis eines integrierten Spannungsreglers in Standardschaltung (mit entsprechenden Filterkondensatoren). Der 3,3-V-Spannungsregler AMS1117 ist in der Schaltung enthalten, kann jedoch bei Verwendung eines Bluetooth-Moduls verwendet werden, da Oftmals beträgt die Spannungsversorgung für solche Module 3,3 V.

Die im Gerät verwendete Anzeige ist eine standardmäßige zweizeilige Anzeige auf dem HD44780-Controller. Der Transistor dient zur Steuerung der Hintergrundbeleuchtung der Anzeige mit logischen Signalen vom Mikrocontroller oder einem PWM-Signal vom Mikrocontroller. Widerstand R3 begrenzt den Strom durch die Basis des Transistors, Widerstand R1 zieht die Basis auf Nullpotential.

Die Basis des Thermometers ist ein Mikrocontroller, der mit einer Frequenz von 8 MHz arbeitet und alle umliegenden Peripheriegeräte steuert.

Der DHT-11-Sensor ist ein kostengünstiger Temperatur- und relativer Luftfeuchtigkeitssensor, der im Projekt als Außensensor verwendet wird. Es zeichnet sich nicht durch hohe Geschwindigkeit und Genauigkeit aus, wird aber aufgrund seiner geringen Kosten in Amateurfunkprojekten eingesetzt. DHT-11 besteht aus einem kapazitiven Feuchtigkeitssensor und einem Thermistor. Außerdem enthält der Sensor einen einfachen ADC zur Umwandlung analoger Werte für Luftfeuchtigkeit und Temperatur.

Hauptmerkmale:

  • niedrige Kosten;
  • Versorgungsspannung 3 V - 5 V;
  • Datenübertragung per 1-Wire-Bus über Entfernungen bis zu 20 m;
  • Bestimmung der Luftfeuchtigkeit 20-80 % mit 5 % Genauigkeit;
  • maximale Stromaufnahme 2,5 mA;
  • Temperaturbestimmung 0...50° mit einer Genauigkeit von 2 %;
  • Abfragefrequenz nicht mehr als 1 Hz (nicht mehr als einmal alle 1 s);
  • Abmessungen 15,5 × 12 × 5,5 mm;

Es ist zu beachten, dass im Angebot ein DHT-22-Sensor erhältlich ist, der über die gleiche Schnittstelle, aber bessere Eigenschaften verfügt.

Der Sensor ist über einen 1-Wire-Bus (Anschluss JP3 im Diagramm) über einen Pull-up-Widerstand an der Datenleitung und einen Sperrkondensator an der Stromversorgung mit dem Mikrocontroller verbunden.

Der interne Sensor ist der weit verbreitete analoge Temperatursensor LM35 IC5, der an Kanal 1 des Mikrocontroller-ADC angeschlossen ist.

Mit dem Anschluss J1 der Mikrocontroller-In-Circuit-Programmierschnittstelle können Sie den Programmcode schnell ändern oder die Software aktualisieren. Zum Anschluss des Thermometers über die UART-Schnittstelle wird der Stecker JP1 verwendet. Der SW1-Steuerknopf ist mit dem externen Interrupt-Eingang des Mikrocontrollers verbunden; dieser Eingang ist über den internen Widerstand des Ports mit der Stromversorgung verbunden.

Ein Bluetooth-Modul zur drahtlosen Datenübertragung, im Diagramm als IC3 bezeichnet, GP-GC021, verbindet sich auch mit der UART-Schnittstelle des Mikrocontrollers und ermöglicht die Datenübertragung an einen PC, ein Mobiltelefon oder einen Webserver. Die Leiterplatte bietet Platz für den Einbau des Moduls. Der Download-Bereich enthält eine Beschreibung des Moduls, des Interaktionsprozesses und der Befehle.

Die LCD-Anzeige ist auf der Vorderseite der Leiterplatte im Anschluss verbaut und verdeckt so die auf der Hauptplatine verbauten Komponenten und wir erhalten ein kompaktes Gerät. Der Platz zum Einbau des Bluetooth-Moduls befindet sich auf der Rückseite der Leiterplatte (siehe Foto der Platine).

Aussehen der fertigen Leiterplatte für ein Thermometer


Leiterplattenzeichnung in Eagle CAD

Platine mit eingebautem Bluetooth-Modul

Downloads

Schaltplan und Leiterplatte (Eagle), Software (Quellcode, Firmware) -
Bibliothek zum Arbeiten mit der LCD-Anzeige am HD44780-Controller -
Technische Beschreibung zum Bluetooth-Modul GP-GC021 -

mob_info