Mündəricat:

NODEMCU LUA ESP8266, MCP23008 8 Bit Port Genişləndirici IC ilə: 6 addım
NODEMCU LUA ESP8266, MCP23008 8 Bit Port Genişləndirici IC ilə: 6 addım

Video: NODEMCU LUA ESP8266, MCP23008 8 Bit Port Genişləndirici IC ilə: 6 addım

Video: NODEMCU LUA ESP8266, MCP23008 8 Bit Port Genişləndirici IC ilə: 6 addım
Video: NodeMCU V3 ESP8266 - обзор, подключение и прошивка в Arduino IDE 2024, Noyabr
Anonim
NODEMCU LUA ESP8266, MCP23008 8 Bit Port Genişləndirici IC ilə
NODEMCU LUA ESP8266, MCP23008 8 Bit Port Genişləndirici IC ilə

MCP23008, Serial İnterfeysi olan 8 Bitlik I/O Genişləndiricisidir və 1.8 ilə 5.5 volt arasında işləyir, buna görə ESP8266, Arduino, Raspberry Pi, PIC Chips və daha çoxu üçün idealdır.

MCP23017 -də mənim digər Təlimatlandırıcımı görmüsünüzsə, niyə eyni şeyi daha kiçik bir versiyası olduğu üçün niyə MCP23008 üçün də etdiyimi düşünürsünüz.

Səbəbləri, qeydlərinin həm ad, həm də nömrə baxımından fərqli olmasıdır və hazır bir kitabxana modulundan necə istifadə olunacağını göstərmək istərdim. NodeMCU lua istifadə edərkən hər kəs usta deyil, buna görə də proqramlaşdırmanın bu tərəfini və MCP23008 -dən necə istifadə olunacağını göstərmək istərdim.

Kitabxana və proqramlar github.com saytında mövcuddur.

MCP23008 məlumat cədvəli Microchip -dən əldə edilə bilər.

Addım 1: MCP23008 -in naqilləri

MCP23008 kabelinin çəkilməsi
MCP23008 kabelinin çəkilməsi

MCP23008 IC sadə bir plana malikdir və bir taxta qurmaq onun üçün həqiqətən asandır. Dövrəni bir çörək taxtasına da qura bilərsiniz.

Lövhəmdəki bağlantıları bağlayın

  • Pin 18 (VDD) 3v3 -ə bağlayın
  • Pin 9 (VSS) GND -ə bağlayın
  • Pin 7 (NC) GND -ə (Lazım deyil)
  • Pin 1 (SCL) ESP GPIO2 -ə bağlayın
  • Pin 2 (SDA) ESP GPIO0 -a bağlayın
  • Pin 5 (A0) GND -ə bağlayın
  • Pin 4 (A1) GND -ə bağlayın
  • Pin 3 (A2) GND -ə bağlayın
  • Pin 6 (SIFIRLA) 3v3 -ə qədər

Oxunacaq pinləri A Portunda Gnd -ə bağlayın (pinlər 10 - 17)

Qeyd: I2C ünvan avtobusundakı 0x20 ünvanında MCP23008 istifadə etmək üçün burada bütün ünvan pinləri Gnd -ə bağlıdır.

0x21 ünvanından istifadə edirsinizsə, A0 3.3V -ə, A1 & A2 isə Gnd -ə qoşulmuş olardı.

Eynilə, 0x22 ünvanından istifadə edildikdə, A1 -in Gnd -ə bağlı A0 və A2 ilə 3.3V -ə qoşulması lazımdır.

və s…

Addım 2: Bir lövhənin qurulması

Bir İdarə Heyətinin qurulması
Bir İdarə Heyətinin qurulması

Lövhəmi qurmaq üçün 25 mm x 64 mm (9 satır x 25 deşik) Vero şerit taxtadan istifadə etdim. Bir az sıxdır, ancaq ehtiyac duyduğunuz sancaqların çoxu IC -nin hər iki tərəfində olduğundan, nə etməli olduğu üçün kifayətdir.

A portu üçün 8 pin və 8 başlıq prizindən istifadə etdim ki, müxtəlif modullarımı və fərqli layihələr üçün digər naqilləri qoşa biləm. Əlavə Gnd və 3.3V sancaqlar əlavə etdim, çünki modulları bir -birinə bağlayanda həmişə çatışmazlıq olduğunu düşünürəm.

Addım 3: Kitabxana Modulundan istifadə

Kitabxana modulundan istifadə
Kitabxana modulundan istifadə

Kitabxana modulları, adətən, başqa bir proqramın əldə edə biləcəyi alt proqramlar, funksiyalar və dəyişənlərdən ibarətdir. Proqramın özü işləmir, ancaq funksiyalarına zəng edən proqram vasitəsilə daxil olmaq mümkündür. Kiçik bir zəng proqramı etməklə, alt rutinlərinizi kitabxanada saxlaya və ehtiyac duyduğunuz zaman zəng edə biləcəyiniz deməkdir. Eyni alt proqramlardan istifadə edən bir çox fərqli proqramınız varsa, hər bir proqrama alt rutinləri daxil etməyinizə ehtiyac yoxdur.

Qeyd: mcp23008.lua proqramının digər proqramlar kimi ESP8266 yaddaşına yüklənməsi lazımdır.

Kitabxananın işlədiyini göstərmək üçün github.com proqramlarını və sadə bir proqramı (test.lua) bura daxil etdim.

Kitabxananı proqramınıza daxil etməyin ən azı 2 yolu var.

tələb ("mcp23008")

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

və ya

mcp = tələb ("mcp23008")

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

Yuxarıda göstərilənlərin hər ikisi eyni şeyi edir, lakin ikinci üsul proqram adı əvəzinə öz dəyişəninizi istifadə etməyə imkan verir.

Addım 4: Kitt Avtomobil Proqramı

Kitt Avtomobil Proqramı
Kitt Avtomobil Proqramı

KittCar23008.lua proqramını və proqramları bu şəkildə yazmağın fərqini göstərmək üçün kitabxanadan istifadə edən KittLib.lua daxil etdim. Hər iki proqram eyni şeyi edir.

8 LED fişi Ebay -dan bir dəst olaraq mövcuddur və Çindən 99p olan 8 Kanallı Akan Su İşığı LED DIY Kit olaraq bilinir. Bunu özünüz lehimləməlisiniz.

Qeyd: KittLib.lua proqramını işə salmaqda probleminiz varsa, MCP23008 RESET pinini bir anda Gnd -ə bağlamağa çalışın. Bilirəm ki, bu, qısa bir qısaqapanma verəcək (3.3V -a bağlı olduğu üçün) və hər şeyi sıfırlamalısınız. Gnd -ə 10 ohm rezistor vasitəsilə qoşulmaqla işləyir, yəqin ki, bunu etmək üçün daha yaxşı bir yoldur.

Test.lua işlədikdən sonra KittLib.lua'nın heç bir problem olmadan qaçacağını da gördüm (Məndən niyə soruşmayın?)

KittLib.lua proqram problemini həll etmək üçün müxtəlif yollar sınadım, amma bu günə qədər niyə çökdüyünə dair heç bir məntiqi səbəb tapa bilmirəm. Kiminsə fikirləri varmı?

Bu proqramların hamısını özüm yazmamışam, buna görə problemin nə olduğunu deyə bilmərəm, baxmayaraq ki, kodlaşdırmaya baxdıqdan sonra açıq -aşkar yanlış bir şey görünmür.

Addım 5: 7 Segment LED

7 Segment LED
7 Segment LED

Yuxarıdakı KittCar.lua proqramında olduğu kimi, 7 seqmentli LED ekranı idarə etmək üçün müstəqil və kitabxanadan asılı bir proqram daxil etdim.

Yenə də hər iki proqram eyni şeyi edir, ancaq özünüz və ya başqası tərəfindən yazılmış kitabxana modulundan necə istifadə edəcəyinizi nümayiş etdirir.

Addım 6: Nəticə

Nəticə
Nəticə

Kod modullarını Lua mühitində necə istifadə edəcəyimi nümayiş etdirməyə və eyni zamanda xüsusi bir IC -yə tətbiq etməyə çalışdım.

Bunu etməkdə bir problemim olsa da, düşünürəm ki, bu modulların necə işlədiyini göstərməklə yanaşı, real həyatda tətbiq göstərmək də kifayətdir.

Tövsiyə: