Πίνακας περιεχομένων:
- Βήμα 1: Καλωδίωση του MCP23008
- Βήμα 2: Κατασκευή πίνακα
- Βήμα 3: Χρήση μονάδας βιβλιοθήκης
- Βήμα 4: Πρόγραμμα Kitt Car
- Βήμα 5: 7 LED τμήμα
- Βήμα 6: Συμπέρασμα
Βίντεο: NODEMCU LUA ESP8266 Με MCP23008 8 Bit θύρα Expander IC: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Το MCP23008 είναι ένα 8-Bit I/O Expander με σειριακή διεπαφή και λειτουργεί μεταξύ 1,8 και 5,5 βολτ, επομένως είναι ιδανικό για τα ESP8266, Arduino, Raspberry Pi, PIC Chips και άλλα.
Αν έχετε δει το άλλο μου Instructable στο MCP23017, ίσως αναρωτιέστε γιατί κάνω επίσης ένα για το MCP23008, καθώς είναι πραγματικά μια μικρότερη έκδοση του ίδιου πράγματος.
Οι λόγοι είναι ότι οι καταχωρητές του είναι διαφορετικοί τόσο στο όνομα όσο και στον αριθμό και θα ήθελα να δείξω πώς να χρησιμοποιώ μια έτοιμη μονάδα βιβλιοθήκης. Δεν είναι όλοι έμπειροι όταν χρησιμοποιούν το NodeMCU lua, οπότε θα ήθελα να δείξω αυτήν την πτυχή του προγραμματισμού καθώς και τον τρόπο χρήσης του MCP23008.
Η βιβλιοθήκη και τα προγράμματα είναι διαθέσιμα στη διεύθυνση github.com.
Το φύλλο δεδομένων για το MCP23008 είναι διαθέσιμο από το Microchip.
Βήμα 1: Καλωδίωση του MCP23008
Το IC MCP23008 είναι απλής διάταξης και η κατασκευή ενός πίνακα είναι πραγματικά εύκολη γι 'αυτό. Μπορείτε επίσης να ρυθμίσετε το κύκλωμα σε μια σανίδα ψωμιού.
Συνδέσεις καρφιτσών στον πίνακα μου
- Καρφίτσα 18 (VDD) σε 3v3
- Καρφίτσα 9 (VSS) στο GND
- Καρφίτσα 7 (NC) σε 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: Κατασκευή πίνακα
Χρησιμοποίησα έναν πίνακα λωρίδας Vero 25 mm x 64 mm (9 σειρές x 25 οπές) για την κατασκευή της σανίδας μου. Είναι λίγο σφιχτό, αλλά καθώς οι περισσότερες καρφίτσες που χρειάζεστε βρίσκονται και στις δύο πλευρές του IC, είναι επαρκές για αυτό που πρέπει να κάνει.
Έχω χρησιμοποιήσει 8 ακίδες και 8 υποδοχές κεφαλίδας για τη θύρα Α, ώστε να μπορώ να συνδέσω τις διάφορες μονάδες μου, καθώς και άλλες καλωδιώσεις για διαφορετικά έργα. Έχω προσθέσει επιπλέον καρφίτσες Gnd και 3.3V καθώς διαπιστώνω ότι υπάρχει πάντα έλλειψη αυτών κατά τη σύνδεση των μονάδων μεταξύ τους.
Βήμα 3: Χρήση μονάδας βιβλιοθήκης
Οι ενότητες βιβλιοθήκης συνήθως περιέχουν μια επιλογή από υπορουτίνες, συναρτήσεις και μεταβλητές στις οποίες μπορεί να έχει πρόσβαση ένα άλλο πρόγραμμα. Το ίδιο το πρόγραμμα δεν εκτελείται, αλλά οι λειτουργίες του είναι προσβάσιμες από το πρόγραμμα κλήσης. Αυτό σημαίνει ότι μπορείτε να έχετε τις υπορουτίνες σας μέσα στη βιβλιοθήκη και να τις καλείτε όποτε τις χρειάζεστε, δημιουργώντας ένα μικρό πρόγραμμα κλήσεων. Γίνεται πιο πολύτιμο εάν έχετε πολλά διαφορετικά προγράμματα που χρησιμοποιούν τις ίδιες υπορουτίνες, δεν χρειάζεται να συμπεριλάβετε τις υπορουτίνες σε κάθε πρόγραμμα.
Σημείωση: το πρόγραμμα mcp23008.lua πρέπει να φορτωθεί στη μνήμη ESP8266 όπως και τα άλλα προγράμματα.
Έχω συμπεριλάβει τα προγράμματα github.com εδώ καθώς και ένα απλό πρόγραμμα (test.lua) για να δείξω ότι η βιβλιοθήκη λειτουργεί.
Υπάρχουν τουλάχιστον 2 τρόποι για να συμπεριλάβετε τη βιβλιοθήκη στο πρόγραμμά σας.
απαιτούν ("mcp23008")
mcp23008. αρχή (0x0, gpio2, gpio0, i2c. SLOW)
ή
mcp = απαιτεί ("mcp23008")
mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)
Και τα δύο παραπάνω κάνουν το ίδιο πράγμα, αλλά η δεύτερη μέθοδος σάς επιτρέπει να χρησιμοποιήσετε τη δική σας μεταβλητή αντί για το όνομα του προγράμματος.
Βήμα 4: Πρόγραμμα Kitt Car
Έχω συμπεριλάβει το πρόγραμμα KittCar23008.lua και το KittLib.lua που χρησιμοποιεί τη βιβλιοθήκη για να δείξει τις διαφορές στον τρόπο γραφής προγραμμάτων με αυτόν τον τρόπο. Και τα δύο προγράμματα κάνουν το ίδιο πράγμα.
Το 8 LED plug -in διατίθεται από το Ebay ως κιτ και είναι γνωστό ως 8 DIY Kit Flowing Water Light LED DIY Kit, 99p από την Κίνα. Πρέπει να το κολλήσετε μόνοι σας.
Σημείωση: Εάν αντιμετωπίζετε πρόβλημα κατά την προσπάθεια εκτέλεσης του προγράμματος KittLib.lua, δοκιμάστε να συνδέσετε στιγμιαία τον ακροδέκτη MCP23008 RESET στο Gnd. Ξέρω ότι αυτό θα δώσει ένα άμεσο βραχυκύκλωμα (καθώς είναι συνδεδεμένο σε 3.3V) και πρέπει να επαναφέρετε όλα τα άλλα. Λειτουργεί επίσης συνδέοντας το Gnd μέσω αντίστασης 10 ohm, πιθανότατα ένας καλύτερος τρόπος για να το κάνετε.
Διαπίστωσα επίσης ότι το KittLib.lua θα λειτουργούσε χωρίς προβλήματα μετά τη λειτουργία του test.lua (Μην με ρωτήσετε γιατί;)
Δοκίμασα διάφορους τρόπους για να επιλύσω το πρόβλημα του προγράμματος KittLib.lua, αλλά μέχρι στιγμής δεν μπορώ να βρω κάποιον λογικό λόγο για τον οποίο να καταρρέει. Έχει κανείς ιδέα;
Δεν έχω γράψει όλα αυτά τα προγράμματα μόνος μου, οπότε δεν είμαι σε θέση να πω γιατί υπάρχει πρόβλημα, αν και μετά την εξέταση της κωδικοποίησης, δεν φαίνεται να υπάρχει κάτι προφανώς λάθος.
Βήμα 5: 7 LED τμήμα
Όπως και με το πρόγραμμα KittCar.lua παραπάνω, έχω συμπεριλάβει ένα αυτόνομο και ένα πρόγραμμα που εξαρτάται από τη βιβλιοθήκη για την οδήγηση μιας οθόνης LED 7 τμημάτων.
Και πάλι, και τα δύο προγράμματα κάνουν το ίδιο πράγμα, αλλά δείχνουν πώς να χρησιμοποιείτε μια ενότητα βιβλιοθήκης είτε γραμμένη από τον εαυτό σας είτε από κάποιον άλλο.
Βήμα 6: Συμπέρασμα
Προσπάθησα να δείξω πώς να χρησιμοποιώ μονάδες κώδικα μέσα στο περιβάλλον Lua και να το εφαρμόζω σε ένα συγκεκριμένο IC ταυτόχρονα.
Παρόλο που είχα πρόβλημα να το κάνω αυτό, νομίζω ότι υπάρχουν αρκετά για να δείξουμε πώς λειτουργούν αυτές οι ενότητες, καθώς και η επίδειξη μιας πραγματικής εφαρμογής.
Συνιστάται:
Προσθέστε μια θύρα δικτύου WIZ820io / USR -ES1 - Wiznet W5500 στο Raspberry Pi σας: 10 βήματα
Προσθέστε μια θύρα δικτύου WIZ820io / USR -ES1 - Wiznet W5500 στο Raspberry Pi σας: Εν μέρει λόγω του ενδιαφέροντός μου να κάνω κάτι τέτοιο και εν μέρει λόγω του ενδιαφέροντός μου για την Codesys το είχα στο μυαλό μου εδώ και λίγο καιρό δοκιμάστε και συνδέστε μια δεύτερη θύρα διασύνδεσης δικτύου σε ένα Raspberry Pi. Έτσι, ενώ κάνω άλλα έργα, είμαι
Πολλαπλή θύρα USB χωρίς κανένα PCB: 4 βήματα
Πολλαπλή θύρα USB χωρίς κανένα PCB: Αυτό είναι το δεύτερο διδακτικό μου και εδώ θα μοιραστώ μαζί σας το έργο όπου μπορείτε να κάνετε πολλαπλή θύρα USB για χρήση στον υπολογιστή σας, επειδή όταν εργάζεστε από το σπίτι έχετε μεγάλο πρόβλημα με τη χρήση πολλών συσκευές καθώς οι περισσότερες συσκευές τώρα έχουν
Η θύρα 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-bit & 64-bit). Εύκολο στην αναδημιουργία, εύκολο στη χρήση, εύκολο στη θύρα .: 3 βήματα
DIY MusiLED, Μουσικά συγχρονισμένα LED με εφαρμογή με ένα κλικ Windows & Linux (32-bit & 64-bit). Εύκολη αναδημιουργία, εύκολη στη χρήση, εύκολη μεταφορά: Αυτό το έργο θα σας βοηθήσει να συνδέσετε 18 LED (6 κόκκινα + 6 μπλε + 6 κίτρινα) στον πίνακα Arduino και να αναλύσετε τα σήματα σε πραγματικό χρόνο της κάρτας ήχου του υπολογιστή σας και να τα μεταφέρετε σε τα LED για να τα ανάβουν σύμφωνα με τα εφέ beat (Snare, High Hat, Kick)
NODEMCU LUA ESP8266 Με MCP23017 16 Bit θύρα Expander IC: 6 βήματα (με εικόνες)
NODEMCU LUA ESP8266 Με MCP23017 16 Bit Port Expander IC: Το MCP23017 είναι ένα σχετικά εύκολο IC για να φτιάξετε μια πλακέτα, καθώς έχει θύρες A και B σε κάθε πλευρά του τσιπ και οι ακίδες είναι σε διαδοχική σειρά. Ομοίως, ο δίαυλος διευθύνσεων I2C είναι όλα μαζί επίσης. Υπάρχουν 2 ακίδες σε αυτό το IC που δεν χρησιμοποιούνται καθώς είναι