INHOUDSOPGAWE:

PCF8591 (i2c analoog I/O -uitbreider) Vinnige gebruik: 9 stappe
PCF8591 (i2c analoog I/O -uitbreider) Vinnige gebruik: 9 stappe

Video: PCF8591 (i2c analoog I/O -uitbreider) Vinnige gebruik: 9 stappe

Video: PCF8591 (i2c analoog I/O -uitbreider) Vinnige gebruik: 9 stappe
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, November
Anonim
PCF8591 (i2c analoog I/O -uitbreider) Vinnig maklik gebruik
PCF8591 (i2c analoog I/O -uitbreider) Vinnig maklik gebruik

Biblioteek om i2c pcf8591 IC te gebruik met arduino en esp8266.

Hierdie IC kan (tot 4) analoog ingang en/of 1 analoog uitset beheer, soos spanning meet, termistorwaarde lees of 'n LED vervaag.

Kan analoog waarde lees en analoog waarde skryf met slegs 2 drade (perfek vir ESP-01).

Ek probeer die gebruik van hierdie IC vereenvoudig, met 'n minimale stel werking.

U kan die opgedateerde weergawe op my webwerf vind

Stap 1: Hoe I2c werk

Hoe I2c werk
Hoe I2c werk

I2C werk met sy twee drade, die SDA (data lyn) en SCL (kloklyn).

Albei hierdie lyne is oop-dreineer, maar word met weerstande opgetrek.

Gewoonlik is daar een meester en een of meer slawe op die spel, alhoewel daar verskeie meesters kan wees, maar ons sal later daaroor praat.

Beide meesters en slawe kan data stuur of ontvang, daarom kan 'n toestel in een van hierdie vier toestande wees: meester -oordrag, meester -ontvangs, slawe -oordrag, slawe -ontvangs.

Stap 2:

U kan my biblioteek hier vind.

Om af te laai.

Klik op die DOWNLOADS -knoppie in die regter boonste hoek, hernoem die ongecomprimeerde gids PCF8591.

Kontroleer of die PCF8591 -lêergids PCF8591.cpp en PCF8591.h bevat.

Plaas die PCF8591 biblioteekmap u / biblioteke / gids.

Miskien moet u die biblioteek se submap skep as dit u eerste biblioteek is.

Herbegin die IDE.

Stap 3: Gebruik

Konstrukteur: u moet die adres van i2c pas (om die adres na te gaan, gebruik hierdie gids I2cScanner)

PCF8591 (uint8_t adres);

vir esp8266, as u SDA en SCL -pen wil spesifiseer, gebruik hierdie:

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

Stap 4: Lees Waarde

Lees Waarde
Lees Waarde

IC, soos u op die prent kan sien, het 4 analoog -ingang en 1 analoog -uitset.

Om alle analoog insette in een transmissie te lees, kan u doen (die waarde is 0 tot 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);

As u 'n enkele analoog invoer of kanaal wil lees:

int ana = pcf8591.analogRead (AIN0); // lees analoog 0

Stap 5: Lees Vale From Channel

Lees Vale From Channel
Lees Vale From Channel

Hierdie IC het veelvuldige tipe lees, en u kan analoog -ingang of analoog kanaal gebruik (as u enkel -gelees analoog insette gebruik en kanaal op die foto's is).

U moet byvoorbeeld die waarde van kanaal 0 in Twee differensiële invoer lees:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // lees analoog 0

Stap 6: Skryf Waarde neer

As u 'n analoog waarde wil skryf, moet u dit doen (die waarde is van 0 tot 255):

pcf8591.analogWrite (128);

Stap 7: Bykomende funksies

'N Bykomende kenmerk is die lees van 'n skryfspanning: Vir die berekening van die spanning moet u 'n parameter oorskry:

  • microcontrollerReferenceVoltage: kry spanning van mikrocontroller spanning (slegs AVR geen esp8266 vir esp 3.3v vas)
  • referenceVoltage: as microcontrollerReferenceVoltage false neem hierdie waarde Die opdrag is:

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

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

'N Voorbeeld is:

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

vertraging (3000);

float ana0V = pcf8591.voltageRead (AIN0); // Lees spanning van analoog 0

Serial.println (ana0V);

Stap 8: Voorbeelde Verbindingsdiagram

Voorbeelde Verbindingsdiagram
Voorbeelde Verbindingsdiagram

Stap 9: Dankie

i2c -projekreeks (versameling):

  • Temperatuur humiditeit sensor
  • Analoog uitbreider
  • Digitale uitbreider
  • LCD -skerm

Aanbeveel: