Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Raamatukogu i2c pcf8591 IC kasutamiseks koos arduino ja esp8266 -ga.
See IC võib juhtida (kuni 4) analoogsisendit ja/või 1 analoogväljundit, näiteks mõõta pinget, lugeda termistori väärtust või tuhmuda.
Oskab lugeda analoogväärtust ja kirjutada analoogväärtust ainult 2 juhtmega (ideaalne ESP-01 jaoks).
Püüan lihtsustada selle IC kasutamist minimaalse toimingute komplektiga.
Värskendatud versiooni leiate minu saidilt
Samm: kuidas I2c töötab
I2C töötab kahe juhtmega, SDA (andmeside) ja SCL (kellajoon).
Mõlemad liinid on avatud äravooluga, kuid takistitega üles tõmmatud.
Tavaliselt on liinil üks peremees ja üks või mitu orja, kuigi neid võib olla mitu, kuid sellest räägime hiljem.
Nii meistrid kui ka orjad saavad andmeid edastada või vastu võtta, seetõttu võib seade olla ühes neljast olekust: põhisaatmine, ülemvastuvõtmine, alamsaade, alamvastuvõtt.
2. samm:
Minu raamatukogu leiate siit.
Alla laadida.
Klõpsake paremas ülanurgas nuppu DOWNLOADS (Laadi alla), nimetage tihendamata kaust ümber PCF8591.
Kontrollige, kas kaust PCF8591 sisaldab PCF8591.cpp ja PCF8591.h.
Asetage raamatukogu kaust PCF8591 oma / libraries / kausta.
Teil võib tekkida vajadus luua raamatukogude alamkaust, kui see on teie esimene kogu.
Taaskäivitage IDE.
3. samm: kasutamine
Konstruktor: peate sisestama i2c aadressi (aadressi kontrollimiseks kasutage seda juhendit I2cScanner)
PCF8591 (aadress uint8_t);
esp8266 jaoks, kui soovite määrata SDA ja SCL -pin, kasutage seda:
PCF8591 (aadress uint8_t, uint8_t sda, uint8_t scl);
Samm: lugege väärtust
IC -l, nagu pildil näha, on 4 analoogsisendit ja 1 analoogväljund.
Nii et saate lugeda kõiki analoogsisendeid ühes edastuses (väärtus on 0 kuni 255):
PCF8591:: AnalogInput ai = pcf8591.analogReadAll ();
Jadajälg (ai.ain0); Serial.print (" -"); Seeriaprint (ai.ain1); Serial.print (" -"); Seeriatrükk (ai.ain2); Serial.print (" -"); Serial.println (ai.ain3);
kui soovite lugeda ühte analoogsisendit või kanalit:
int ana = pcf8591.analogRead (AIN0); // loe analoogi 0
Samm: lugege kanalit Vale
Sellel IC -l on mitut tüüpi lugemine ja saate kasutada analoogsisendit või analoogkanalit (kui kasutate ühe lugemisega analoogsisendit ja kanal on piltidel).
Näiteks kanali 0 väärtuse lugemiseks kahes diferentsiaalsisendis peate tegema järgmist.
int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // loe analoogi 0
Samm: kirjutage väärtus
Kui soovite kirjutada analoogväärtuse, peate seda tegema (väärtus on 0 kuni 255):
pcf8591.analogWrite (128);
Samm: lisafunktsioonid
Lisavõimalus on kirjutamispinge lugemine: Pinge arvutamiseks peate edastama mõne parameetri:
- mikrokontrollerReferenceVoltage: saada pinge mikrokontrolleri pingest (ainult AVR nr esp8266 esp 3.3v jaoks fikseeritud)
- referenceVoltage: kui mikrokontrollerReferenceVoltage false võtab selle väärtuse Käsk on:
tühine pingeWrite (ujuki väärtus, bool mikrokontrollerReferenceVoltage = true, float referenceVoltage = 5,0);
ujukpingeRead (uint8_t analoogPin, bool mikrokontrollerReferenceVoltage = true, float referenceVoltage = 5.0);
Näide on järgmine:
pcf8591.voltageWrite (2.7); // 2.7 volti väljund
viivitus (3000);
float ana0V = pcf8591.voltageRead (AIN0); // Loe pinget analoogist 0
Serial.println (ana0V);
Samm 8: Ühendusskeemi näited
9. samm: aitäh
i2c projektisari (kollektsioon):
- Temperatuuri niiskuse andur
- Analooglaiendaja
- Digitaalne laiendaja
- LCD ekraan