Turinys:
- 1 veiksmas: prijunkite MCP23008
- 2 žingsnis: valdybos sudarymas
- 3 žingsnis: bibliotekos modulio naudojimas
- 4 žingsnis: „Kitt Car“programa
- 5 žingsnis: 7 segmento šviesos diodas
- 6 žingsnis: Išvada
Video: NODEMCU LUA ESP8266 su MCP23008 8 bitų prievado išplėtimo IC: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:49
„MCP23008“yra 8 bitų įvesties/išvesties plėtinys su nuoseklia sąsaja ir veikia nuo 1,8 iki 5,5 voltų, todėl idealiai tinka ESP8266, „Arduino“, „Raspberry Pi“, PIC mikroschemoms ir kt.
Jei matėte mano kitą „Instructable“apie MCP23017, jums gali kilti klausimas, kodėl aš taip pat darau tai MCP23008, nes tai tikrai mažesnė to paties dalyko versija.
Priežastys yra tai, kad jos registrai skiriasi tiek pavadinimu, tiek numeriu, ir norėčiau parodyti, kaip naudoti paruoštą bibliotekos modulį. Ne visi yra įgudę naudoti „NodeMCU lua“, todėl norėčiau parodyti šį programavimo aspektą ir tai, kaip naudoti MCP23008.
Biblioteką ir programas rasite github.com.
MCP23008 duomenų lapą galite rasti „Microchip“.
1 veiksmas: prijunkite MCP23008
MCP23008 IC yra paprasto išdėstymo, o plokštės kūrimas yra tikrai lengvas. Taip pat galite nustatyti grandinę ant duonos lentos.
„Pin Connections“mano lentoje
- Smeigtukas 18 (VDD) iki 3v3
- 9 kaištis (VSS) prie GND
- 7 kaištis (NC) į GND (nebūtina)
- PIN 1 (SCL) prie ESP GPIO2
- 2 kontaktas (SDA) prie ESP GPIO0
- 5 kaištis (A0) prie GND
- 4 kaištis (A1) prie GND
- 3 kaištis (A2) prie GND
- 6 kaištis (RESET) į 3v3
Prijunkite skaitomus kaiščius prie „Gnd“prievado A (10–17 kaiščiai)
Pastaba: čia visi adresų kaiščiai prijungti prie Gnd, kad būtų galima naudoti MCP23008 adresu 0x20 I2C adresų magistralėje.
Jei naudojatės adresu 0x21, tada A0 bus prijungtas prie 3.3V, o A1 ir A2 - prie Gnd.
Panašiai, jei naudojant adresą 0x22, A1 turėtų būti prijungtas prie 3.3V, o A0 ir A2 prijungti prie Gnd.
ir tt…
2 žingsnis: valdybos sudarymas
Lentos statybai naudojau 25 mm x 64 mm (9 eilutės x 25 skylės) „Vero“juostinę plokštę. Jis yra šiek tiek įtemptas, tačiau kadangi dauguma jums reikalingų kaiščių yra abiejose IC pusėse, to pakanka.
Aš naudoju 8 kaiščius ir 8 antgalių lizdus A prievadui, kad galėčiau prijungti įvairius modulius ir kitus laidus įvairiems projektams. Pridėjau papildomų Gnd ir 3.3V kaiščių, nes manau, kad jungiant modulius jų visada trūksta.
3 žingsnis: bibliotekos modulio naudojimas
Bibliotekos moduliuose paprastai yra pasirinkta papročių, funkcijų ir kintamųjų, kuriuos gali pasiekti kita programa. Pati programa neveikia, tačiau jos funkcijas gali pasiekti skambinimo programa. Tai reiškia, kad galite turėti savo papildomas procedūras bibliotekoje ir skambinti jiems, kai tik reikia, sukurdami nedidelę skambinimo programą. Tai tampa vertingesnė, jei turite daug skirtingų programų, naudojančių tas pačias antrines procedūras, nebūtina į kiekvieną programą įtraukti paprogramių.
Pastaba: programą „mcp23008.lua“reikia įkelti į ESP8266 atmintį, kaip ir kitas programas.
Čia įtraukiau „github.com“programas ir paprastą programą (test.lua), parodančią, kad biblioteka veikia.
Yra bent du būdai įtraukti biblioteką į savo programą.
reikalauti ("mcp23008")
mcp23008.begin (0x0, gpio2, gpio0, i2c. SLOW)
arba
mcp = reikalauti ("mcp23008")
mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)
Abu aukščiau išvardyti veiksmai daro tą patį, tačiau antrasis metodas leidžia vietoj programos pavadinimo naudoti savo kintamąjį.
4 žingsnis: „Kitt Car“programa
Įtraukiau „KittCar23008.lua“programą ir „KittLib.lua“, kuri naudoja biblioteką, kad parodytų, kaip tokiu būdu rašyti programas. Abi programos daro tą patį.
„8 LED“kištuką galima įsigyti iš „Ebay“kaip rinkinį ir jis yra žinomas kaip 8 kanalų tekančio vandens šviesos diodų rinkinys „pasidaryk pats“, 99p iš Kinijos. Lituoti tenka patiems.
Pastaba: Jei kyla problemų bandant paleisti programą „KittLib.lua“, pabandykite trumpam prijungti MCP23008 RESET kaištį prie „Gnd“. Aš žinau, kad tai sukels tiesioginį trumpąjį jungimą (nes jis yra prijungtas prie 3.3 V), o jūs turite iš naujo nustatyti visa kita. Tai taip pat veikia prisijungus prie „Gnd“per 10 omų rezistorių, tikriausiai geresnis būdas tai padaryti.
Aš taip pat sužinojau, kad „KittLib.lua“paleidžiama be problemų paleidus test.lua (neklauskite manęs, kodėl?)
Bandžiau įvairiais būdais išspręsti „KittLib.lua“programos problemą, tačiau iki šiol nerandu jokios logiškos priežasties, kodėl ji sugenda. Ar kas nors turi idėjų?
Aš pats nerašiau visų šių programų, todėl negaliu pasakyti, kodėl yra problema, nors, pažiūrėjus į kodavimą, neatrodo, kad būtų kažkas akivaizdžiai negerai.
5 žingsnis: 7 segmento šviesos diodas
Kaip ir aukščiau esančioje „KittCar.lua“programoje, aš įtraukiau atskirą ir nuo bibliotekos priklausančią programą, skirtą 7 segmentų LED ekranui valdyti.
Vėlgi, abi programos daro tą patį, tačiau parodo, kaip naudotis bibliotekos moduliu, kurį parašėte jūs arba kažkas kitas.
6 žingsnis: Išvada
Aš bandžiau parodyti, kaip naudoti kodo modulius „Lua“aplinkoje ir tuo pačiu metu pritaikyti jį konkrečiam IC.
Nors ir turėjau problemų tai darydamas, manau, kad pakanka parodyti, kaip šie moduliai veikia, ir parodyti realaus gyvenimo programą.
Rekomenduojamas:
„Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro pamoka: 4 žingsniai
„Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio pagreičio matuoklio pamoka: „MMA8452Q“yra protingas, mažos galios, trijų ašių, talpinis, mikromašinis pagreičio matuoklis, turintis 12 bitų skiriamąją gebą. Lanksčios vartotojo programuojamos parinktys pateikiamos naudojant pagreičio matuoklio įterptas funkcijas, kurias galima sukonfigūruoti dviem pertraukomis
Raspberry Pi MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro „Python“vadovėlis: 4 žingsniai
„Raspberry Pi MMA8452Q“3 ašių 12 bitų/8 bitų skaitmeninio akselerometro „Python“vadovėlis: „MMA8452Q“yra protingas, mažos galios, trijų ašių, talpinis, mikromechaninis pagreičio matuoklis, turintis 12 bitų skiriamąją gebą. Lanksčios vartotojo programuojamos parinktys pateikiamos naudojant pagreičio matuoklio įterptas funkcijas, kurias galima sukonfigūruoti dviem pertraukomis
SAMD21 pagrindo plokščių USB prievado prijungimas prie aparatūros nuoseklaus prievado!: 3 žingsniai
SAMD21 pagrindu pagamintų plokščių USB prievado prijungimas prie aparatūros nuoseklaus prievado! Tai labai naudinga derinant, siunčiant ir gaunant duomenis iš mūsų mielų lentų. Aš dirbau su „uChipwhen“, eidamas per duomenų bazę
Raspberry Pi MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninis pagreičio matuoklis „Java“pamoka: 4 žingsniai
„Raspberry Pi MMA8452Q“3 ašių 12 bitų/8 bitų skaitmeninis pagreičio matuoklis „Java“pamoka: „MMA8452Q“yra protingas, mažos galios, trijų ašių, talpinis, mikromechaninis pagreičio matuoklis, turintis 12 bitų skiriamąją gebą. Lanksčios vartotojo programuojamos parinktys pateikiamos naudojant pagreičio matuoklio įterptas funkcijas, kurias galima sukonfigūruoti dviem pertraukomis
NODEMCU LUA ESP8266 su MCP23017 16 bitų prievado išplėtimo IC: 6 žingsniai (su nuotraukomis)
NODEMCU LUA ESP8266 su MCP23017 16 bitų prievado išplėtimo IC: „MCP23017“yra palyginti lengva IC plokštė, nes ji turi A ir B prievadus abiejose lusto pusėse, o kaiščiai yra nuoseklios eilės. Panašiai yra ir I2C adresų magistralė taip pat visi kartu. Šiame IC yra 2 kaiščiai, kurie nenaudojami