- ADC0804 und Raspberry Pi:
- Erforderliche Komponenten:
- Schaltungserklärung:
- Programmiererklärung:
- Arbeiten:
Raspberry Pi ist ein Prozessor-basiertes Board mit ARM-Architektur, das für Elektronikingenieure und Bastler entwickelt wurde. Der PI ist derzeit eine der vertrauenswürdigsten Projektentwicklungsplattformen. Mit höherer Prozessorgeschwindigkeit und 1 GB RAM kann der PI für viele hochkarätige Projekte wie Bildverarbeitung und Internet der Dinge verwendet werden.
Um hochkarätige Projekte durchführen zu können, muss man die Grundfunktionen von PI verstehen. In diesen Tutorials werden wir alle grundlegenden Funktionen von Raspberry Pi behandeln. In jedem Tutorial werden wir eine der Funktionen von PI diskutieren. Am Ende dieser Raspberry Pi Tutorial-Reihe können Sie selbst hochkarätige Projekte durchführen. Gehen Sie die folgenden Tutorials durch:
- Erste Schritte mit Raspberry Pi
- Himbeer-Pi-Konfiguration
- LED Blinkend
- Raspberry Pi Button Interfacing
- Raspberry Pi PWM-Generation
- Steuerung des Gleichstrommotors mit Raspberry Pi
- Schrittmotorsteuerung mit Raspberry Pi
- Schnittstellen-Schieberegister mit Raspberry Pi
In diesem Tutorial werden wir einen ADC-Chip (Analog to Digital Conversion) an Raspberry Pi anschließen. Wir kennen alle Parameter von Analog, dh sie variieren kontinuierlich im Laufe der Zeit. Angenommen, für eine Instanztemperatur des Raums ändert sich die Raumtemperatur kontinuierlich mit der Zeit. Diese Temperatur ist mit Dezimalzahlen versehen. In der digitalen Welt gibt es jedoch keine Dezimalzahlen, daher müssen wir den analogen Wert in den digitalen Wert umwandeln. Dieser Konvertierungsprozess wird durch ADC-Technik durchgeführt. Weitere Informationen zu ADC finden Sie hier: Einführung in ADC0804
ADC0804 und Raspberry Pi:
Normale Controller haben ADC-Kanäle, aber für PI sind intern keine ADC-Kanäle vorgesehen. Wenn wir also analoge Sensoren anschließen möchten, benötigen wir eine ADC-Konvertierungseinheit. Zu diesem Zweck werden wir ADC0804 mit Raspberry Pi verbinden.
ADC0804 ist ein Chip zur Umwandlung von analogen Signalen in digitale 8-Bit-Daten. Dieser Chip ist eine der beliebtesten Serien von ADC. Es ist eine 8-Bit-Konvertierungseinheit, also haben wir Werte oder 0 bis 255 Werte. Bei einer Messspannung von maximal 5 V ändert sich jede 19,5 mV. Unten ist die Pinbelegung von ADC0804:
Eine weitere wichtige Sache ist, dass der ADC0804 mit 5 V arbeitet und daher einen Ausgang in einem 5-V-Logiksignal liefert. Bei einem 8-Pin-Ausgang (der 8 Bit darstellt) liefert jeder Pin einen + 5 V-Ausgang, um die Logik '1' darzustellen. Das Problem ist also, dass die PI-Logik +3,3 V hat, sodass Sie dem + 3,3-V-GPIO-Pin von PI keine +5-V-Logik geben können. Wenn Sie einen GPIO-Pin von PI mit +5 V versorgen, wird die Karte beschädigt.
Um den Logikpegel von +5 V zu verringern, verwenden wir eine Spannungsteilerschaltung. Wir haben die Spannungsteilerschaltung bereits besprochen und sie zur weiteren Klärung untersucht. Wir werden zwei Widerstände verwenden, um die + 5V-Logik in 2 * 2,5V-Logik zu unterteilen. Nach der Division geben wir PI + 2,5 V Logik. Wenn also die logische '1' von ADC0804 dargestellt wird, sehen wir + 2,5 V am PI GPIO-Pin anstelle von + 5 V.
Erfahren Sie hier mehr über die GPIO-Pins von Raspberry Pi und lesen Sie unsere vorherigen Tutorials.
Erforderliche Komponenten:
Hier verwenden wir Raspberry Pi 2 Model B mit Raspbian Jessie OS. Alle grundlegenden Hardware- und Softwareanforderungen wurden bereits erläutert. Sie können sie in der Raspberry Pi-Einführung nachschlagen.
- Verbindungsstifte
- 220Ω oder 1KΩ Widerstand (17 Stück)
- 10K Topf
- 0,1µF Kondensator (2 Stück)
- ADC0804 IC
- Brotbrett
Schaltungserklärung:
Es arbeitet mit einer Versorgungsspannung von +5 V und kann einen variablen Spannungsbereich im Bereich von 0 bis 5 V messen.
Die Anschlüsse für die Verbindung von ADC0804 mit Raspberry PI sind im obigen Schaltplan dargestellt.
Der ADC hat immer viel Rauschen. Dieses Rauschen kann die Leistung stark beeinträchtigen. Daher verwenden wir einen 0,1-uF-Kondensator für die Rauschfiltration. Ohne dies wird es viele Schwankungen am Ausgang geben.
Der Chip arbeitet mit einem RC-Oszillatortakt (Resistor-Capacitor). Wie im Schaltplan gezeigt, bilden C2 und R20 eine Uhr. Das Wichtigste dabei ist, dass der Kondensator C2 für eine höhere ADC-Umwandlungsrate auf einen niedrigeren Wert geändert werden kann. Bei höherer Geschwindigkeit nimmt jedoch die Genauigkeit ab. Wenn die Anwendung eine höhere Genauigkeit erfordert, wählen Sie den Kondensator mit höherem Wert und für höhere Geschwindigkeit den Kondensator mit niedrigerem Wert.
Programmiererklärung:
Sobald alles gemäß Schaltplan angeschlossen ist, können wir den PI einschalten, um das Programm in PYHTON zu schreiben.
Wir werden über einige Befehle sprechen, die wir im PYHTON-Programm verwenden werden.
Wir werden die GPIO-Datei aus der Bibliothek importieren. Mit der folgenden Funktion können wir die GPIO-Pins von PI programmieren. Wir benennen auch "GPIO" in "IO" um. Wenn wir also im Programm auf GPIO-Pins verweisen möchten, verwenden wir das Wort "IO".
importiere RPi.GPIO als IO
Manchmal, wenn die GPIO-Pins, die wir verwenden möchten, andere Funktionen ausführen. In diesem Fall erhalten wir während der Ausführung des Programms Warnungen. Der folgende Befehl weist den PI an, die Warnungen zu ignorieren und mit dem Programm fortzufahren.
IO.setwarnings (False)
Wir können die GPIO-Pins von PI entweder anhand der Pin-Nummer an Bord oder anhand ihrer Funktionsnummer referenzieren. Wie 'PIN 29' auf der Karte ist 'GPIO5'. Also sagen wir hier entweder, dass wir den Pin hier durch '29' oder '5' darstellen werden.
IO.setmode (IO.BCM)
Wir setzen 8 Pins als Eingangspins. Wir werden 8 Bit ADC-Daten durch diese Pins erkennen.
IO.setup (4, IO.IN) IO.setup (17, IO.IN) IO.setup (27, IO.IN) IO.setup (22, IO.IN) IO.setup (5, IO.IN) IO.setup (6, IO.IN) IO.setup (13, IO.IN) IO.setup (19, IO.IN)
Wenn die Bedingung in geschweiften Klammern erfüllt ist, werden die Anweisungen in der Schleife einmal ausgeführt. Wenn also der GPIO-Pin 19 hoch geht, werden die Anweisungen innerhalb der IF-Schleife einmal ausgeführt. Wenn der GPIO-Pin 19 nicht hoch geht, werden die Anweisungen innerhalb der IF-Schleife nicht ausgeführt.
if (IO.input (19) == True):
Der folgende Befehl wird als Forever-Schleife verwendet. Mit diesem Befehl werden die Anweisungen in dieser Schleife kontinuierlich ausgeführt.
Während 1:
Weitere Erläuterungen zum Programm finden Sie im folgenden Codeabschnitt.
Arbeiten:
Nachdem Sie das Programm geschrieben und ausgeführt haben, wird auf dem Bildschirm '0' angezeigt. '0' bedeutet 0 Volt am Eingang.
Wenn wir den mit dem Chip verbundenen 10K-Pot einstellen, sehen wir die Änderung der Werte auf dem Bildschirm. Die Werte auf dem Bildschirm werden kontinuierlich gescrollt. Dies sind die von PI gelesenen digitalen Werte.
Sagen wir, wenn wir den Pot auf den Mittelpunkt bringen, haben wir + 2,5 V am ADC0804-Eingang. Wir sehen also 128 auf dem Bildschirm, wie unten gezeigt.
Für + 5V Analogwert haben wir 255.
Durch Variieren des Potis variieren wir also die Spannung von 0 bis + 5 V am ADC0804-Eingang. Mit diesem PI lesen Sie Werte von 0-255. Die Werte werden auf dem Bildschirm gedruckt.
Also haben wir ADC0804 mit Raspberry Pi verbunden.