Daftar Isi:

NODEMCU LUA ESP8266 Dengan MCP23008 8 Bit Port Expander IC: 6 Langkah
NODEMCU LUA ESP8266 Dengan MCP23008 8 Bit Port Expander IC: 6 Langkah

Video: NODEMCU LUA ESP8266 Dengan MCP23008 8 Bit Port Expander IC: 6 Langkah

Video: NODEMCU LUA ESP8266 Dengan MCP23008 8 Bit Port Expander IC: 6 Langkah
Video: Получение дополнительных выходов на NodeMCU (ESP8266) с помощью сдвигового регистра 74HC595. 2024, November
Anonim
NODEMCU LUA ESP8266 Dengan MCP23008 8 Bit Port Expander IC
NODEMCU LUA ESP8266 Dengan MCP23008 8 Bit Port Expander IC

MCP23008 adalah Expander I/O 8-Bit dengan Antarmuka Serial dan beroperasi antara 1,8 dan 5,5 volt, sehingga sangat ideal untuk ESP8266, Arduino, Raspberry Pi, Chip PIC, dan lainnya.

Jika Anda telah melihat Instruksi saya yang lain di MCP23017, Anda mungkin bertanya-tanya mengapa saya juga melakukannya untuk MCP23008, karena ini adalah versi yang lebih kecil dari hal yang sama.

Alasannya karena registernya berbeda baik nama maupun nomornya dan saya ingin menunjukkan bagaimana menggunakan modul library yang sudah jadi. Tidak semua orang mahir saat menggunakan NodeMCU lua, jadi saya ingin menunjukkan aspek pemrograman ini serta cara menggunakan MCP23008.

Pustaka dan program tersedia di github.com.

Lembar data untuk MCP23008 tersedia dari Microchip.

Langkah 1: Menghubungkan MCP23008

Pengkabelan MCP23008
Pengkabelan MCP23008

IC MCP23008 memiliki tata letak yang sederhana dan membuat papan relatif mudah untuk itu. Anda juga dapat mengatur sirkuit di papan roti.

Sematkan Koneksi di papan saya

  • Pin 18 (VDD) ke 3v3
  • Pin 9 (VSS) ke GND
  • Pin 7 (NC) ke GND (Tidak perlu)
  • Pin 1 (SCL) ke ESP GPIO2
  • Pin 2 (SDA) ke ESP GPIO0
  • Pin 5 (A0) ke GND
  • Pin 4 (A1) ke GND
  • Pin 3 (A2) ke GND
  • Pin 6 (RESET) ke 3v3

Hubungkan pin yang akan dibaca ke Gnd pada Port A (pin 10 - 17)

Catatan: di sini semua pin alamat terhubung ke Gnd untuk menggunakan MCP23008 pada alamat 0x20 pada bus alamat I2C.

Jika Anda menggunakan alamat 0x21 maka A0 akan terhubung ke 3.3V, dengan A1 & A2 terhubung ke Gnd.

Demikian pula jika menggunakan alamat 0x22 maka A1 harus terhubung ke 3.3V dengan A0 dan A2 terhubung ke Gnd.

dll…

Langkah 2: Membangun Papan

Membangun Papan
Membangun Papan

Saya menggunakan papan strip Vero 25 mm x 64 mm (9 baris x 25 lubang) untuk membuat papan saya. Ini agak ketat, tetapi karena sebagian besar pin yang Anda butuhkan ada di kedua sisi IC, itu cukup untuk apa yang harus dilakukan.

Saya telah menggunakan 8 pin dan 8 soket header untuk port A sehingga saya dapat memasang berbagai modul saya serta kabel lain untuk proyek yang berbeda. Saya telah menambahkan pin Gnd dan 3.3V tambahan karena saya menemukan selalu ada kekurangan ini saat menghubungkan modul bersama-sama.

Langkah 3: Menggunakan Modul Perpustakaan

Menggunakan Modul Perpustakaan
Menggunakan Modul Perpustakaan

Modul library biasanya berisi pilihan sub-rutin, fungsi dan variabel yang dapat diakses oleh program lain. Program itu sendiri tidak berjalan, tetapi fungsinya dapat diakses oleh program yang memanggil. Ini berarti Anda dapat memiliki sub-rutin Anda di dalam perpustakaan dan memanggilnya kapan pun Anda membutuhkannya, membuat program panggilan kecil. Menjadi lebih berharga jika Anda memiliki banyak program yang berbeda menggunakan sub-rutin yang sama, Anda tidak perlu memasukkan sub-rutin di setiap program.

Catatan: program mcp23008.lua perlu dimuat ke dalam memori ESP8266 seperti program lainnya.

Saya telah menyertakan program github.com di sini serta program sederhana (test.lua) untuk menunjukkan bahwa perpustakaan berfungsi.

Setidaknya ada 2 cara untuk memasukkan perpustakaan dalam program Anda.

membutuhkan ("mcp23008")

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

atau

mcp = membutuhkan ("mcp23008")

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

Kedua hal di atas melakukan hal yang sama, tetapi metode kedua memungkinkan Anda untuk menggunakan variabel Anda sendiri alih-alih nama program.

Langkah 4: Program Mobil Kitt

Program Mobil Kitt
Program Mobil Kitt

Saya telah menyertakan program KittCar23008.lua dan KittLib.lua yang menggunakan perpustakaan untuk menunjukkan perbedaan dalam cara menulis program dengan cara ini. Kedua program melakukan hal yang sama.

Colokan 8 LED tersedia dari Ebay sebagai kit dan dikenal sebagai Kit DIY LED Lampu Air Mengalir 8 Saluran, 99p dari China. Anda harus menyoldernya sendiri.

Catatan: Jika Anda mengalami masalah saat mencoba menjalankan program KittLib.lua, coba sambungkan pin RESET MCP23008 ke Gnd sebentar. Saya tahu ini akan memberikan korsleting langsung (karena terhubung ke 3.3V) dan Anda harus mengatur ulang yang lainnya. Ia juga bekerja dengan menghubungkan ke Gnd melalui resistor 10 ohm, mungkin cara yang lebih baik untuk melakukannya.

Saya juga menemukan bahwa KittLib.lua akan berjalan tanpa masalah setelah menjalankan test.lua (Jangan tanya kenapa?)

Saya telah mencoba berbagai cara untuk menyelesaikan masalah program KittLib.lua, tetapi sejauh ini tidak dapat menemukan alasan logis mengapa crash. Dosis ada yang punya ide?

Saya belum menulis semua program ini sendiri, jadi saya tidak bisa mengatakan mengapa ada masalah, meskipun setelah melihat pengkodean, sepertinya tidak ada yang salah.

Langkah 5: 7 Segmen LED

7 Segmen LED
7 Segmen LED

Seperti program KittCar.lua di atas, saya telah menyertakan program mandiri dan bergantung pada perpustakaan untuk menggerakkan tampilan LED 7 segmen.

Sekali lagi, kedua program melakukan hal yang sama, tetapi mendemonstrasikan cara menggunakan modul perpustakaan baik yang ditulis oleh Anda sendiri atau orang lain.

Langkah 6: Kesimpulan

Kesimpulan
Kesimpulan

Saya telah mencoba mendemonstrasikan bagaimana menggunakan modul kode dalam lingkungan Lua, dan menerapkannya pada IC tertentu pada saat yang bersamaan.

Meskipun saya memiliki masalah dalam melakukan ini, saya pikir cukup untuk menunjukkan bagaimana modul-modul ini bekerja serta mendemonstrasikan aplikasi kehidupan nyata.

Direkomendasikan: