Inhaltsverzeichnis:
- Schritt 1: Wie I2c funktioniert
- Schritt 2:
- Schritt 3: Verwendung
- Schritt 4: Wert lesen
- Schritt 5: Vale vom Kanal lesen
- Schritt 6: Wert schreiben
- Schritt 7: Zusätzliche Funktionen
- Schritt 8: Beispiele für Verbindungsdiagramme
- Schritt 9: Danke
Video: PCF8591 (i2c Analog I/O Expander) Schnelle einfache Bedienung - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Bibliothek zur Verwendung von i2c PCf8591 IC mit Arduino und esp8266.
Dieser IC kann (bis zu 4) analoge Eingänge und/oder 1 analogen Ausgang steuern, wie Spannung messen, Thermistorwert lesen oder eine LED ausblenden.
Kann mit nur 2 Drähten Analogwerte lesen und Analogwerte schreiben (perfekt für ESP-01).
Ich versuche, die Verwendung dieses ICs mit einem minimalen Betriebsaufwand zu vereinfachen.
Sie finden die aktualisierte Version auf meiner Website
Schritt 1: Wie I2c funktioniert
I2C arbeitet mit seinen zwei Drähten, SDA (Datenleitung) und SCL (Taktleitung).
Beide Leitungen sind Open-Drain, werden aber mit Widerständen hochgezogen.
Normalerweise gibt es einen Master und einen oder mehrere Slaves an der Leitung, obwohl es mehrere Master geben kann, aber darüber werden wir später sprechen.
Sowohl Master als auch Slaves können Daten senden oder empfangen, daher kann sich ein Gerät in einem dieser vier Zustände befinden: Master senden, Master empfangen, Slave senden, Slave empfangen.
Schritt 2:
Hier finden Sie meine Bibliothek.
Herunterladen.
Klicken Sie oben rechts auf die Schaltfläche DOWNLOADS, benennen Sie den unkomprimierten Ordner PCF8591 um.
Überprüfen Sie, ob der Ordner PCF8591 PCF8591.cpp und PCF8591.h enthält.
Legen Sie den Bibliotheksordner PCF8591 in Ihren Ordner /libraries/.
Möglicherweise müssen Sie den Unterordner Bibliotheken erstellen, wenn es sich um Ihre erste Bibliothek handelt.
Starten Sie die IDE neu.
Schritt 3: Verwendung
Konstruktor: Sie müssen die Adresse von i2c angeben (um die Adresse zu überprüfen, verwenden Sie diese Anleitung I2cScanner)
PCF8591(uint8_t-Adresse);
für esp8266, wenn Sie den SDA- und SCL-Pin angeben möchten, verwenden Sie dies:
PCF8591(uint8_t-Adresse, uint8_t sda, uint8_t scl);
Schritt 4: Wert lesen
IC wie Sie im Bild sehen können, hat 4 analoge Eingänge und 1 analogen Ausgang.
Um alle analogen Eingänge in einer Übertragung zu lesen, können Sie Folgendes tun (der Wert liegt zwischen 0 und 255):
PCF8591::AnalogInput ai = pcf8591.analogReadAll();
Serial.print (ai.ain0); Serial.print (" - "); Serial.print (ai.ain1); Serial.print (" - "); Serial.print (ai.ain2); Serial.print (" - "); Serial.println (ai.ain3);
Wenn Sie einen einzelnen analogen Eingang oder Kanal lesen möchten:
int ana = pcf8591.analogRead(AIN0); // Analog 0 lesen
Schritt 5: Vale vom Kanal lesen
Dieser IC hat mehrere Lesearten und Sie können den Analogeingang oder den Analogkanal verwenden (wenn Sie einen einzelnen Lesekanal verwenden, sind der Analogeingang und der Kanal in den Bildern zu sehen).
Um beispielsweise den Wert von Kanal 0 in Zwei Differenzeingänge zu lesen, müssen Sie Folgendes tun:
int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // Analog 0 lesen
Schritt 6: Wert schreiben
Wenn Sie einen analogen Wert schreiben möchten, müssen Sie Folgendes tun (der Wert liegt zwischen 0 und 255):
pcf8591.analogWrite(128);
Schritt 7: Zusätzliche Funktionen
Eine zusätzliche Funktion ist das Lesen einer Schreibspannung: Für die Berechnung der Spannung müssen Sie einige Parameter übergeben:
- microcontrollerReferenceVoltage: Spannung von Mikrocontrollerspannung erhalten (nur AVR kein esp8266 für esp 3.3v behoben)
- referenceVoltage: Wenn der MikrocontrollerReferenceVoltage false ist, nehmen Sie diesen Wert anDie Befehle sind:
void voltageWrite (float value, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);
float voltageRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);
Ein Beispiel ist:
pcf8591.voltageWrite(2.7); // 2,7 Volt Ausgang
Verzögerung (3000);
float ana0V = pcf8591.voltageRead(AIN0); // Spannung von Analog 0 lesen
Serial.println (ana0V);
Schritt 8: Beispiele für Verbindungsdiagramme
Schritt 9: Danke
i2c-Projektreihe (Sammlung):
- Temperatur-Feuchtesensor
- Analoger Expander
- Digitaler Expander
- LCD Bildschirm
Empfohlen:
So erstellen Sie eine einfache Nintendo LABO-Zielübung – wikiHow
So erstellen Sie eine einfache Nintendo LABO-Zielübung: Meine Schwester und ich haben kürzlich einen Nintendo Switch gekauft. Natürlich haben wir auch ein paar Spiele dazu. Und einer davon war das Nintendo LABO Variety Kit. Dann bin ich schließlich über die Toy-Con-Garage gestolpert. Ich habe einiges ausprobiert und da habe ich
So erstellen Sie eine einfache Website mit Notepad – wikiHow
Wie erstelle ich eine einfache Website mit Notepad: Hat sich jemand gefragt, wie ich aus einem einfachen Schreibprogramm eine Website erstelle? Website nur mit Notizblock
Schnelle und einfache Möglichkeit, Ihren Sperrbildschirm in 6 einfachen Schritten zu ändern (Windows 8-10): 7 Schritte
Schnelle und einfache Möglichkeit, Ihren Sperrbildschirm in 6 einfachen Schritten zu ändern (Windows 8-10): Möchten Sie die Dinge auf Ihrem Laptop oder PC ändern? Möchten Sie eine Veränderung in Ihrer Atmosphäre? Befolgen Sie diese schnellen und einfachen Schritte, um den Sperrbildschirm Ihres Computers erfolgreich zu personalisieren
Schnelle und einfache Softswitches (für schnelles Prototyping): 5 Schritte
Schnelle und einfache Softswitches (für Quick Prototyping): Es gibt viele verschiedene Möglichkeiten, um Softswitches zu erstellen. Dieses anweisbare zeigt eine weitere Option eines sehr schnellen Prototyps für den weichen Schalter, bei dem ein Aluminiumband anstelle von leitfähigem Gewebe und massive Drähte anstelle eines leitfähigen Fadens verwendet werden, die bot
Inventar - Schnelle PC-Diagnose jetzt abgelöst, siehe unten: 6 Schritte
Inventar - Schnelle PC-Diagnose jetzt abgelöst, siehe unten: Wenn Sie jemals an einem PC arbeiten müssen, der sich nicht vor Ihnen befindet, benötigen Sie eine genaue Inventarisierung. Dieses instructable kam rein, weil ein Kollege Schwierigkeiten hat, einen Treiber für einen PC zu finden. Ich werde Aida32 Personal von http://majorgeeks.com verwenden