Innholdsfortegnelse:

PCF8591 (i2c Analog I/O Expander) Rask enkel bruk: 9 trinn
PCF8591 (i2c Analog I/O Expander) Rask enkel bruk: 9 trinn

Video: PCF8591 (i2c Analog I/O Expander) Rask enkel bruk: 9 trinn

Video: PCF8591 (i2c Analog I/O Expander) Rask enkel bruk: 9 trinn
Video: Кратенький обзор PCF8591 2024, Juli
Anonim
PCF8591 (i2c Analog I/O Expander) Rask enkel bruk
PCF8591 (i2c Analog I/O Expander) Rask enkel bruk

Bibliotek for bruk av i2c pcf8591 IC med arduino og esp8266.

Denne IC kan kontrollere (inntil 4) analog inngang og/eller 1 analog utgang som måle spenning, lese termistorverdi eller falme en LED.

Kan lese analog verdi og skrive analog verdi med bare 2 ledninger (perfekt for ESP-01).

Jeg prøver å forenkle bruken av denne IC, med et minimalt sett med operasjoner.

Du finner den oppdaterte versjonen på nettstedet mitt

Trinn 1: Slik fungerer I2c

Slik fungerer I2c
Slik fungerer I2c

I2C fungerer med sine to ledninger, SDA (datalinje) og SCL (klokke linje).

Begge disse ledningene er åpne-drenering, men trekkes opp med motstander.

Vanligvis er det en mester og en eller flere slaver på linjen, selv om det kan være flere mestere, men vi snakker om det senere.

Både mestere og slaver kan overføre eller motta data, derfor kan en enhet befinne seg i en av disse fire tilstandene: masteroverføring, mastermottak, slaveoverføring, slavemottak.

Steg 2:

Du finner biblioteket mitt her.

For å laste ned.

Klikk på DOWNLOADS -knappen øverst til høyre, gi nytt navn til den ukomprimerte mappen PCF8591.

Kontroller at PCF8591 -mappen inneholder PCF8591.cpp og PCF8591.h.

Plasser PCF8591 bibliotekmappen din / biblioteker / mappen.

Du må kanskje opprette undermappen biblioteker hvis det er ditt første bibliotek.

Start IDE på nytt.

Trinn 3: Bruk

Konstruktør: du må passere adressen til i2c (for å sjekke adressen, bruk denne guiden I2cScanner)

PCF8591 (uint8_t adresse);

for esp8266 hvis du vil spesifisere SDA og SCL -pin, bruk denne:

PCF8591 (uint8_t adresse, uint8_t sda, uint8_t scl);

Trinn 4: Les verdi

Les verdi
Les verdi

IC som du kan se på bildet har 4 analoge innganger og 1 analoge utganger.

Så for å lese all analog inngang i én sending kan du gjøre (verdien er fra 0 til 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);

hvis du vil lese en enkelt analog inngang eller kanal:

int ana = pcf8591.analogRead (AIN0); // les analog 0

Trinn 5: Les Vale fra kanal

Les Vale From Channel
Les Vale From Channel

Denne IC har flere typer lesing, og du kan bruke Analog inngang eller analog kanal (når du bruker enkel lese analog inngang og kanalen er på bildene).

For eksempel for å lese verdien av kanal 0 i To differensialinnganger må du gjøre:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // les analog 0

Trinn 6: Skriv verdi

Hvis du vil skrive en analog verdi må du gjøre (verdien er fra 0 til 255):

pcf8591.analogWrite (128);

Trinn 7: Ytterligere funksjoner

Ekstra funksjon er å lese en skrivespenning: For beregning av spenning må du passere en parameter:

  • microcontrollerReferenceVoltage: få spenning fra mikrokontroller spenning (bare AVR ingen esp8266 for esp 3.3v fast)
  • referenceVoltage: if microcontrollerReferenceVoltage false ta denne verdien Kommandoen er:

void voltageWrite (float value, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

float voltageRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

Et eksempel er:

pcf8591.voltageWrite (2.7); // 2,7 volt utgang

forsinkelse (3000);

float ana0V = pcf8591.voltageRead (AIN0); // Les spenning fra analog 0

Serial.println (ana0V);

Trinn 8: Eksempler på tilkoblingsdiagram

Eksempler Tilkoblingsdiagram
Eksempler Tilkoblingsdiagram

Trinn 9: Takk

i2c -prosjektserie (samling):

  • Temperaturfuktighetssensor
  • Analog ekspander
  • Digital ekspander
  • LCD-skjerm

Anbefalt: