Isi kandungan:
- Langkah 1: Pendawaian MCP23008
- Langkah 2: Membina Papan
- Langkah 3: Menggunakan Modul Perpustakaan
- Langkah 4: Program Kereta Kitt
- Langkah 5: 7 Segmen LED
- Langkah 6: Kesimpulannya
Video: NODEMCU LUA ESP8266 Dengan MCP23008 8 Bit Port Expander IC: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
MCP23008 adalah 8-Bit I / O Expander dengan Serial Interface dan beroperasi antara 1.8 dan 5.5 volt, jadi sangat sesuai untuk ESP8266, Arduino, Raspberry Pi, PIC Chips dan banyak lagi.
Sekiranya anda telah melihat Instructable saya yang lain di MCP23017, anda mungkin tertanya-tanya mengapa saya juga melakukan satu untuk MCP23008, kerana ia adalah versi yang lebih kecil dari perkara yang sama.
Sebabnya adalah kerana daftarnya berbeza dari segi nama dan nombor dan saya ingin menunjukkan cara menggunakan modul perpustakaan siap pakai. Tidak semua orang mahir ketika menggunakan NodeMCU lua, jadi saya ingin menunjukkan aspek pengaturcaraan ini dan juga cara menggunakan MCP23008.
Perpustakaan dan program boleh didapati di github.com.
Lembar data untuk MCP23008 tersedia dari Microchip.
Langkah 1: Pendawaian MCP23008
IC MCP23008 adalah susun atur yang sederhana dan membina papan sangat mudah untuknya. Anda juga boleh memasang litar di papan roti.
Pin Sambungan di papan saya
- Pin 18 (VDD) hingga 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) hingga 3v3
Sambungkan pin untuk dibaca ke Gnd di Port A (pin 10 - 17)
Catatan: di sini semua pin alamat disambungkan ke Gnd untuk menggunakan MCP23008 di alamat 0x20 pada bas alamat I2C.
Sekiranya anda menggunakan alamat 0x21 maka A0 akan disambungkan ke 3.3V, dengan A1 & A2 disambungkan ke Gnd.
Begitu juga jika menggunakan alamat 0x22 maka A1 harus disambungkan ke 3.3V dengan A0 dan A2 disambungkan ke Gnd.
dan lain-lain…
Langkah 2: Membina Papan
Saya menggunakan papan jalur Vero 25 mm x 64 mm (9 baris x 25 lubang) untuk membina papan saya. Ia agak ketat, tetapi kerana kebanyakan pin yang anda perlukan berada di kedua-dua sisi IC, ia cukup untuk apa yang harus dilakukan.
Saya telah menggunakan 8 pin dan 8 soket header untuk port A supaya saya dapat memasang pelbagai modul saya dan juga pendawaian lain untuk projek yang berbeza. Saya telah menambah pin Gnd dan 3.3V tambahan kerana saya mendapati selalu kekurangan ini semasa menyambungkan modul bersama-sama.
Langkah 3: Menggunakan Modul Perpustakaan
Modul perpustakaan biasanya mengandungi pilihan sub-rutin, fungsi dan pemboleh ubah yang dapat diakses oleh program lain. Program itu sendiri tidak berjalan, tetapi fungsinya dapat diakses oleh program panggilan. Ini bermaksud bahawa anda dapat memiliki sub-rutin di dalam perpustakaan dan memanggilnya setiap kali anda memerlukannya, membuat program panggilan kecil. Ini menjadi lebih berharga jika anda mempunyai banyak program yang menggunakan sub-rutin yang sama, anda tidak perlu memasukkan sub-rutin dalam setiap program.
Catatan: program mcp23008.lua perlu dimuat ke dalam memori ESP8266 seperti program lain.
Saya telah memasukkan program github.com di sini dan juga program mudah (test.lua) untuk menunjukkan bahawa perpustakaan berfungsi.
Terdapat sekurang-kurangnya 2 cara untuk memasukkan perpustakaan dalam program anda.
memerlukan ("mcp23008")
mcp23008.begin (0x0, gpio2, gpio0, i2c. SLOW)
atau
mcp = memerlukan ("mcp23008")
mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)
Kedua-dua perkara di atas melakukan perkara yang sama, tetapi kaedah kedua membolehkan anda menggunakan pemboleh ubah anda sendiri dan bukannya nama program.
Langkah 4: Program Kereta Kitt
Saya telah memasukkan program KittCar23008.lua dan KittLib.lua yang menggunakan perpustakaan untuk menunjukkan perbezaan cara menulis program dengan cara ini. Kedua-dua program melakukan perkara yang sama.
Palam masuk 8 LED boleh didapati dari Ebay sebagai kit dan dikenali sebagai Kit DIY LED 8 Saluran Aliran Air Aliran, 99 p dari China. Anda mesti menyelesaikannya sendiri.
Catatan: Sekiranya anda menghadapi masalah semasa menjalankan program KittLib.lua, cuba sambungkan pin RESET MCP23008 ke Gnd sebentar. Saya tahu ini akan memberi litar pintas langsung (kerana disambungkan ke 3.3V) dan anda harus menetapkan semula yang lain. Ia juga berfungsi dengan menghubungkan ke Gnd melalui perintang 10 ohm, mungkin cara yang lebih baik untuk melakukannya.
Saya juga mendapati bahawa KittLib.lua akan berjalan tanpa masalah setelah menjalankan test.lua (Jangan tanya saya mengapa?)
Saya telah mencuba pelbagai cara untuk menyelesaikan masalah program KittLib.lua, tetapi setakat ini tidak dapat mencari alasan logik mengapa ia terhenti. Adakah seseorang mempunyai idea?
Saya tidak menulis semua program ini sendiri, jadi saya tidak dapat mengatakan mengapa ada masalah, walaupun setelah melihat pengekodan, nampaknya tidak ada yang jelas salah.
Langkah 5: 7 Segmen LED
Seperti program KittCar.lua di atas, saya telah memasukkan program yang bergantung kepada perpustakaan dan mandiri untuk memacu paparan LED 7 segmen.
Sekali lagi, kedua-dua program melakukan perkara yang sama, tetapi menunjukkan bagaimana menggunakan modul perpustakaan sama ada yang ditulis oleh anda sendiri atau orang lain.
Langkah 6: Kesimpulannya
Saya telah cuba menunjukkan cara menggunakan modul kod dalam lingkungan Lua, dan menerapkannya pada IC tertentu pada masa yang sama.
Walaupun saya menghadapi masalah untuk melakukan ini, saya rasa cukup untuk menunjukkan bagaimana modul ini berfungsi dan juga menunjukkan aplikasi kehidupan sebenar.
Disyorkan:
Menjadikan Port USB Papan berasaskan SAMD21 ke Port Serial Perkakasan !: 3 Langkah
Menjadikan Port USB Papan berasaskan SAMD21 ke Port Serial Perkakasan !: Sudah menjadi kebiasaan pada masa ini untuk menggunakan port USB papan Arduino (atau yang lain yang serasi) sebagai port Serial yang dicontohi. Ini sangat berguna untuk melakukan debug, menghantar dan menerima data dari papan yang kami gemari. Saya mengusahakan uChipwhen, melalui datash
NODEMCU Lua ESP8266 Dengan Jam Masa Sebenar (RTC) & EEPROM: 7 Langkah
NODEMCU Lua ESP8266 Dengan Jam Waktu Sebenar (RTC) & EEPROM: Mendapatkan masa yang betul adalah mustahak jika anda ingin menyimpan log data. Terdapat pelbagai cara untuk mendapatkan masa dari sumber di Internet. Anda mungkin bertanya mengapa tidak menggunakan ESP8266 untuk menyimpan masa untuk anda? Anda boleh, ia mempunyai RTC dalamannya sendiri (Real Time
NODEMCU LUA ESP8266 Mengemudi Pemacu Paparan LED M5450B7 IC: 5 Langkah (dengan Gambar)
NODEMCU LUA ESP8266 Memandu IC Pemacu Paparan LED M5450B7: M5450B7 adalah IC pemacu paparan LED DIP 40 Pin. Ia kelihatan agak binatang, tetapi ia agak mudah dikendalikan dan diprogramkan. Terdapat 34 pin output yang boleh menyambungkan LED kepada masing-masing. Peranti meresap arus dan bukannya membekalkannya sehingga
NODEMCU LUA ESP8266 Dengan Penghitung Dekad CD4017: 4 Langkah (dengan Gambar)
NODEMCU LUA ESP8266 Dengan Penghitung Dekad CD4017: CD4017 adalah penghitung / pembahagi dekad. Ini bermaksud bahawa apabila menerima denyut nadi, ia menghitungnya dan mengirimkan output ke pin yang sesuai. Ia adalah IC yang mudah digunakan dan anda boleh membina litar 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 agak mudah untuk dibuat papan kerana mempunyai Port A dan B di kedua-dua sisi cip dan pin berada dalam urutan berurutan. Begitu juga bas alamat I2C adalah semuanya bersama-sama. Terdapat 2 pin pada IC ini yang tidak digunakan kerana