Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Biblioteka će koristiti i2c pcf8591 IC sa arduinom i esp8266.
Ovaj IC može upravljati (do 4) analognim ulazom i/ili 1 analognim izlazom, poput mjernog napona, očitavati vrijednost termistora ili gasiti LED diodu.
Može čitati analogne vrijednosti i pisati analogne vrijednosti sa samo 2 žice (savršeno za ESP-01).
Pokušavam pojednostaviti upotrebu ovog IC -a, uz minimalan skup operacija.
Ažuriranu verziju možete pronaći na mojoj web stranici
Korak 1: Kako I2c radi
I2C radi sa svoje dvije žice, SDA (podatkovna linija) i SCL (linija sata).
Obje ove linije su otvorene, ali su povučene otpornicima.
Obično je na liniji jedan master i jedan ili više slave -ova, iako može postojati i više master -a, ali o tome ćemo kasnije.
I nadređeni i podređeni mogu prenositi ili primati podatke, stoga uređaj može biti u jednom od ova četiri stanja: glavni prijenos, glavni prijem, slave prijenos, slave prijem.
Korak 2:
Moju biblioteku možete pronaći ovdje.
Preuzimanje.
Pritisnite dugme DOWNLOADS u gornjem desnom kutu, preimenujte nekomprimiranu mapu PCF8591.
Proverite da li fascikla PCF8591 sadrži PCF8591.cpp i PCF8591.h.
Postavite fasciklu biblioteke PCF8591 u vašu / biblioteku / fasciklu.
Možda ćete morati stvoriti podmapu biblioteka ako je to vaša prva biblioteka.
Ponovo pokrenite IDE.
Korak 3: Upotreba
Konstruktor: morate unijeti adresu i2c (za provjeru adrese koristite ovaj vodič I2cScanner)
PCF8591 (uint8_t adresa);
za esp8266 ako želite navesti SDA e SCL pin koristite ovo:
PCF8591 (uint8_t adresa, uint8_t sda, uint8_t scl);
Korak 4: Pročitajte vrijednost
IC kao što vidite na slici ima 4 analogna ulaza i 1 analogni izlaz.
Dakle, za čitanje svih analognih ulaza u jednom prijenosu možete učiniti (vrijednost 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);
ako želite pročitati jedan analogni ulaz ili kanal:
int ana = pcf8591.analogRead (AIN0); // čita analogno 0
Korak 5: Pročitajte Vale s kanala
Ovaj IC ima više vrsta čitanja i možete koristiti analogni ulaz ili analogni kanal (kada koristite jedno čitanje, analogni ulaz i kanal su na slikama).
Na primjer, da biste pročitali vrijednost kanala 0 u dva diferencijalna ulaza morate učiniti:
int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // čita analogno 0
Korak 6: Zapišite vrijednost
Ako želite napisati analognu vrijednost, morate učiniti (vrijednost je od 0 do 255):
pcf8591.analogWrite (128);
Korak 7: Dodatne funkcije
Dodatna mogućnost je čitanje napona za upis: Za izračun napona morate proći neki parametar:
- mikrokontrolerReferenceVoltage: dobijte napon iz napona mikrokontrolera (samo AVR bez esp8266 za esp 3.3v fiksno)
- referenceVoltage: if microcontrollerReferenceVoltage false uzeti ovu vrijednost Naredba je:
void voltageWrite (float vrijednost, bool mikrokontrolerReferenceVoltage = true, float referenceVoltage = 5.0);
float voltageRead (uint8_t analogPin, bool mikrokontrolerReferenceVoltage = true, float referenceVoltage = 5.0);
Primjeri su:
pcf8591.voltageWrite (2.7); // 2.7V Volti izlaz
kašnjenje (3000);
plovak ana0V = pcf8591.voltageRead (AIN0); // Očitavanje napona sa analognog 0
Serial.println (ana0V);
Korak 8: Primjeri dijagrama povezivanja
Korak 9: Hvala
serija projekata i2c (zbirka):
- Senzor temperature vlage
- Analogni ekspander
- Digitalni ekspander
- LCD displej