Inhoudsopgave:

PCF8591 (i2c analoge I/O-expander) Snel en eenvoudig gebruik - Ajarnpa
PCF8591 (i2c analoge I/O-expander) Snel en eenvoudig gebruik - Ajarnpa

Video: PCF8591 (i2c analoge I/O-expander) Snel en eenvoudig gebruik - Ajarnpa

Video: PCF8591 (i2c analoge I/O-expander) Snel en eenvoudig gebruik - Ajarnpa
Video: Master GPIO with Raspberry Pi Pico & MicroPython - Uncover the Secrets! 2024, November
Anonim
PCF8591 (i2c analoge I/O-expander) Snel en eenvoudig te gebruiken
PCF8591 (i2c analoge I/O-expander) Snel en eenvoudig te gebruiken

Bibliotheek om i2c pcf8591 IC te gebruiken met arduino en esp8266.

Dit IC kan (tot 4) analoge input en/of 1 analoge output aansturen zoals spanning meten, thermistorwaarde uitlezen of een led laten vervagen.

Kan analoge waarde lezen en analoge waarde schrijven met slechts 2 draden (perfect voor ESP-01).

Ik probeer het gebruik van dit IC te vereenvoudigen, met een minimale set handelingen.

U kunt een bijgewerkte versie vinden op mijn site

Stap 1: Hoe I2c werkt

Hoe I2c werkt
Hoe I2c werkt

I2C werkt met zijn twee draden, de SDA (datalijn) en SCL (kloklijn).

Beide lijnen zijn open-drain, maar worden opgetrokken met weerstanden.

Meestal is er één master en één of meerdere slaves aan de lijn, hoewel er meerdere masters kunnen zijn, maar daar komen we later op terug.

Zowel masters als slaves kunnen gegevens verzenden of ontvangen, daarom kan een apparaat zich in een van deze vier toestanden bevinden: master verzenden, master ontvangen, slave verzenden, slave ontvangen.

Stap 2:

Mijn bibliotheek vind je hier.

Downloaden.

Klik op de DOWNLOADS-knop in de rechterbovenhoek, hernoem de niet-gecomprimeerde map PCF8591.

Controleer of de map PCF8591 PCF8591.cpp en PCF8591.h bevat.

Plaats de bibliotheekmap PCF8591 in uw map /libraries/.

Mogelijk moet u de submap bibliotheken maken als dit uw eerste bibliotheek is.

Start de IDE opnieuw.

Stap 3: Gebruik:

Constructor: u moet het adres van i2c doorgeven (gebruik deze handleiding I2cScanner om het adres te controleren)

PCF8591(uint8_t adres);

voor esp8266 als u SDA e SCL-pin wilt specificeren, gebruik dit:

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

Stap 4: Waarde lezen

Lees waarde
Lees waarde

IC zoals je kunt zien in de afbeelding hebben 4 analoge input en 1 analoge output.

Dus om alle analoge invoer in één overdracht te lezen, kunt u doen (de waarde is van 0 tot 255):

PCF8591::AnalogInput ai = pcf8591.analogReadAll();

Serial.print(ai.ain0); Serieel.print(" - "); Serial.print(ai.ain1); Serieel.print(" - "); Seriële.afdruk(ai.ain2); Serieel.print(" - "); Seriële.println(ai.ain3);

als u een enkele analoge ingang of kanaal wilt lezen:

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

Stap 5: Lees Vale van kanaal

Lees Vale van kanaal
Lees Vale van kanaal

Dit IC heeft meerdere soorten lezen en u kunt een analoge ingang of een analoog kanaal gebruiken (wanneer u een enkele leesbare analoge ingang gebruikt en het kanaal op de foto's staat).

Om bijvoorbeeld de waarde van kanaal 0 in Two differential input te lezen, moet u het volgende doen:

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

Stap 6: waarde schrijven

Als u een analoge waarde wilt schrijven, moet u doen (de waarde is van 0 tot 255):

pcf8591.analogWrite(128);

Stap 7: Extra functies

Extra functie is het lezen van een schrijfspanning: voor de berekening van de spanning moet u een parameter doorgeven:

  • microcontrollerReferenceVoltage: haal spanning uit microcontrollerspanning (alleen AVR geen esp8266 voor esp 3.3v vast)
  • referenceVoltage: als microcontrollerReferenceVoltage false, neem deze waarde De opdracht is:

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

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

Een voorbeeld is:

pcf8591.voltageWrite(2.7); // 2.7Volt uitgang

vertraging (3000);

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

Serieel.println(ana0V);

Stap 8: Voorbeelden Aansluitschema

Voorbeelden Aansluitschema
Voorbeelden Aansluitschema

Stap 9: Bedankt

i2c projectserie (Collectie):

  • Temperatuur vochtigheidssensor
  • Analoge uitbreiding
  • Digitale uitbreiding
  • LCD scherm

Aanbevolen: