In diesem Projekt verwenden wir das Konzept von ADC (Analog to Digital Conversion) in ARDUINO UNO. Wir werden einen Hall-Effekt-Sensor und Arduino uno verwenden, um die Feldstärke eines Magneten zu messen. Der Sensor, den wir hier verwendet haben, ist UGN3503U. Dies ist ein Hallsensor, der die Magnetfeldstärke erfasst und am Ausgang eine variierende Spannung proportional zur Feldstärke liefert. Dieser Sensor erfasst die Feldstärke in den Einheiten ' GAUSS '.
Mit diesem Sensor haben wir also eine Feldstärke als variierende Spannung. Mit der ADC-Funktion wandeln wir diese Spannung in eine Zahl um. Diese Zahl steht für die Feldstärke und wird auf dem LCD angezeigt.
Arduino hat sechs ADC-Kanäle. In diesen kann einer oder alle von ihnen als Eingänge für die analoge Spannung verwendet werden. Der UNO-ADC hat eine Auflösung von 10 Bit (also die ganzzahligen Werte von (0- (2 ^ 10) 1023)). Dies bedeutet, dass Eingangsspannungen zwischen 0 und 5 Volt auf ganzzahlige Werte zwischen 0 und 1023 abgebildet werden. Also für jede (5/1024 = 4,9 mV) pro Einheit.
In all dem werden wir ein Potentiometer oder einen Poti an den 'A0'-Kanal anschließen und das ADC-Ergebnis in einer einfachen Anzeige anzeigen. Die einfachen Anzeigen sind 16x1- und 16x2-Anzeigeeinheiten. Die 16x1-Anzeigeeinheit hat 16 Zeichen und befindet sich in einer Zeile. Die 16x2 wird 32 Zeichen insgesamt 16in 1 st Linie und weitere 16 in 2 nd Linie. Hier muss man verstehen, dass in jedem Zeichen 5x10 = 50 Pixel vorhanden sind. Um ein Zeichen anzuzeigen, müssen alle 50 Pixel zusammenarbeiten, aber wir müssen uns darüber keine Gedanken machen, da es in der Anzeigeeinheit einen anderen Controller (HD44780) gibt, der das ausführt Aufgabe der Steuerung der Pixel (Sie können es in der LCD-Einheit sehen, es ist das blaue Auge auf der Rückseite).
Erforderliche Komponenten
Hardware: ARDUINO UNO, Netzteil (5 V), JHD_162ALCD (16x2LCD), 100 uF Kondensator (2 Stück), UGn3503U.
Software: Arduino IDE (Arduino Nightly)
Schaltplan und Erklärung
Die obige Abbildung zeigt den Schaltplan für die Magnetfeldmessung mit Arduino uno.
Im 16x2-LCD gibt es insgesamt 16 Pins, wenn eine Hintergrundbeleuchtung vorhanden ist. Wenn keine Hintergrundbeleuchtung vorhanden ist, gibt es 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 obigen Schaltung können Sie beobachten, dass ich nur zwei Steuerstifte verwendet habe. Das Kontrastbit und READ / WRITE werden nicht oft verwendet, sodass 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) zu 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.
Arbeiten
Um ein LCD an die ARDUINO UNO anzuschließen, müssen wir einige Dinge wissen.
|
Zunächst haben die UNO ADC-Kanäle einen Standardreferenzwert von 5V. Dies bedeutet, dass wir für die ADC-Wandlung an jedem Eingangskanal eine maximale Eingangsspannung von 5 V angeben können. Da einige Sensoren Spannungen von 0 bis 2,5 V liefern, erhalten wir bei einer 5-V-Referenz eine geringere Genauigkeit, sodass wir eine Anweisung haben, mit der wir diesen Referenzwert ändern können. Zum Ändern des Referenzwerts haben wir also ("analogReference ();")
Standardmäßig erhalten wir die maximale ADC-Auflösung der Karte von 10 Bit. Diese Auflösung kann mithilfe des Befehls ("analogReadResolution (bits);") geändert werden. Diese Auflösungsänderung kann in einigen Fällen nützlich sein.
Wenn nun die obigen Bedingungen auf Standard gesetzt sind, können wir den Wert vom ADC des Kanals '0' lesen, indem wir direkt die Funktion "analogRead (Pin)" aufrufen. Hier steht "Pin" für den Pin, an dem wir das analoge Signal angeschlossen haben. In diesem Fall wäre dies der Fall sei "A0". Der Wert von ADC kann als „int ADCVALUE = analogRead (A0); ”, Durch diesen Befehl wird der Wert nach ADC in der Ganzzahl“ ADCVALUE ”gespeichert.
Lassen Sie uns JETZT ein wenig über 16x2 LCD sprechen. Zuerst müssen wir die Header-Datei aktivieren ('#include
Zweitens müssen wir der Platine mitteilen, welchen LCD-Typ wir hier verwenden. Da haben wir so viele verschiedene Arten von LCD (wie 20x4, 16x2, 16x1 usw.). Hier werden wir ein 16x2-LCD an die UNO anschließen, damit wir 'lcd.begin (16, 2);' erhalten. Für 16x1 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 „LiquidCrystal lcd (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.
Sobald ein Magnet in die Nähe des Sensors gebracht wird, stellt der Sensor eine Spannung am Ausgang dar, die proportional zum Feld ist. Dieser Wert wird von Uno aufgenommen und im LCD angezeigt. Die Arbeitsweise dieses Magnetfeldmessprojekts wird durch den folgenden C-Code näher erläutert.