Სარჩევი:
- ნაბიჯი 1: გაყვანილობა MCP23008
- ნაბიჯი 2: დაფის მშენებლობა
- ნაბიჯი 3: ბიბლიოთეკის მოდულის გამოყენება
- ნაბიჯი 4: Kitt Car პროგრამა
- ნაბიჯი 5: 7 LED სეგმენტი
- ნაბიჯი 6: დასკვნა
ვიდეო: NODEMCU LUA ESP8266 MCP23008 8 ბიტიანი პორტი გაფართოების IC: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:20
MCP23008 არის 8 ბიტიანი I/O გაფართოება სერიული ინტერფეისით და მუშაობს 1.8 და 5.5 ვოლტს შორის, ამიტომ იდეალურია ESP8266, Arduino, Raspberry Pi, PIC ჩიპსებისთვის და სხვა.
თუ თქვენ გინახავთ ჩემი სხვა ინსტრუქცია MCP23017– ზე, შეიძლება გაგიკვირდეთ, რატომ ვაკეთებ მეც ერთს MCP23008– ისთვის, რადგან ეს მართლაც იგივე საქმის უფრო პატარა ვერსიაა.
მიზეზები ისაა, რომ მისი რეგისტრები განსხვავებულია როგორც სახელით, ასევე რიცხვით და მე მინდა ვაჩვენო როგორ გამოვიყენო მზა ბიბლიოთეკის მოდული. ყველა არ არის კომპეტენტური NodeMCU lua– ს გამოყენებისას, ამიტომ მსურს ვაჩვენო პროგრამირების ეს ასპექტი, ასევე ის, თუ როგორ გამოვიყენო MCP23008.
ბიბლიოთეკა და პროგრამები ხელმისაწვდომია github.com– ზე.
MCP23008– ის მონაცემთა ცხრილი ხელმისაწვდომია მიკროჩიპისგან.
ნაბიჯი 1: გაყვანილობა MCP23008
MCP23008 IC არის მარტივი განლაგებით და დაფის აგება მისთვის რეალურად ადვილია. თქვენ ასევე შეგიძლიათ ჩართოთ წრე პურის დაფაზე.
ჩამაგრეთ კავშირი ჩემს დაფაზე
- მიამაგრეთ 18 (VDD) 3v3– მდე
- მიამაგრეთ 9 (VSS) GND– ში
- Pin 7 (NC) to GND (არ არის საჭირო)
- მიამაგრეთ 1 (SCL) ESP GPIO2– ში
- მიამაგრეთ 2 (SDA) ESP GPIO0– ში
- მიამაგრეთ 5 (A0) GND– ზე
- მიამაგრეთ 4 (A1) GND– ში
- მიამაგრეთ 3 (A2) GND– ზე
- მიამაგრეთ 6 (გადატვირთვა) 3v3– მდე
დააკავშირეთ წასაკითხი ქინძისთავები Gnd– თან პორტში (ქინძისთავები 10 - 17)
შენიშვნა: აქ ყველა მისამართის ქინძი დაკავშირებულია Gnd– თან MCP23008– ის გამოსაყენებლად 0x20 მისამართზე I2C მისამართის ავტობუსში.
თუ თქვენ იყენებდით მისამართს 0x21, მაშინ A0 დაკავშირებული იქნებოდა 3.3V– თან, A1 & A2 კი Gnd– თან.
ანალოგიურად, თუ იყენებთ მისამართს 0x22, მაშინ A1 უნდა იყოს დაკავშირებული 3.3V– თან A0 და A2 Gnd– თან.
და ა.შ…
ნაბიჯი 2: დაფის მშენებლობა
მე გამოვიყენე 25 მმ x 64 მმ (9 სტრიქონი x 25 ხვრელი) Vero ზოლის დაფა ჩემი დაფის ასაგებად. ეს ცოტა მჭიდროა, მაგრამ რადგანაც საჭირო ქინძისთავების უმეტესობა არის IC– ის ორივე მხარეს, ის ადეკვატურია იმისთვის, რაც უნდა გააკეთოს.
მე გამოვიყენე 8 ქინძისთავი და 8 სათაურის ბუდე A პორტისთვის, რათა შევაერთო ჩემი სხვადასხვა მოდული, ასევე სხვა გაყვანილობა სხვადასხვა პროექტებისთვის. მე დავამატე დამატებითი Gnd და 3.3V ქინძისთავები, რადგან ვხვდები, რომ მოდულების ერთმანეთთან შეერთებისას ყოველთვის არის მათი დეფიციტი.
ნაბიჯი 3: ბიბლიოთეკის მოდულის გამოყენება
ბიბლიოთეკის მოდულები ჩვეულებრივ შეიცავს რამოდენიმე ქვე-რუტინას, ფუნქციებსა და ცვლადებს, რომელთა წვდომა შესაძლებელია სხვა პროგრამით. პროგრამა თავად არ მუშაობს, მაგრამ მის ფუნქციებზე წვდომა შესაძლებელია დარეკვის პროგრამით. ეს ნიშნავს, რომ თქვენ შეგიძლიათ გქონდეთ ბიბლიოთეკაში თქვენი ქვე-რუტინები და გამოიძახოთ ისინი, როცა დაგჭირდებათ, შექმნით მცირე ზარის პროგრამას. ის უფრო ღირებული გახდება, თუ თქვენ გაქვთ მრავალი განსხვავებული პროგრამა ერთიდაიგივე ქვე-რუტინების გამოყენებით, თქვენ არ გჭირდებათ ქვე-რუტინების ჩართვა ყველა პროგრამაში.
შენიშვნა: mcp23008.lua პროგრამა სხვა პროგრამების მსგავსად უნდა იყოს ჩატვირთული ESP8266 მეხსიერებაში.
მე აქ ჩავრთე github.com პროგრამები, ასევე მარტივი პროგრამა (test.lua) იმის საჩვენებლად, რომ ბიბლიოთეკა მუშაობს.
ბიბლიოთეკის თქვენს პროგრამაში ჩართვის სულ მცირე 2 გზა არსებობს.
მოითხოვს ("mcp23008")
mcp23008. დასაწყისი (0x0, gpio2, gpio0, i2c. SLOW)
ან
mcp = მოითხოვს ("mcp23008")
mcp. დასაწყისი (0x0, gpio2, gpio0, i2c. SLOW)
ყოველივე ზემოთქმული ერთსა და იმავეს აკეთებს, მაგრამ მეორე მეთოდი საშუალებას გაძლევთ გამოიყენოთ თქვენი საკუთარი ცვლადი პროგრამის სახელის ნაცვლად.
ნაბიჯი 4: Kitt Car პროგრამა
მე ჩავრთე KittCar23008.lua პროგრამა და KittLib.lua, რომელიც იყენებს ბიბლიოთეკას, რათა აჩვენოს განსხვავებები პროგრამების წერის ამგვარად. ორივე პროგრამა ერთსა და იმავეს აკეთებს.
8 LED დანამატი ხელმისაწვდომია Ebay– დან როგორც ნაკრები და ცნობილია როგორც 8 არხიანი წყლის მსუბუქი LED წვრილმანი ნაკრები, 99p ჩინეთიდან. თქვენ თვითონ უნდა შეაერთოთ.
შენიშვნა: თუ თქვენ გაქვთ პრობლემა KittLib.lua პროგრამის გაშვების მცდელობისას, სცადეთ MCP23008 RESET pin- ის Gnd მომენტალურად დაკავშირება. მე ვიცი, რომ ეს პირდაპირ მოკლე ჩართვას მისცემს (რადგან ის დაკავშირებულია 3.3V– თან) და თქვენ უნდა გადატვირთოთ ყველაფერი. ის ასევე მუშაობს Gnd– თან 10 ohm რეზისტორის საშუალებით შეერთებით, ალბათ ამის უკეთესი გზაა.
მე ასევე აღმოვაჩინე, რომ KittLib.lua უპრობლემოდ იმუშავებდა test.lua გაშვების შემდეგ (არ მკითხოთ რატომ?)
მე შევეცადე სხვადასხვა გზა KittLib.lua პროგრამის პრობლემის გადასაჭრელად, მაგრამ ჯერჯერობით ვერ ვპოულობ რაიმე ლოგიკურ მიზეზს, თუ რატომ იშლება იგი. ვინმეს გაქვთ რაიმე იდეა?
მე არ დავწერე ყველა ეს პროგრამა მე, ასე რომ მე არ შემიძლია ვთქვა, რატომ არის პრობლემა, თუმცა კოდირების დათვალიერების შემდეგ, როგორც ჩანს, აშკარად არასწორი არაფერია.
ნაბიჯი 5: 7 LED სეგმენტი
როგორც KittCar.lua პროგრამის ზემოთ, მე ჩავრთე დამოუკიდებელი და ბიბლიოთეკაზე დამოკიდებული პროგრამა 7 სეგმენტიანი LED ეკრანის მართვისთვის.
ისევ და ისევ, ორივე პროგრამა აკეთებს ერთსა და იმავეს, მაგრამ აჩვენებს როგორ გამოვიყენოთ ბიბლიოთეკის მოდული თქვენი ან სხვის მიერ დაწერილი.
ნაბიჯი 6: დასკვნა
მე შევეცადე მეჩვენებინა როგორ გამოვიყენო კოდის მოდულები ლუას გარემოში და გამოვიყენო იგი კონკრეტულ IC– ზე ერთდროულად.
მიუხედავად იმისა, რომ მე მქონდა პრობლემა ამის გაკეთებაში, მე ვფიქრობ, რომ საკმარისია იმის საჩვენებლად, თუ როგორ მუშაობს ეს მოდულები, ისევე როგორც რეალური ცხოვრების პროგრამის დემონსტრირება.
გირჩევთ:
იმედის გულმკერდის გაფართოების გამოყენება არასრული ტაძრის წესდების სამუშაოსთვის თქვენს საოჯახო ხეში ოჯახის ძებნა: 11 ნაბიჯი
გამოიყენეთ იმედის გულმკერდის გაფართოება, რათა იპოვოთ არასრული ტაძრის განკარგულება თქვენი ოჯახის შიგნით ოჯახის ძიება: ამ ინსტრუქციის მიზანია აჩვენოს, თუ როგორ უნდა მოძებნოთ თქვენი ოჯახის ხე საოჯახო ძიებაში წინაპრებისათვის ტაძრის არასრული განკარგულებით, იმედის გულმკერდის გაფართოების გამოყენებით. იმედის გულმკერდის გამოყენებამ შეიძლება მნიშვნელოვნად დააჩქაროს თქვენი ძიების უკმარისობა
NODEMcu USB პორტი არ მუშაობს? ატვირთეთ კოდი USB– ით TTL (FTDI) მოდულში სულ რაღაც 2 ნაბიჯში: 3 ნაბიჯი
NODEMcu USB პორტი არ მუშაობს? ატვირთეთ კოდი USB– ის გამოყენებით TTL (FTDI) მოდულში სულ რაღაც 2 ნაბიჯში: დაიღალეთ USB– დან TTL მოდულთან NODEMcu– სთან მრავალ მავთულთან დაკავშირებით, მიჰყევით ამ ინსტრუქციას, რომ ატვირთოთ კოდი სულ რაღაც 2 ნაბიჯში. თუ USB პორტი NODEMcu არ მუშაობს, მაშინ არ პანიკა. ეს არის მხოლოდ USB დრაივერის ჩიპი ან USB კონექტორი
DIY MusiLED, მუსიკა სინქრონიზებული LED- ები ერთი დაწკაპუნებით Windows & Linux აპლიკაციით (32 ბიტიანი და 64 ბიტიანი). ადვილია ხელახლა შექმნა, მარტივი გამოყენება, მოსახერხებელი პორტი .: 3 ნაბიჯი
DIY MusiLED, მუსიკა სინქრონიზებული LED- ები ერთი დაწკაპუნებით Windows & Linux აპლიკაციით (32 ბიტიანი და 64 ბიტიანი). ადვილია ხელახლა შექმნა, გამოყენება ადვილი, მოსახერხებელი პორტი .: ეს პროექტი დაგეხმარებათ დაუკავშიროთ 18 LED (6 წითელი + 6 ლურჯი + 6 ყვითელი) თქვენს Arduino დაფას და გაანალიზოთ თქვენი კომპიუტერის ხმოვანი ბარათის რეალურ დროში სიგნალები და გადაიტანოთ ისინი LED- ები აანთებს მათ დარტყმის ეფექტების მიხედვით (Snare, High Hat, Kick)
გაფართოების სენსორები Nodemcu ESP8266 Weewx: 8 ნაბიჯი (სურათებით)
გაფართოების სენსორები Nodemcu ESP8266 Weewx– ისთვის: ეს არის ინსტრუქცია, რომ დაამატოთ სენსორები weewx ამინდის სადგურის პროგრამულ უზრუნველყოფაში. თუ თქვენ არ გაქვთ weewx, შეგიძლიათ გაეცნოთ ამ სახელმძღვანელოში. თქვენ გჭირდებათ Arduino კოდის ძირითადი ცოდნა და როგორ ატვირთოთ მოწყობილობა. აქ ნახავთ weewx ინფორმაციას
NODEMCU LUA ESP8266 MCP23017 16 ბიტიანი პორტი გაფართოების IC: 6 ნაბიჯი (სურათებით)
NODEMCU LUA ESP8266 MCP23017 16 ბიტიანი პორტით გაფართოების IC: MCP23017 არის შედარებით ადვილი IC დაფის გასაკეთებლად, რადგან მას აქვს პორტი A და B ჩიპის ორივე მხარეს და ქინძისთავები თანმიმდევრობით. ანალოგიურად I2C მისამართის ავტობუსი არის ასევე ერთად. ამ IC– ზე არის 2 პინი, რომლებიც გამოუყენებელია, რადგან ის