Inhaltsverzeichnis:
- Schritt 1:
- Schritt 2: Konfigurationsregister
- Schritt 3: Datenregister
- Schritt 4: Single-Ended-ADC-Modus
- Schritt 5:
- Schritt 6: Differenzial-ADC-Modus
Video: Arduino und der 16-Bit-ADC TI ADS1110 - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
In diesem Tutorial untersuchen wir die Verwendung von Arduino für die Arbeit mit dem Texas Instruments ADS1110 – einem unglaublich kleinen, aber nützlichen 16-Bit-Analog-Digital-Wandler-IC.
Es kann zwischen 2,7 und 5,5 V betrieben werden, sodass es auch für Arduino Due und andere Entwicklungsboards mit niedrigerer Spannung geeignet ist. Bevor Sie fortfahren, laden Sie bitte das Datenblatt (pdf) herunter, da es in diesem Tutorial nützlich ist und auf das Bezug genommen wird. Der ADS1110 bietet Ihnen die Möglichkeit eines genaueren ADCs als die 10-Bit-ADCs des Arduino – und er ist relativ einfach zu bedienen. Es ist jedoch nur als blankes Teil in SOT23-6 verfügbar.
Schritt 1:
Die gute Nachricht ist, dass Sie den ADS1110 auf einem sehr praktischen Breakout-Board montiert bestellen können. Der ADS1110 verwendet den I2C-Bus zur Kommunikation. Und da es nur sechs Pins gibt, können Sie die Busadresse nicht einstellen, sondern können aus sechs Varianten des ADS1110 wählen – jede mit eigener Adresse (siehe Seite zwei des Datenblatts).
Wie Sie auf dem Foto oben sehen können, ist unsere mit „EDO“gekennzeichnet, was der Busadresse 1001000 oder 0x48h entspricht. Und bei den Beispielschaltungen haben wir 10kΩ Pullup-Widerstände auf dem I2C-Bus verwendet.
Sie können den ADS1110 entweder als Single-Ended- oder als Differential-ADC verwenden – aber zuerst müssen wir das Konfigurationsregister, das zur Steuerung verschiedener Attribute verwendet wird, und das Datenregister untersuchen.
Schritt 2: Konfigurationsregister
Blättern Sie zu Seite elf des Datenblatts. Das Konfigurationsregister ist ein Byte groß, und da der ADS1110 bei einem Aus- und Wiedereinschalten zurückgesetzt wird, müssen Sie das Register zurücksetzen, wenn Ihre Anforderungen von den Standardeinstellungen abweichen. Das Datenblatt beschreibt es recht ordentlich… Bit 0 und 1 bestimmen die Verstärkungseinstellung für den PGA (Programmable Gain Amplifier).
Wenn Sie nur Spannungen messen oder experimentieren, lassen Sie diese bei einer Verstärkung von 1 V / V auf Null. Als nächstes wird die Datenrate für den ADS1110 mit den Bits 2 und 3 gesteuert. Wenn Sie Continuous Sampling eingeschaltet haben, bestimmt dies die Anzahl der Samples pro Sekunde, die vom ADC genommen werden.
Nach einigen Experimenten mit einem Arduino Uno stellten wir fest, dass die vom ADC zurückgegebenen Werte bei Verwendung der schnellsten Rate etwas falsch waren. Belassen Sie es also bei 15 SPS, sofern nicht anders erforderlich. Bit 4 setzt entweder kontinuierliches Sampling (0) oder einmaliges Sampling (1). Ignorieren Sie die Bits 5 und 6, sie werden jedoch immer auf 0 gesetzt.
Schließlich Bit 7 – wenn Sie sich im einmaligen Sampling-Modus befinden, fordert das Setzen auf 1 ein Sample an – und das Lesen zeigt Ihnen an, ob die zurückgegebenen Daten neu (0) oder alt (1) sind. Sie können überprüfen, ob der gemessene Wert ein neuer Wert ist – wenn das erste Bit des Konfigurationsbytes, das nach den Daten folgt, 0 ist, ist es neu. Wenn 1 zurückgegeben wird, ist die ADC-Konvertierung noch nicht abgeschlossen.
Schritt 3: Datenregister
Da der ADS1110 ein 16-Bit-ADC ist, gibt er die Daten über zwei Bytes zurück – und dann folgt der Wert des Konfigurationsregisters. Wenn Sie also drei Bytes anfordern, kommt das ganze Los zurück. Die Daten liegen im „Zweierkomplement“-Format vor, einer Methode zur Verwendung von vorzeichenbehafteten Zahlen mit Binärzahlen.
Das Konvertieren dieser beiden Bytes erfolgt durch einige einfache Mathematik. Beim Abtasten mit 15 SPS liegt der vom ADS1110 zurückgegebene Wert (nicht die Spannung) zwischen -32768 und 32767. Das höhere Byte des Werts wird mit 256 multipliziert, dann zum niedrigeren Byte addiert – das dann mit 2,048 multipliziert wird und schließlich geteilt durch 32768. Keine Panik, wie wir dies in der kommenden Beispielskizze tun.
Schritt 4: Single-Ended-ADC-Modus
In diesem Modus können Sie eine Spannung zwischen Null und 2,048 V ablesen (was zufällig auch die eingebaute Referenzspannung für den ADS1110 ist). Die Beispielschaltung ist einfach (aus dem Datenblatt).
Vergessen Sie nicht die 10kΩ Pullup-Widerstände am I2C-Bus. Die folgende Skizze verwendet den ADS1110 im Standardmodus und gibt einfach die gemessene Spannung zurück:
// Beispiel 53.1 - ADS1110 einseitiges Voltmeter (0~2.048VDC) #include "Wire.h" #define ads1110 0x48 float voltage, data; Byte Highbyte, Lowbyte, KonfigRegister; Void setup () { Serial.begin (9600); Wire.begin(); aufrechtzuerhalten. Void Schleife () { Wire.requestFrom (ads1110, 3); while(Wire.available()) // sicherstellen, dass alle Daten in { Highbyte = Wire.read(); // High-Byte * B11111111 Lowbyte = Wire.read (); // Low-Byte-ConfigRegister = Wire.read (); }
Daten = Highbyte * 256;
Daten = Daten + Lowbyte; Serial.print ("Daten >>"); Serial.println (Daten, DEC); Serial.print ("Spannung >>"); Spannung = Daten * 2,048; Spannung = Spannung / 32768,0; Serial.print (Spannung, DEC); Serial.println("V"); Verzögerung (1000); }
Schritt 5:
Schließen Sie nach dem Hochladen das zu messende Signal an und öffnen Sie den seriellen Monitor – Sie erhalten etwas Ähnliches wie das in diesem Schritt gezeigte serielle Monitorbild.
Wenn Sie die Verstärkung des internen Verstärkers mit programmierbarer Verstärkung des ADC ändern müssen, müssen Sie ein neues Byte in das Konfigurationsregister schreiben mit:
Wire.beginTransmission(ads1110);Wire.write(Konfigurationsbyte); Wire.endTransmission();
bevor Sie die ADC-Daten anfordern. Dies wäre 0x8D, 0x8E oder 0x8F für Gain-Werte von 2, 4 bzw. 8 – und verwenden Sie 0x8C, um den ADS1110 auf die Standardwerte zurückzusetzen.
Schritt 6: Differenzial-ADC-Modus
In diesem Modus können Sie die Differenz zwischen zwei Spannungen ablesen, die jeweils zwischen Null und 5 V fallen. Die Beispielschaltung ist einfach (aus dem Datenblatt).
Wir müssen hier (und im Datenblatt) beachten, dass der ADS1110 an keinem der Eingänge negative Spannungen akzeptieren kann. Sie können die vorherige Skizze für die gleichen Ergebnisse verwenden – und die resultierende Spannung ist der Wert von Vin- subtrahiert von Vin+. Wenn Sie beispielsweise 2 V an Vin+ und 1 V an Vin- hätten, wäre die resultierende Spannung 1 V (mit der Verstärkung auf 1).
Wir hoffen noch einmal, dass Sie dies interessant und möglicherweise nützlich fanden. Dieser Beitrag wird Ihnen von pmdway.com bereitgestellt - alles für Macher und Elektronik-Enthusiasten, mit kostenloser Lieferung weltweit.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
ESP-01 Programmier-Hack - der Einfache :): 6 Schritte
ESP-01 Programmierer Hack - der Einfache :): Hallo ESPer, In diesem anweisbaren zeige ich Ihnen einen einfachen Hack, um einen Programmierer für ESP-01 / ESP8266-01 / ES-01-Modul zu machen. Die meisten von uns haben ein Arduino-Board oder FTDI USB-TTL-Geräte als Programmierer für dieses Modul verwendet. Beide Methoden funktionieren gut. Aber t
Der Sanity Check: 5 Schritte (mit Bildern)
Der Sanity Check: Bei diesem Projekt dreht sich alles um die Gesundheit oder darum, dass er regelmäßig überprüft wird. Der beste Weg, dies zu erreichen, besteht darin, eine Maske zu bauen, deren Augen zufällig rot leuchten. Oft genug, damit es auffällt, aber spärlich genug, um die Leute zweifeln zu lassen
So erstellen Sie einen Smart Pot mit NodeMCU, der von der App gesteuert wird – wikiHow
So erstellen Sie einen Smart Pot mit NodeMCU, der von einer App gesteuert wird: In dieser Anleitung bauen wir einen Smart Pot, der von einem ESP32 und einer Anwendung für Smartphones (iOS und Android) gesteuert wird. Wir verwenden NodeMCU (ESP32) für die Konnektivität und die Blynk-Bibliothek für das Cloud-IoT und die Anwendung auf dem Smartphone. Endlich haben wir