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

NODEMCU LUA ESP8266 нь MCP23008 8 битийн порт өргөтгөгч IC: 6 алхамтай
NODEMCU LUA ESP8266 нь MCP23008 8 битийн порт өргөтгөгч IC: 6 алхамтай

Видео: NODEMCU LUA ESP8266 нь MCP23008 8 битийн порт өргөтгөгч IC: 6 алхамтай

Видео: NODEMCU LUA ESP8266 нь MCP23008 8 битийн порт өргөтгөгч IC: 6 алхамтай
Видео: How to Make PLC LCD HMI || FLProg 2024, Арваннэгдүгээр
Anonim
NODEMCU LUA ESP8266 нь MCP23008 8 битийн порт өргөтгөгч IC -тэй
NODEMCU LUA ESP8266 нь MCP23008 8 битийн порт өргөтгөгч IC -тэй

MCP23008 нь цуваа интерфэйстэй 8 битийн I/O өргөтгөгч бөгөөд 1.8-5.5 вольтын хооронд ажилладаг тул ESP8266, Arduino, Raspberry Pi, PIC чип болон бусад зүйлд тохиромжтой.

Хэрэв та MCP23017 дээрх миний өөр зааварчилгааг үзсэн бол би яагаад MCP23008 -т зориулж хийж байгаа юм бол гэж гайхаж байж магадгүй, энэ нь яг ижил зүйлийн жижиг хувилбар юм.

Шалтгаан нь түүний бүртгэлүүд нэр, тоогоороо ялгаатай бөгөөд би бэлэн номын сангийн модулийг хэрхэн ашиглахыг харуулахыг хүсч байна. NodeMCU lua -ийг ашиглахад хүн бүр чадварлаг байдаггүй тул програмчлалын энэ талыг болон MCP23008 -ийг хэрхэн ашиглахыг харуулахыг хүсч байна.

Номын сан болон програмуудыг github.com дээрээс авах боломжтой.

MCP23008 мэдээллийн хуудсыг Microchip дээрээс авах боломжтой.

Алхам 1: MCP23008 -ийг холбох

MCP23008 утас
MCP23008 утас

MCP23008 IC нь энгийн зохион байгуулалттай бөгөөд самбар барих нь үнэхээр хялбар юм. Та мөн хэлхээг талхны тавцан дээр тохируулж болно.

Миний самбар дээрх холболтуудыг зүү

  • 18 (VDD) зүүг 3v3 руу холбоно уу
  • Pin 9 (VSS) -ийг GND руу холбоно уу
  • 7 -р зүү (NC) -ийг GND руу оруулах (шаардлагагүй)
  • Зүү 1 (SCL) -ийг ESP GPIO2 руу холбоно уу
  • 2 -р зүү (SDA) -ийг ESP GPIO0 руу холбоно уу
  • 5 (A0) зүүг GND руу холбоно уу
  • 4 (A1) зүүг GND руу холбоно уу
  • 3 (A2) зүүг GND руу холбоно уу
  • 6 -р зүү (дахин тохируулах) 3v3 хүртэл

А порт дээрх Gnd руу унших зүүг холбоно уу (10-17 -р зүү)

Тэмдэглэл: энд бүх хаягийн голууд Gnd -тэй холбогдсон бөгөөд I2C хаягийн автобусны 0x20 хаягаар MCP23008 -ийг ашиглах боломжтой.

Хэрэв та 0x21 хаягийг ашиглаж байсан бол A0 нь 3.3V, A1 & A2 нь Gnd -тэй холбогдсон байх болно.

Үүний нэгэн адил, хэрэв 0x22 хаягийг ашигладаг бол A1 нь Gnd -тэй холбогдсон A0 ба A2 -тай 3.3V -тэй холбогдсон байх ёстой.

гэх мэт …

Алхам 2: Удирдах зөвлөл байгуулах

Удирдах зөвлөл байгуулах
Удирдах зөвлөл байгуулах

Би самбараа бүтээхдээ 25 мм х 64 мм хэмжээтэй (9 мөр x 25 нүхтэй) Vero тууз хавтанг ашигласан. Энэ нь жаахан нягт боловч танд хэрэгтэй ихэнх зүү нь IC -ийн хоёр талд байрладаг тул хийх ёстой зүйлдээ хангалттай байдаг.

Би А портод 8 тээглүүр, 8 толгой залгуурыг ашигласан бөгөөд ингэснээр би янз бүрийн модулиуд болон өөр өөр төслүүдийн бусад утаснуудаа залгаж болно. Би нэмэлт Gnd болон 3.3V тээглүүрүүдийг нэмж оруулсан бөгөөд учир нь модулиудыг хооронд нь холбоход эдгээрийн дутагдал үргэлж гардаг.

Алхам 3: Номын сангийн модулийг ашиглах

Номын сангийн модулийг ашиглаж байна
Номын сангийн модулийг ашиглаж байна

Номын сангийн модулиуд нь ихэвчлэн өөр програмаар хандаж болох дэд горим, функц, хувьсагчдын сонголтыг агуулдаг. Хөтөлбөр нь өөрөө ажилладаггүй, гэхдээ түүний функцуудыг дуудлагын програмаар ашиглах боломжтой. Энэ нь та номын сангийнхаа дэд хэвшлийг өөртөө суулгаж, хүссэн үедээ дуудаж, жижиг дуудлагын програм хийж болно гэсэн үг юм. Хэрэв та нэг дэд горимыг ашигладаг олон өөр програмтай бол энэ нь илүү үнэ цэнэтэй байх болно, та дэд горимыг програм бүрт оруулах шаардлагагүй болно.

Тэмдэглэл: mcp23008.lua програмыг бусад програмын нэгэн адил ESP8266 санах ойд ачаалах шаардлагатай.

Би энд github.com програмууд болон номын сан ажиллаж байгааг харуулах энгийн програмыг (test.lua) оруулсан болно.

Номын санг өөрийн хөтөлбөрт оруулах хамгийн багадаа 2 арга бий.

шаардах ("mcp23008")

mcp23008.begin (0x0, gpio2, gpio0, i2c. SLOW)

эсвэл

mcp = шаардлагатай ("mcp23008")

mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)

Дээрх хоёулаа ижил зүйлийг хийдэг боловч хоёр дахь арга нь програмын нэрийн оронд өөрийн хувьсагчийг ашиглах боломжийг олгодог.

Алхам 4: Kitt Car Program

Kitt машины хөтөлбөр
Kitt машины хөтөлбөр

Би KittCar23008.lua програм болон KittLib.lua програмыг хэрхэн бичих талаар ялгааг харуулахын тулд номын санг ашигладаг. Хоёр програм хоёулаа ижил зүйлийг хийдэг.

8 LED залгуурыг Ebay -аас иж бүрдэл болгон авах боломжтой бөгөөд 8 суваг урсдаг усны гэрэл LED DIY хэрэгсэл, Хятадаас 99p гэж нэрлэдэг. Та үүнийг өөрөө гагнах хэрэгтэй.

Тэмдэглэл: Хэрэв танд KittLib.lua програмыг ажиллуулахад асуудал гарвал MCP23008 RESET зүүг Gnd руу түр зуур холбож үзээрэй. Энэ нь шууд богино залгаас өгөх болно гэдгийг би мэднэ (энэ нь 3.3V -т холбогдсон тул), та бусад бүх зүйлийг дахин тохируулах хэрэгтэй болно. Энэ нь мөн Gnd -т 10 омын резистороор холбогддог бөгөөд үүнийг хийх илүү сайн арга юм.

Test.lua ажиллуулсны дараа KittLib.lua ямар ч асуудалгүй гүйх болно гэдгийг би олж мэдсэн. (Надаас яагаад битгий асуугаарай?)

Би KittLib.lua програмын асуудлыг шийдэх янз бүрийн аргуудыг туршиж үзсэн боловч өнөөг хүртэл яагаад эвдэрсэн талаар логик шалтгааныг олж чадаагүй байна. Ямар нэгэн санаа бодолтой хүн байна уу?

Би эдгээр бүх програмыг өөрөө бичээгүй байгаа тул яагаад ийм асуудал гарсныг хэлж чадахгүй байна, гэхдээ кодчилолыг хараад ямар ч буруу зүйл байхгүй юм шиг байна.

Алхам 5: 7 сегментийн LED

7 сегментийн LED
7 сегментийн LED

Дээрх KittCar.lua програмын нэгэн адил би 7 сегментийн LED дэлгэцийг жолоодох бие даасан болон номын сангаас хамааралтай програмыг оруулсан болно.

Дахин хэлэхэд хоёулаа хоёулаа ижил зүйлийг хийдэг, гэхдээ өөрөө эсвэл өөр хэн нэгний бичсэн номын сангийн модулийг хэрхэн ашиглахыг харуул.

Алхам 6: Дүгнэлт

Дүгнэлт
Дүгнэлт

Би Луа орчинд кодын модулийг хэрхэн ашиглахыг харуулахыг оролдож, үүнийг тодорхой IC -т нэгэн зэрэг ашиглахыг хичээсэн.

Хэдийгээр би үүнийг хийхэд асуудалтай байсан ч эдгээр модулиуд хэрхэн ажилладагийг харуулахын зэрэгцээ бодит амьдрал дээрх програмыг үзүүлэхэд хангалттай гэж бодож байна.

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