In diesem Tutorial werden wir ein Luftdruckmesssystem mit BMP180 und ARDUINO entwerfen. Um BMP180 an ARDUINO anzuschließen, müssen wir zunächst eine Bibliothek herunterladen, die speziell für BMP180 entwickelt wurde. Diese Bibliothek ist verfügbar unter: https://github.com/adafruit/Adafruit-BMP085-Library Nach dem Anhängen dieser Bibliothek können wir spezielle Funktionen aufrufen, die die Arbeit mit dem BMP180-Sensor erleichtern.
Erforderliche Komponenten
Hardware: Arduino Uno Board, Verbindungsstifte, 220Ω Widerstand, BMP180 Luftdrucksensor, 16x2 LCD, Brotplatine.
Software: Arduino jeden Abend
Schaltplan & Arbeitserklärung
Nachdem wir den Header aufgerufen haben, müssen wir uns keine Sorgen mehr machen, um die Kommunikation zwischen Arduino Uno und dem BMP180-Sensor herzustellen. Wir können einfach spezielle Funktionen aufrufen, die das für uns erledigen. Wir müssen nur ein LCD initialisieren und die von SENSOR aufgerufenen Werte darauf anzeigen.
Im 16x2-LCD gibt es insgesamt 16 Pins, wenn eine Hintergrundbeleuchtung vorhanden ist. Wenn keine Hintergrundbeleuchtung vorhanden ist, gibt es insgesamt 14 Pins. Man kann die Gegenlichtstifte mit Strom versorgen oder belassen. Nun in den 14 Stiften sind 8 Datenstifte (7-14 oder D0-D7), 2 Stromversorgungsstifte (1, 2 oder VSS & VDD oder GND & + 5 V), 3 rd Stift für die Kontraststeuerung (VEE-Kontrollen, wie dick die Zeichen sollten gezeigt) und 3 Steuerstifte (RS & RW & E).
In der Schaltung können Sie beobachten, dass ich nur zwei Steuerstifte genommen habe, das Kontrastbit und READ / WRITE werden nicht oft verwendet, so dass sie gegen Masse kurzgeschlossen werden können. Dies versetzt das LCD in den höchsten Kontrast- und Lesemodus. Wir müssen nur die ENABLE- und RS-Pins steuern, um Zeichen und Daten entsprechend zu senden.
Die Verbindungen, die für LCD hergestellt werden, sind unten angegeben:
PIN1 oder VSS gegen Masse
PIN2 oder VDD oder VCC auf +5V
PIN3 oder VEE gegen Masse (bietet maximalen Kontrast am besten für Anfänger)
PIN4 oder RS (Registerauswahl) zu PIN8 von ARDUINO UNO
PIN5 oder RW (Lesen / Schreiben) nach Masse (versetzt das LCD in den Lesemodus, erleichtert die Kommunikation für den Benutzer)
PIN6 oder E (Aktivieren) bis PIN9 von ARDUINO UNO
PIN11 oder D4 bis PIN10 von ARDUINO UNO
PIN12 oder D5 bis PIN11 von ARDUINO UNO
PIN13 oder D6 bis PIN12 von ARDUINO UNO
PIN14 oder D7 bis PIN13 von ARDUINO UNO
Mit der ARDUINO IDE kann der Benutzer das LCD im 4-Bit-Modus verwenden. Diese Art der Kommunikation ermöglicht es dem Benutzer, die Pin-Nutzung auf ARDUINO zu verringern, im Gegensatz zu anderen muss ARDUINO nicht separat für die Verwendung im 4-it-Modus programmiert werden, da ARDUINO standardmäßig für die Kommunikation im 4-Bit-Modus eingerichtet ist. In der Schaltung sehen Sie, dass wir 4-Bit-Kommunikation (D4-D7) verwendet haben.
Aus bloßer Beobachtung aus der obigen Tabelle verbinden wir also 6 Pins des LCD mit dem Controller, wobei 4 Pins Datenpins und 2 Pins zur Steuerung sind.
Um den BMP180 mit Arduino Uno zu verbinden, müssen wir Folgendes tun:
|
Zuerst müssen wir die Header-Datei aufrufen, um spezielle Funktionen zu aktivieren "#include".
Mit dieser Header-Datei können wir Funktionen aufrufen, die Werte direkt vom Sensor ohne Fuzz lesen können.
Jetzt müssen wir die C-Kommunikation aktivieren. Dies erfolgt durch Aufrufen von „#include
Wir können den Druck lesen, indem wir "String PRESSUREVALUE = String (bmp.readPressure ());" aufrufen. Hier wird der Druckwert vom Sensor abgelesen und in der Zeichenfolge „PRESSUREVALUE“ gespeichert.
Wir können die Temperatur lesen, indem wir "String TEMPARATUREVALUE = String (bmp.readTemperature ());" aufrufen. Hier wird der Druckwert vom Sensor abgelesen und in der Zeichenfolge „TEMPARATUREVALUE“ gespeichert.
Zuerst müssen wir die Header-Datei aktivieren ('#include
Zweitens müssen wir der Platine mitteilen, welchen LCD-Typ wir hier verwenden. Da wir so viele verschiedene Arten von LCD haben (wie 20 * 4, 16 * 2, 16 * 1 usw.). Hier werden wir ein 16 * 2-LCD an die UNO anschließen, damit wir 'lcd.begin (16,2);' erhalten. Für 16 * 1 erhalten wir 'lcd.begin (16,1);'.
In dieser Anweisung teilen wir der Karte mit, wo wir die Pins angeschlossen haben. Die angeschlossenen Pins sind in der Reihenfolge „RS, En, D4, D5, D6, D7“ darzustellen. Diese Pins sind korrekt darzustellen. Da wir RS mit PIN0 usw. verbunden haben, wie im Schaltplan gezeigt, stellen wir die Pin-Nummer auf der Platine als „LiquidCrystallcd (0,1,8,9,10,11);“ dar.
Nachdem oben nur noch Daten gesendet werden müssen, sollten die Daten, die auf dem LCD angezeigt werden müssen, als "cd.print (" Hallo Welt! ");" Geschrieben werden. Mit diesem Befehl zeigt das LCD 'Hallo Welt!' An.
Wie Sie sehen, müssen wir uns darüber keine Gedanken machen. Wir müssen nur initialisieren und die UNO ist bereit, Daten anzuzeigen. Wir müssen hier keine Programmschleife schreiben, um die Daten BYTE by BYTE zu senden. Nachdem wir den Wert vom Sensor abgelesen haben, werden wir ihn auf einem 16x2 LCD anzeigen.