Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Knižnica na použitie i2c pcf8591 IC s arduino a esp8266.
Tento IC môže ovládať (do 4) analógový vstup a/alebo 1 analógový výstup, ako je napríklad meranie napätia, čítanie hodnoty termistora alebo stmievanie LED.
Dokáže čítať analógovú hodnotu a zapisovať analógovú hodnotu iba pomocou 2 drôtov (ideálne pre ESP-01).
Snažím sa zjednodušiť používanie tohto IC s minimálnym súborom operácií.
Aktualizovanú verziu nájdete na mojom webe
Krok 1: Ako funguje I2c
I2C pracuje s dvoma vodičmi, SDA (dátový riadok) a SCL (hodinový riadok).
Obe tieto vedenia sú otvorené, ale sú vyťahované odpormi.
Na linke je spravidla jeden pán a jeden alebo viacerí otroci, aj keď môže byť viac majstrov, ale o tom neskôr.
Master aj slave môžu prenášať alebo prijímať údaje, preto môže byť zariadenie v jednom z týchto štyroch stavov: hlavný prenos, hlavný príjem, podradený prenos, podriadený príjem.
Krok 2:
Moju knižnicu nájdete tu.
Stiahnuť.
Kliknite na tlačidlo STIAHNUTIE v pravom hornom rohu a premenujte nekomprimovaný priečinok PCF8591.
Skontrolujte, či priečinok PCF8591 obsahuje PCF8591.cpp a PCF8591.h.
Umiestnite priečinok knižnice PCF8591 do priečinka / libraries /.
Ak je to vaša prvá knižnica, možno budete musieť vytvoriť podpriečinok knižníc.
Reštartujte IDE.
Krok 3: Použitie
Konštruktor: musíte zadať adresu i2c (na kontrolu adresy použite túto príručku I2cScanner)
PCF8591 (adresa uint8_t);
pre esp8266, ak chcete špecifikovať pin SDA e SCL, použite toto:
PCF8591 (adresa uint8_t, uint8_t sda, uint8_t scl);
Krok 4: Prečítajte si hodnotu
IC, ako vidíte na obrázku, má 4 analógové vstupy a 1 analógový výstup.
Ak chcete teda prečítať všetky analógové vstupy jedným prenosom, môžete to urobiť (hodnota je od 0 do 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);
ak chcete prečítať jeden analógový vstup alebo kanál:
int ana = pcf8591.analogRead (AIN0); // prečítaj analóg 0
Krok 5: Prečítajte si Vale z kanála
Tento IC má viac typov čítania a môžete použiť analógový vstup alebo analógový kanál (keď použijete jeden čítací analógový vstup a kanál je na obrázkoch).
Ak napríklad chcete prečítať hodnotu kanála 0 v dvoch diferenciálnych vstupoch, musíte urobiť:
int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // prečítaj analóg 0
Krok 6: Napíšte hodnotu
Ak chcete napísať analógovú hodnotu, musíte to urobiť (hodnota je od 0 do 255):
pcf8591.analogWrite (128);
Krok 7: Ďalšie funkcie
Ďalšou funkciou je čítanie zapisovacieho napätia: Na výpočet napätia musíte odovzdať určitý parameter:
- mikrokontrolérReferenceVoltage: získajte napätie z napätia mikrokontroléra (iba AVR č. esp8266 pre pevný disk 3,3v)
- referenceVoltage: if microcontrollerReferenceVoltage false take this valuePríkaz sú:
neplatné napätie
float voltageRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5,0);
Príkladom je:
pcf8591.voltageWrite (2.7); // Výstup 2,7 voltov
oneskorenie (3000);
float ana0V = pcf8591.voltageRead (AIN0); // Prečítajte napätie z analógového 0
Serial.println (ana0V);
Krok 8: Príklady schémy pripojenia
Krok 9: Ďakujem
Séria projektov i2c (zbierka):
- Teplotný snímač vlhkosti
- Analógový expandér
- Digitálny expandér
- Displej LCD