Daftar Isi:
- Langkah 1: Menghubungkan MCP23008
- Langkah 2: Membangun Papan
- Langkah 3: Menggunakan Modul Perpustakaan
- Langkah 4: Program Mobil Kitt
- Langkah 5: 7 Segmen LED
- Langkah 6: Kesimpulan
Video: NODEMCU LUA ESP8266 Dengan MCP23008 8 Bit Port Expander IC: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
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
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
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
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
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
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
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:
Membuat Port USB Boards Berbasis SAMD21 Menjadi Port Serial Perangkat Keras!: 3 Langkah
Menjadikan Port USB Boards Berbasis SAMD21 Menjadi Port Serial Perangkat Keras!: Saat ini menggunakan port USB board Arduino (atau kompatibel lainnya) sebagai port Serial yang ditiru merupakan standar. Ini sangat berguna untuk men-debug, mengirim, dan menerima data dari papan yang kami sukai. Saya sedang mengerjakan uChip ketika, menelusuri datash
NODEMCU Lua ESP8266 Dengan Jam Waktu Nyata (RTC) & EEPROM: 7 Langkah
NODEMCU Lua ESP8266 Dengan Real Time Clock (RTC) & EEPROM: Mendapatkan waktu yang tepat sangat penting jika Anda ingin menyimpan data log. Ada berbagai cara untuk mendapatkan waktu dari sumber di Internet. Anda mungkin bertanya mengapa tidak menggunakan ESP8266 untuk menghemat waktu Anda? Anda bisa, ia memiliki RTC internal (Real Time
NODEMCU LUA ESP8266 Mengemudi IC Driver Tampilan LED M5450B7: 5 Langkah (dengan Gambar)
NODEMCU LUA ESP8266 Mengemudi IC Driver Tampilan LED M5450B7: M5450B7 adalah IC driver tampilan LED 40 Pin DIP. Terlihat agak seperti binatang buas, tetapi relatif mudah dikendalikan dan diprogram. Ada 34 pin output yang dapat dihubungkan dengan LED untuk masing-masing. Perangkat menenggelamkan arus daripada memasoknya sehingga c
NODEMCU LUA ESP8266 Dengan Penghitung Dekade CD4017: 4 Langkah (dengan Gambar)
NODEMCU LUA ESP8266 Dengan Penghitung Dekade CD4017: CD4017 adalah penghitung / pembagi dekade. Ini berarti bahwa ketika menerima pulsa, ia menghitungnya dan mengirimkan output ke pin yang sesuai. Ini adalah IC yang cukup mudah digunakan dan Anda dapat membuat sirkuit di papan roti atau membelinya dari Ebay untuk
NODEMCU LUA ESP8266 Dengan MCP23017 16 Bit Port Expander IC: 6 Langkah (dengan Gambar)
NODEMCU LUA ESP8266 Dengan MCP23017 16 Bit Port Expander IC: MCP23017 adalah IC yang relatif mudah untuk membuat papan karena memiliki Port A dan B di kedua sisi chip dan pin berurutan. Demikian pula bus alamat I2C adalah semuanya bersama-sama juga. Ada 2 pin pada IC ini yang tidak digunakan karena