Satura rādītājs:
- 1. darbība: MCP23008 vadu savienošana
- 2. solis: valdes izveide
- 3. darbība: bibliotēkas moduļa izmantošana
- 4. solis: Kitt Car programma
- 5. darbība: 7 segmenta gaismas diode
- 6. darbība. Secinājums
Video: NODEMCU LUA ESP8266 ar MCP23008 8 bitu portu paplašinātāja IC: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
MCP23008 ir 8 bitu I/O paplašinātājs ar seriālo interfeisu un darbojas no 1,8 līdz 5,5 voltiem, tāpēc ir ideāli piemērots ESP8266, Arduino, Raspberry Pi, PIC mikroshēmām un citiem.
Ja esat redzējis manu citu pamācību par MCP23017, jums varētu rasties jautājums, kāpēc es to daru arī attiecībā uz MCP23008, jo tā patiešām ir mazāka tās pašas lietas versija.
Iemesli ir tādi, ka tā reģistri ir atšķirīgi gan nosaukumā, gan numurā, un es vēlos parādīt, kā izmantot gatavu bibliotēkas moduli. Ne visi ir lietpratīgi, lietojot NodeMCU lua, tāpēc es vēlos parādīt šo programmēšanas aspektu, kā arī to, kā izmantot MCP23008.
Bibliotēka un programmas ir pieejamas vietnē github.com.
MCP23008 datu lapa ir pieejama vietnē Microchip.
1. darbība: MCP23008 vadu savienošana
MCP23008 IC ir vienkārša izkārtojuma, un tā dēļa izveidošana ir reāli vienkārša. Jūs varat arī iestatīt ķēdi uz maizes dēļa.
Piespraust savienojumus manā panelī
- Piespraude 18 (VDD) līdz 3v3
- 9. tapa (VSS) līdz GND
- 7. tapa (NC) līdz GND (nav nepieciešams)
- Piespraude 1 (SCL) pie ESP GPIO2
- Piespraude 2 (SDA) pie ESP GPIO0
- Piespraude 5 (A0) līdz GND
- 4. tapa (A1) līdz GND
- Piespraude 3 (A2) līdz GND
- Pin 6 (RESET) uz 3v3
Pievienojiet nolasāmās tapas Gnd portā A (tapas 10 - 17)
Piezīme: šeit visas adrešu tapas ir savienotas ar Gnd, lai izmantotu MCP23008 pēc adreses 0x20 I2C adrešu kopnē.
Ja jūs izmantotu adresi 0x21, tad A0 būtu savienots ar 3.3V, un A1 un A2 būtu savienoti ar Gnd.
Līdzīgi, ja tiek izmantota adrese 0x22, tad A1 būtu jāpievieno 3.3V ar A0 un A2, kas savienoti ar Gnd.
utt…
2. solis: valdes izveide
Lai izveidotu savu dēli, es izmantoju 25 mm x 64 mm (9 rindas x 25 caurumi) Vero sloksnes plāksni. Tas ir nedaudz saspringts, bet, tā kā lielākā daļa nepieciešamo tapu atrodas abās IC pusēs, tas ir piemērots tam, kas tam jādara.
A portam esmu izmantojis 8 tapas un 8 galvenes ligzdas, lai dažādiem projektiem varētu pievienot dažādus moduļus, kā arī citus vadus. Esmu pievienojis papildu Gnd un 3.3V tapas, jo, manuprāt, to vienmēr trūkst, savienojot moduļus kopā.
3. darbība: bibliotēkas moduļa izmantošana
Bibliotēkas moduļi parasti satur apakšprogrammas, funkcijas un mainīgos, kuriem var piekļūt cita programma. Pati programma nedarbojas, bet tās funkcijām var piekļūt izsaucēja programma. Tas nozīmē, ka bibliotēkā varat ievietot apakšprogrammas un piezvanīt tām, kad vien tās ir nepieciešamas, izveidojot nelielu zvanīšanas programmu. Tas kļūst vērtīgāks, ja jums ir daudz dažādu programmu, kurās tiek izmantotas vienas un tās pašas apakšprogrammas, jums nav jāiekļauj apakšprogrammas katrā programmā.
Piezīme: programma mcp23008.lua ir jāielādē ESP8266 atmiņā tāpat kā citas programmas.
Šeit esmu iekļāvis github.com programmas, kā arī vienkāršu programmu (test.lua), lai parādītu, ka bibliotēka darbojas.
Bibliotēku var iekļaut savā programmā vismaz 2 veidos.
pieprasīt ("mcp23008")
mcp23008.begin (0x0, gpio2, gpio0, i2c. SLOW)
vai
mcp = pieprasīt ("mcp23008")
mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)
Abas iepriekš minētās darbības veic vienu un to pašu, bet otrā metode ļauj programmas nosaukuma vietā izmantot savu mainīgo.
4. solis: Kitt Car programma
Esmu iekļāvis programmu KittCar23008.lua un KittLib.lua, kas izmanto bibliotēku, lai parādītu atšķirības, kā šādā veidā rakstīt programmas. Abas programmas dara to pašu.
8 LED spraudnis ir pieejams no Ebay kā komplekts, un tas ir pazīstams kā 8 kanālu plūstoša ūdens gaismas LED DIY komplekts, 99p no Ķīnas. Jums tas ir jālodē pats.
Piezīme. Ja jums rodas problēma, mēģinot palaist programmu KittLib.lua, mēģiniet īslaicīgi savienot MCP23008 RESET tapu ar Gnd. Es zinu, ka tas radīs tiešu īssavienojumu (jo tas ir savienots ar 3.3V), un jums ir jāatiestata viss pārējais. Tas darbojas arī, pieslēdzoties Gnd caur 10 omu rezistoru, iespējams, tas ir labāks veids.
Es arī atklāju, ka KittLib.lua darbosies bez problēmām pēc testa.lua palaišanas (nejautājiet man, kāpēc?)
Esmu mēģinājis dažādus veidus, kā atrisināt KittLib.lua programmas problēmu, taču līdz šim nevaru atrast loģisku iemeslu, kāpēc tā avarē. Vai kādam ir idejas?
Es pats neesmu uzrakstījis visas šīs programmas, tāpēc es nevaru pateikt, kāpēc radās problēma, lai gan, aplūkojot kodējumu, šķiet, ka nekas acīmredzami nav kārtībā.
5. darbība: 7 segmenta gaismas diode
Tāpat kā iepriekšējā KittCar.lua programmā, es esmu iekļāvis atsevišķu un no bibliotēkas atkarīgu programmu, lai vadītu 7 segmentu LED displeju.
Atkal abas programmas dara vienu un to pašu, bet parāda, kā izmantot bibliotēkas moduli, ko esat uzrakstījis jūs vai kāds cits.
6. darbība. Secinājums
Esmu mēģinājis parādīt, kā izmantot koda moduļus Lua vidē, un vienlaikus piemērot to konkrētam IC.
Lai gan man ir radušās problēmas to darīt, es domāju, ka ir pietiekami daudz, lai parādītu, kā šie moduļi darbojas, kā arī demonstrētu reālās dzīves lietojumu.
Ieteicams:
Arduino Nano-MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra apmācība: 4 soļi
Arduino Nano-MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra apmācība: MMA8452Q ir gudrs, mazjaudas, trīs asu, kapacitatīvs, mikromehāniski apstrādāts akselerometrs ar 12 bitu izšķirtspēju. Elastīgas lietotāja programmējamas iespējas tiek nodrošinātas, izmantojot akselerometrā iekļautās funkcijas, kuras var konfigurēt līdz diviem pārtraukumiem
Raspberry Pi MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra Python apmācība: 4 soļi
Raspberry Pi MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra Python apmācība: MMA8452Q ir gudrs, mazjaudas, trīs asu, kapacitatīvs, mikromehāniski apstrādāts akselerometrs ar 12 bitu izšķirtspēju. Elastīgas lietotāja programmējamas iespējas tiek nodrošinātas, izmantojot akselerometrā iekļautās funkcijas, kuras var konfigurēt līdz diviem pārtraukumiem
Raspberry Pi MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra Java apmācība: 4 soļi
Raspberry Pi MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra Java apmācība: MMA8452Q ir gudrs, mazjaudas, trīs asu, kapacitatīvs, mikromehāniski apstrādāts akselerometrs ar 12 bitu izšķirtspēju. Elastīgas lietotāja programmējamas iespējas tiek nodrošinātas, izmantojot akselerometrā iekļautās funkcijas, kuras var konfigurēt līdz diviem pārtraukumiem
DIY MusiLED, mūzikas sinhronizētas gaismas diodes ar viena klikšķa Windows un Linux lietojumprogrammu (32 bitu un 64 bitu). Viegli atjaunot, ērti lietot, viegli pārvietot: 3 soļi
DIY MusiLED, mūzikas sinhronizētas gaismas diodes ar viena klikšķa Windows un Linux lietojumprogrammu (32 bitu un 64 bitu). Viegli atjaunojams, ērti lietojams, viegli pārvietojams: Šis projekts palīdzēs jums savienot 18 gaismas diodes (6 sarkanas + 6 zilas + 6 dzeltenas) ar Arduino plati un analizēt datora skaņas kartes reāllaika signālus un pārsūtīt tos uz gaismas diodes, lai tās iedegtos saskaņā ar sitienu efektiem (Snare, High Hat, Kick)
NODEMCU LUA ESP8266 ar MCP23017 16 bitu portu paplašinātāja IC: 6 soļi (ar attēliem)
NODEMCU LUA ESP8266 ar MCP23017 16 bitu portu paplašinātāja IC: MCP23017 ir salīdzinoši vienkārša IC, lai izveidotu plāksni, jo tai ir A un B ports abās mikroshēmas pusēs, un tapas ir secīgā secībā. Līdzīgi ir I2C adrešu kopne arī visi kopā. Šim IC ir 2 tapas, kuras netiek izmantotas