Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
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
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
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
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
Hakbang 9: Salamat
serye ng proyekto ng i2c (Koleksyon):
- Temperatura sensor ng kahalumigmigan
- Analog expander
- Digital expander
- LCD Display