Sommario:
- Passaggio 1: come funziona I2c
- Passo 2:
- Passaggio 3: utilizzo
- Passaggio 4: leggi il valore
- Passaggio 5: leggi Vale dal canale
- Passaggio 6: scrivi valore
- Passaggio 7: funzionalità aggiuntive
- Passaggio 8: esempi di schema di collegamento
- Passaggio 9: grazie
Video: PCF8591 (espansore I/O analogico i2c) Veloce e facile da usare: 9 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Libreria per utilizzare i2c pcf8591 IC con arduino ed esp8266.
Questo IC può controllare (fino a 4) un ingresso analogico e/o 1 uscita analogica come misurare la tensione, leggere il valore del termistore o sfumare un led.
Può leggere il valore analogico e scrivere il valore analogico con solo 2 fili (perfetto per ESP-01).
Cerco di semplificare l'uso di questo IC, con un minimo di operazioni.
Puoi trovare la versione aggiornata sul mio sito
Passaggio 1: come funziona I2c
I2C funziona con i suoi due fili, SDA (linea dati) e SCL (linea di clock).
Entrambe queste linee sono open-drain, ma sono tirate su con resistori.
Di solito c'è un master e uno o più slave sulla linea, anche se possono esserci più master, ma ne parleremo più avanti.
Sia i master che gli slave possono trasmettere o ricevere dati, quindi un dispositivo può trovarsi in uno di questi quattro stati: trasmissione master, ricezione master, trasmissione slave, ricezione slave.
Passo 2:
Puoi trovare la mia libreria qui.
Scaricare.
Fare clic sul pulsante DOWNLOAD nell'angolo in alto a destra, rinominare la cartella non compressa PCF8591.
Verificare che la cartella PCF8591 contenga PCF8591.cpp e PCF8591.h.
Posiziona la cartella della libreria PCF8591 nella tua cartella /libraries/.
Potrebbe essere necessario creare la sottocartella delle librerie se è la tua prima libreria.
Riavvia l'IDE.
Passaggio 3: utilizzo
Costruttore: devi passare l'indirizzo di i2c (per controllare l'indirizzo usa questa guida I2cScanner)
PCF8591(indirizzo uint8_t);
per esp8266 se vuoi specificare pin SDA e SCL usa questo:
PCF8591(indirizzo uint8_t, uint8_t sda, uint8_t scl);
Passaggio 4: leggi il valore
IC come puoi vedere nell'immagine ha 4 ingressi analogici e 1 uscita analogica.
Quindi per leggere tutti gli ingressi analogici in una trasmissione si può fare (il valore va da 0 a 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);
se vuoi leggere un singolo ingresso analogico o canale:
int ana = pcf8591.analogRead(AIN0); // legge 0. analogico
Passaggio 5: leggi Vale dal canale
Questo IC ha più tipi di lettura ed è possibile utilizzare l'ingresso analogico o il canale analogico (quando si utilizza l'ingresso analogico a lettura singola e il canale sono nelle immagini).
Ad esempio per leggere il valore del canale 0 in Two differenziale input devi fare:
int ana = pcf8591.analogRead(CHANNEL0, TWO_DIFFERENTIAL_INPUT); // legge 0. analogico
Passaggio 6: scrivi valore
Se vuoi scrivere un valore analogico devi fare (il valore va da 0 a 255):
pcf8591.analogWrite(128);
Passaggio 7: funzionalità aggiuntive
Caratteristica aggiuntiva è leggere una tensione di scrittura: Per il calcolo della tensione è necessario passare alcuni parametri:
- microcontrolloreReferenceVoltage: ottenere la tensione dalla tensione del microcontrollore (solo AVR no esp8266 per esp 3.3v fisso)
- referenceVoltage: se microcontrolloreReferenceVoltage false prende questo valoreI comandi sono:
void voltageWrite(float value, bool microcontrolloreReferenceVoltage = true, float referenceVoltage = 5.0);
float voltageRead(uint8_t analogPin, bool microcontrolloreReferenceVoltage = true, float referenceVoltage = 5.0);
Un esempio è:
pcf8591.voltageWrite(2.7); // Uscita 2,7 Volt
ritardo (3000);
float ana0V = pcf8591.voltageRead(AIN0); // Legge la tensione dall'analogico 0
Serial.println(ana0V);
Passaggio 8: esempi di schema di collegamento
Passaggio 9: grazie
Serie di progetti i2c (Collezione):
- Sensore di umidità della temperatura
- Espansore analogico
- Espansore digitale
- Display LCD
Consigliato:
PC con montaggio a parete facile e veloce: 8 passaggi
PC con montaggio a parete facile e veloce: risparmia un sacco di spazio, stupisci i tuoi amici! Usando dei semplici pezzi di legno tagliati e un foglio di plexiglass colorato puoi montare velocemente il tuo PC alla parete
DHT12 (sensore di umidità e temperatura economico i2c), utilizzo facile e veloce: 14 passaggi
DHT12 (i2c Cheap Humidity and Temperature Sensor), Fast Easy Usage: puoi trovare aggiornamenti e altro sul mio sito https://www.mischianti.org/2019/01/01/dht12-library-en/.Mi piace il sensore che può essere utilizzato con 2 fili (protocollo i2c), ma adoro quello economico. Questa è una libreria Arduino ed esp8266 per la serie DHT12 o
Fai da te MusiLED, LED musicali sincronizzati con applicazione Windows e Linux con un clic (32 bit e 64 bit). Facile da ricreare, facile da usare, facile da trasferire.: 3 passaggi
Fai da te MusiLED, LED musicali sincronizzati con applicazione Windows e Linux con un clic (32 bit e 64 bit). Facile da ricreare, facile da usare, facile da portare.: Questo progetto ti aiuterà a collegare 18 LED (6 rossi + 6 blu + 6 gialli) alla tua scheda Arduino e ad analizzare i segnali in tempo reale della scheda audio del tuo computer e trasmetterli a i led per accenderli secondo gli effetti beat (Snare, High Hat, Kick)
Espansore di portata WiFi su ripetitore wireless Linksys WRE54G: 6 passaggi
WiFi Range Expander su Wireless Repeater Linksys WRE54G: definizione del problema A volte il raggio di azione esistente non è sufficiente, o se ci sono ostacoli sul percorso tra il dispositivo e il router, la distanza di funzionamento può essere drasticamente ridotta. In questo caso è necessario aumentare la sensibilità
Illuminazione della stanza a LED veloce, veloce, economica e di bell'aspetto (per chiunque): 5 passaggi (con immagini)
Illuminazione della stanza a LED veloce, veloce, economica, di bell'aspetto (per chiunque): benvenuto a tutti :-) TINY buget.Cosa ti serve:CavoLEDResistenze (510Ohm per 12V)StapelsSaldatoreTagliaglie e altre basi