Cuprins:
- Pasul 1: Cum funcționează I2c
- Pasul 2:
- Pasul 3: utilizare
- Pasul 4: Citiți valoarea
- Pasul 5: Citiți Vale From Channel
- Pasul 6: Scrieți valoarea
- Pasul 7: Caracteristici suplimentare
- Pasul 8: Exemple Diagrama conexiunii
- Pasul 9: Mulțumesc
Video: PCF8591 (i2c analogic I / O Expander) Utilizare rapidă ușoară: 9 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Biblioteca pentru a utiliza i2c pcf8591 IC cu arduino și esp8266.
Acest IC poate controla (până la 4) intrări analogice și / sau 1 ieșire analogică, cum ar fi măsurarea tensiunii, poate citi valoarea termistorului sau poate estompa un led.
Poate citi valoare analogică și scrie valoare analogică cu doar 2 fire (perfect pentru ESP-01).
Încerc să simplific utilizarea acestui IC, cu un set minim de funcționare.
Puteți găsi versiunea actualizată pe site-ul meu
Pasul 1: Cum funcționează I2c
I2C funcționează cu cele două fire, SDA (linia de date) și SCL (linia de ceas).
Ambele linii sunt deschise, dar sunt trase cu rezistențe.
De obicei, există un maestru și unul sau mai mulți sclavi pe linie, deși pot exista mai mulți maeștri, dar despre asta vom vorbi mai târziu.
Atât stăpânii, cât și sclavii pot transmite sau primi date, prin urmare, un dispozitiv poate fi în una dintre aceste patru stări: transmiterea master, recepția master, transmiterea slave, recepția slave.
Pasul 2:
Puteți găsi biblioteca mea aici.
A descărca.
Faceți clic pe butonul DESCĂRCĂRI din colțul din dreapta sus, redenumiți folderul necomprimat PCF8591.
Verificați dacă folderul PCF8591 conține PCF8591.cpp și PCF8591.h.
Plasați folderul de bibliotecă PCF8591 în / folderul / biblioteci.
Poate fi necesar să creați subfolderul bibliotecilor dacă este prima dvs. bibliotecă.
Reporniți IDE-ul.
Pasul 3: utilizare
Constructor: trebuie să introduceți adresa i2c (pentru a verifica adresa utilizați acest ghid I2cScanner)
PCF8591 (adresa uint8_t);
pentru esp8266 dacă doriți să specificați pinul SDA e SCL utilizați acest lucru:
PCF8591 (adresa uint8_t, uint8_t sda, uint8_t scl);
Pasul 4: Citiți valoarea
IC așa cum puteți vedea în imagine au 4 intrări analogice și 1 ieșire analogică.
Deci, pentru a citi toate intrările analogice într-o singură transmisie, puteți face (valoarea este de la 0 la 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);
dacă doriți să citiți o singură intrare analogică sau canal:
int ana = pcf8591.analogRead (AIN0); // citiți analogul 0
Pasul 5: Citiți Vale From Channel
Acest IC are mai multe tipuri de citire și puteți utiliza intrarea analogică sau canalul analogic (când utilizați intrarea analogică cu o singură citire și canalul sunt în imagini).
De exemplu, pentru a citi valoarea canalului 0 în Două intrări diferențiale, trebuie să faceți:
int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // citiți analogul 0
Pasul 6: Scrieți valoarea
Dacă doriți să scrieți o valoare analogică, trebuie să o faceți (valoarea este de la 0 la 255):
pcf8591.analogWrite (128);
Pasul 7: Caracteristici suplimentare
Caracteristică suplimentară este citirea unei tensiuni de scriere: Pentru calcularea tensiunii trebuie să treceți un parametru:
- microcontrollerReferenceVoltage: obțineți tensiunea de la tensiunea microcontrolerului (numai AVR nr esp8266 pentru esp 3.3v fix)
- referenceVoltage: dacă microcontrollerReferenceVoltage false ia această valoare Comanda sunt:
void voltageWrite (valoare float, microcontroler BoolReferenceVoltage = adevărat, float referenceVoltage = 5.0);
float voltageRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);
Un exemplu este:
pcf8591.voltageWrite (2.7); // 2.7Volți de ieșire
întârziere (3000);
float ana0V = pcf8591.voltageRead (AIN0); // Citiți tensiunea din analogul 0
Serial.println (ana0V);
Pasul 8: Exemple Diagrama conexiunii
Pasul 9: Mulțumesc
Seria de proiecte i2c (Colecție):
- Senzor de umiditate a temperaturii
- Expander analogic
- Expander digital
- Ecran LCD
Recomandat:
Ghid de utilizare a setului de solenoizi Sol-EZ Ghid de utilizare: 9 pași
Sol-EZ Solenoid Driver Kit Ghid de utilizare: DISCLAIMER: ACEST ESTE UN GHID DE UTILIZARE PENTRU UN PRODUS: KITUL DE SOLENOID SOL-EZ SOLID. Acesta nu este un proiect DIY
DHT12 (senzor i2c de umiditate și temperatură ieftină), utilizare ușoară rapidă: 14 pași
DHT12 (senzor i2c de umiditate și temperatură ieftină), utilizare rapidă și ușoară: puteți găsi actualizări și altele pe site-ul meu https://www.mischianti.org/2019/01/01/dht12-library-en/. Îmi place senzorul care poate fi folosit cu 2 fire (protocol i2c), dar îmi place cel ieftin. Aceasta este o bibliotecă Arduino și esp8266 pentru seria DHT12 o
TIMER TEHNIC POMODORO - DISPOZITIV HARDWARE DE UTILIZARE UȘOARĂ PENTRU GESTIONAREA TIMPULUI: 4 pași
POMODORO TECHNIQUE TIMER - DISPOZITIV HARDWARE DE UTILIZARE UȘOARĂ PENTRU GESTIONAREA TIMPULUI: 1. Ce este? detalii ca mai jos: https: //francescocirillo.com/pages/pomodoro-techni … Acest cronometru este un ha ușor de utilizat
Circuite GPIO Raspberry Pi: Utilizarea unui senzor analogic LDR fără ADC (convertor analogic digital): 4 pași
Circuite GPIO Raspberry Pi: Utilizarea unui senzor analogic LDR fără ADC (convertor analogic la digital): în manualele noastre anterioare, v-am arătat cum puteți conecta pinii GPIO ai Raspberry Pi la LED-uri și comutatoare și modul în care pinii GPIO pot fi mari sau Scăzut. Dar dacă doriți să utilizați Raspberry Pi cu un senzor analogic? Dacă vrem să folosim un
Construiți un contor analogic de utilizare a energiei electrice: 8 pași (cu imagini)
Construiți un contor analogic de utilizare a energiei electrice: am folosit un Kill A Watt (http://www.p3international.com/products/special/P4400/P4400-CE.html) contor electric pentru o vreme și am decis să construiesc una analogică. Acest proiect a trecut de la a fi simplu, cu un singur ampermetru de panou și