Агуулгын хүснэгт:

PCF8591 (i2c аналог I/O Expander) Хурдан хялбар хэрэглээ: 9 алхам
PCF8591 (i2c аналог I/O Expander) Хурдан хялбар хэрэглээ: 9 алхам

Видео: PCF8591 (i2c аналог I/O Expander) Хурдан хялбар хэрэглээ: 9 алхам

Видео: PCF8591 (i2c аналог I/O Expander) Хурдан хялбар хэрэглээ: 9 алхам
Видео: Как использовать 16-канальную ШИМ-шляпу Adafruit с Raspberry Pi для управления шестнадцатью сервоприводами 2024, Арваннэгдүгээр
Anonim
PCF8591 (i2c аналог I/O Expander) Хурдан хялбар хэрэглээ
PCF8591 (i2c аналог I/O Expander) Хурдан хялбар хэрэглээ

I2c pcf8591 IC -ийг arduino болон esp8266 ашиглан ашиглах номын сан.

Энэхүү IC нь (4 хүртэл) аналог оролт ба/эсвэл 1 аналог гаралтыг хянах, хүчдэлийг хэмжих, термисторын утгыг унших эсвэл LED -ийг бүдгэрүүлэх боломжтой.

Зөвхөн 2 утастай аналог утгыг уншиж, аналог утгыг бичих боломжтой (ESP-01-ийн хувьд төгс төгөлдөр).

Би энэ IC -ийн хэрэглээг хамгийн бага ажиллагаатай хялбарчлахыг хичээдэг.

Та миний сайтаас шинэчилсэн хувилбарыг олж болно

Алхам 1: I2c хэрхэн ажилладаг

I2c хэрхэн ажилладаг
I2c хэрхэн ажилладаг

I2C нь SDA (өгөгдлийн шугам) ба SCL (цагийн шугам) гэсэн хоёр утастай ажилладаг.

Эдгээр шугамууд хоёулаа нээлттэй ус зайлуулах хоолойтой боловч резистороор татагдсан байдаг.

Ихэвчлэн нэг мастер, нэг буюу хэд хэдэн боол байдаг боловч хэд хэдэн эзэн байж болно, гэхдээ бид энэ тухай дараа ярих болно.

Мастер ба боол хоёулаа өгөгдөл дамжуулах эсвэл хүлээн авах боломжтой тул төхөөрөмж нь эдгээр дөрвөн төлөвийн аль нэгэнд байж болно: мастер дамжуулах, эзэн хүлээн авах, боол дамжуулах, боол хүлээн авах.

Алхам 2:

Та миний номын санг эндээс олж болно.

Татаж авах.

Баруун дээд буланд байгаа DOWNLOADS товчлуур дээр дарж шахагдаагүй хавтасны нэрийг PCF8591 гэж өөрчилнө үү.

PCF8591 фолдер нь PCF8591.cpp болон PCF8591.h агуулсан эсэхийг шалгаарай.

PCF8591 номын сангийн хавтсыг өөрийн / libraries / хавтсыг байрлуул.

Хэрэв таны анхны номын сан бол танд номын сангийн дэд хавтас үүсгэх шаардлагатай болж магадгүй юм.

IDE -г дахин эхлүүлнэ үү.

Алхам 3: Хэрэглээ

Барилгачин: та i2c хаягийг оруулах ёстой (хаягийг шалгахын тулд I2cScanner гарын авлагыг ашиглана уу)

PCF8591 (uint8_t хаяг);

esp8266 -ийн хувьд хэрэв та SDA e SCL зүү зааж өгөхийг хүсвэл үүнийг ашиглана уу.

PCF8591 (uint8_t хаяг, uint8_t sda, uint8_t scl);

Алхам 4: Үнэ цэнийг уншина уу

Утга уншина уу
Утга уншина уу

Зураг дээр харж байгаа шиг IC нь 4 аналог оролт, 1 аналог гаралттай байна.

Бүх аналог оролтыг нэг трассмиссия дотор уншихын тулд та хийж болно (утга нь 0 -ээс 255 хүртэл байна):

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

Цуваа.хэвлэх (ai.ain0); Serial.print (" -"); Цуваа.хэвлэх (ai.ain1); Serial.print (" -"); Цуваа.хэвлэх (ai.ain2); Serial.print (" -"); Serial.println (ai.ain3);

Хэрэв та ганц аналог оролт эсвэл сувгийг уншихыг хүсвэл:

int ana = pcf8591.analogRead (AIN0); // аналог 0 -ийг уншина уу

Алхам 5: Vale сувгаас уншина уу

Vale сувгаас уншина уу
Vale сувгаас уншина уу

Энэхүү IC нь олон төрлийн унших чадвартай бөгөөд та аналог оролт эсвэл аналог суваг ашиглаж болно (нэг удаагийн унших аналог оролт ба суваг зураг дээр байгаа болно).

Жишээлбэл, 0 сувгийн утгыг хоёр дифференциал оролтоор уншихын тулд та дараах зүйлсийг хийх ёстой:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // аналог 0 -ийг уншина уу

Алхам 6: Утга бичих

Хэрэв та аналог утга бичихийг хүсвэл үүнийг хийх ёстой (утга нь 0 -ээс 255 хүртэл байна):

pcf8591.analogWrite (128);

Алхам 7: Нэмэлт боломжууд

Нэмэлт боломж бол бичих хүчдэлийг унших явдал юм: Хүчдэлийг тооцоолохын тулд та зарим параметрийг дамжуулах ёстой.

  • microcontrollerReferenceVoltage: микроконтроллерийн хүчдэлээс хүчдэл авах (зөвхөн AVR байхгүй esp8266 esp 3.3v тогтмол)
  • referenceVoltage: if microcontrollerReferenceVoltage false энэ утгыг авна Дараах тушаалууд байна:

хоосон хүчдэл Бичих (хөвөх утга, bool микроконтроллер

хөвөх хүчдэлRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

Жишээ нь:

pcf8591.voltageWrite (2.7); // 2.7 вольтын гаралт

саатал (3000);

float ana0V = pcf8591.voltageRead (AIN0); // Аналог 0 -ээс хүчдэлийг уншина уу

Serial.println (ana0V);

Алхам 8: Холболтын диаграмын жишээ

Холболтын диаграмын жишээ
Холболтын диаграмын жишээ

Алхам 9: Баярлалаа

i2c төслийн цуврал (Цуглуулга):

  • Температурын чийгшил мэдрэгч
  • Аналог өргөтгөгч
  • Дижитал өргөтгөгч
  • LCD дэлгэц

Зөвлөмж болгож буй: