Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Kirjasto käyttää i2c pcf8591 IC: tä arduinon ja esp8266: n kanssa.
Tämä IC voi ohjata (kunnes 4) analogista tuloa ja/tai 1 analogista lähtöä, kuten mitata jännitettä, lukea termistorin arvon tai himmentää ledin.
Voi lukea analogisen arvon ja kirjoittaa analogisen arvon vain 2 johdolla (täydellinen ESP-01: lle).
Yritän yksinkertaistaa tämän IC: n käyttöä minimaalisella toiminnalla.
Löydät päivitetyn version sivustoltani
Vaihe 1: Miten I2c toimii
I2C toimii kahdella johdolla, SDA (datalinja) ja SCL (kellolinja).
Molemmat linjat ovat avoimia tyhjennyksiä, mutta ne on vedetty ylös vastuksilla.
Yleensä linjalla on yksi isäntä ja yksi tai useampi orja, vaikka isäntiä voi olla useita, mutta puhumme siitä myöhemmin.
Sekä isännät että orjat voivat lähettää tai vastaanottaa dataa, joten laite voi olla jossakin näistä neljästä tilasta: isäntälähetys, isäntävastaanotto, orjalähetys, orjavastaanotto.
Vaihe 2:
Kirjastoni löydät täältä.
Ladata.
Napsauta LATAA -painiketta oikeassa yläkulmassa ja nimeä pakkaamaton kansio uudelleen PCF8591.
Tarkista, että PCF8591 -kansio sisältää PCF8591.cpp ja PCF8591.h.
Aseta PCF8591 -kirjastokansio / libraries / kansio.
Sinun on ehkä luotava kirjastojen alikansio, jos se on ensimmäinen kirjasto.
Käynnistä IDE uudelleen.
Vaihe 3: Käyttö
Rakentaja: sinun on annettava i2c: n osoite (voit tarkistaa osoitteen käyttämällä tätä opasta I2cScanner)
PCF8591 (uint8_t -osoite);
esp8266: lle, jos haluat määrittää SDA e SCL -tapin, käytä tätä:
PCF8591 (uint8_t -osoite, uint8_t sda, uint8_t scl);
Vaihe 4: Lue arvo
IC: ssä, kuten kuvassa näkyy, on 4 analogista tuloa ja 1 analoginen lähtö.
Joten voit lukea kaikki analogiset tulot yhdellä lähetyksellä, jonka voit tehdä (arvo on 0 - 255):
PCF8591:: AnalogInput ai = pcf8591.analogReadAll ();
Sarjajälki (ai.ain0); Serial.print (" -"); Sarjajälki (ai.ain1); Serial.print (" -"); Sarjajälki (ai.ain2); Serial.print (" -"); Sarja.println (ai.ain3);
jos haluat lukea yhden analogisen tulon tai kanavan:
int ana = pcf8591.analogRead (AIN0); // lue analoginen 0
Vaihe 5: Lue Vale kanavalta
Tällä IC: llä on useita luentotyyppejä, ja voit käyttää analogista tuloa tai analogista kanavaa (kun käytät yhden lukun analogista tuloa ja kanava on kuvissa).
Esimerkiksi kanavan 0 arvon lukemiseksi kahdesta differentiaalitulosta sinun on tehtävä:
int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // lue analoginen 0
Vaihe 6: Kirjoita arvo
Jos haluat kirjoittaa analogisen arvon, sinun on tehtävä se (arvo on 0 - 255):
pcf8591.analogWrite (128);
Vaihe 7: Lisäominaisuudet
Lisäominaisuus on kirjoitusjännitteen lukeminen: Jännitteen laskemiseksi sinun on annettava jokin parametri:
- microcontrollerReferenceVoltage: hanki jännite mikrokontrollerin jännitteestä (vain AVR no esp8266 for ESP 3.3v kiinteä)
- referenceVoltage: if microcontrollerReferenceVoltage false ota tämä arvo Komento ovat:
tyhjä jännite Kirjoita (kelluva arvo, bool -mikrokontrolleriReferenceVoltage = true, float referenceVoltage = 5.0);
kelluva jänniteLue (uint8_t analoginen Pin, bool -mikrokontrolleriReferenceVoltage = true, float referenceVoltage = 5.0);
Esimerkki on:
pcf8591.voltageWrite (2.7); // 2.7 Volttien lähtö
viive (3000);
float ana0V = pcf8591.voltageRead (AIN0); // Lue jännite analogista 0
Sarja.println (ana0V);
Vaihe 8: Esimerkkejä liitäntäkaaviosta
Vaihe 9: Kiitos
i2c -projektisarja (kokoelma):
- Lämpötilan kosteusanturi
- Analoginen laajennin
- Digitaalinen laajennin
- LCD -näyttö