Talaan ng mga Nilalaman:

PCF8591 (i2c Analog I / O Expander) Mabilis na Madaling Paggamit: 9 Mga Hakbang
PCF8591 (i2c Analog I / O Expander) Mabilis na Madaling Paggamit: 9 Mga Hakbang

Video: PCF8591 (i2c Analog I / O Expander) Mabilis na Madaling Paggamit: 9 Mga Hakbang

Video: PCF8591 (i2c Analog I / O Expander) Mabilis na Madaling Paggamit: 9 Mga Hakbang
Video: STC-3028 Thermostat with Heat and Humidity Fully Explained and demonstrated 2024, Nobyembre
Anonim
PCF8591 (i2c Analog I / O Expander) Mabilis na Madaling Paggamit
PCF8591 (i2c Analog I / O Expander) Mabilis na Madaling Paggamit

Library na gagamit ng i2c pcf8591 IC na may arduino at esp8266.

Maaaring kontrolin ng IC na ito (hanggang 4) ang analog input at / o 1 analog output tulad ng pagsukat ng boltahe, basahin ang halaga ng thermistor o fade a led.

Maaaring basahin ang halagang analog at isulat ang halagang analog na may 2 wire lamang (perpekto para sa ESP-01).

Sinusubukan kong gawing simple ang paggamit ng IC na ito, na may isang maliit na hanay ng operasyon.

Maaari kang makahanap ng na-update na bersyon sa aking site

Hakbang 1: Paano Gumagana ang I2c

Paano Gumagana ang I2c
Paano Gumagana ang I2c

Gumagana ang I2C kasama ang dalawang wires, ang SDA (linya ng data) at SCL (linya ng orasan).

Ang parehong mga linya na ito ay bukas-kanal, ngunit hinugot sa mga resistors.

Kadalasan mayroong isang master at isa o maraming mga alipin sa linya, bagaman maaaring maraming mga masters, ngunit pag-uusapan natin ito mamaya.

Ang parehong mga masters at alipin ay maaaring magpadala o makatanggap ng data, samakatuwid, ang isang aparato ay maaaring nasa isa sa apat na estado na ito: master transmit, master accept, slave transmit, slave accept.

Hakbang 2:

Mahahanap mo rito ang aking silid aklatan.

Magdownload.

I-click ang pindutang DOWNLOADS sa kanang sulok sa itaas, palitan ang pangalan ng hindi naka-compress na folder na PCF8591.

Suriin na ang folder ng PCF8591 ay naglalaman ng PCF8591.cpp at PCF8591.h.

Ilagay ang folder ng PCF8591 library ng iyong / mga aklatan / folder.

Maaaring kailanganin mong likhain ang mga library ng mga folder kung ito ang iyong unang silid-aklatan.

I-restart ang IDE.

Hakbang 3: Paggamit

Tagabuo: dapat mong ipasa ang address ng i2c (upang suriin ang adress gamitin ang gabay na ito I2cScanner)

PCF8591 (uint8_t address);

para sa esp8266 kung nais mong tukuyin ang SDA e SCL pin gamitin ito:

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

Hakbang 4: Basahin ang Halaga

Basahin ang Halaga
Basahin ang Halaga

Ang IC tulad ng nakikita mo sa imahe ay mayroong 4 na analog input at 1 analog output.

Kaya upang basahin ang lahat ng input ng analog sa isang trasmission na magagawa mo (ang halaga ay mula 0 hanggang 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);

kung nais mong basahin ang isang solong analog input o channel:

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

Hakbang 5: Basahin ang Vale Mula sa Channel

Basahin ang Vale Mula sa Channel
Basahin ang Vale Mula sa Channel

Ang IC na ito ay may maraming uri ng nabasa at maaari mong gamitin ang Analog input o analog channel (kapag gumamit ka ng solong binasa na analog input at ang channel ay nasa mga larawan).

Halimbawa upang basahin ang halaga ng channel 0 sa Dalawang pagkakaiba sa pag-input na dapat mong gawin:

int ana = pcf8591.analogRead (CHANNEL0, Two_DIFFERENTIAL_INPUT); // basahin ang analog 0

Hakbang 6: Isulat ang Halaga

Kung nais mong sumulat ng isang halagang analog na dapat mong gawin (ang halaga ay mula 0 hanggang 255):

pcf8591.analogWrite (128);

Hakbang 7: Karagdagang Mga Tampok

Ang karagdagang tampok ay upang basahin ang isang boltahe ng pagsulat: Para sa pagkalkula ng boltahe dapat kang pumasa sa ilang parameter:

  • microcontrollerReferensiVoltage: kumuha ng boltahe mula sa boltahe ng microcontroller (AVR lamang walang esp8266 para sa esp 3.3v naayos)
  • referenceVoltage: kung microcontrollerReferensiVoltage maling kunin ang halagang ito Ang utos ay:

void voltageWrite (float halaga, bool microcontrollerReferensiVoltage = totoo, float referenceVoltage = 5.0);

float voltageRead (uint8_t analogPin, bool microcontrollerReferensiVoltage = totoo, float referenceVoltage = 5.0);

Ang isang halimbawa ay:

pcf8591.voltageWrite (2.7); // 2.7Volts output

pagkaantala (3000);

float ana0V = pcf8591.voltageRead (AIN0); // Basahin ang boltahe mula sa analog 0

Serial.println (ana0V);

Hakbang 8: Mga Halimbawa ng Diagram ng Koneksyon

Mga Halimbawa ng Diagram sa Koneksyon
Mga Halimbawa ng Diagram sa Koneksyon

Hakbang 9: Salamat

serye ng proyekto ng i2c (Koleksyon):

  • Temperatura sensor ng kahalumigmigan
  • Analog expander
  • Digital expander
  • LCD Display

Inirerekumendang: