Πίνακας περιεχομένων:
- Βήμα 1: Επισκόπηση
- Βήμα 2: Τι χρειάζεστε / Σύνδεσμοι
- Βήμα 3: Διάγραμμα κυκλώματος
- Βήμα 4: Προγραμματισμός - Ι
- Βήμα 5: Προγραμματισμός - II
- Βήμα 6: Βίντεο
Βίντεο: Εφαρμογή του MCP-23008 χρησιμοποιώντας τη διεπαφή ρελέ (I2C) :: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
γεια σας
Καλούς χαιρετισμούς.. !!
I (Somanshu Choudhary) για λογαριασμό των τεχνολογικών επιχειρήσεων Dcube που θα ελέγχουν τα Relays μέσω πρωτοκόλλου I2C χρησιμοποιώντας Arduino nano και MCP23008.
Βήμα 1: Επισκόπηση
- Η συσκευή MCP23X08 παρέχει παράλληλη επέκταση I/O 8 bit, γενικής χρήσης, για εφαρμογές διαύλου I2C ή SPI.
- Το MCP23X08 αποτελείται από πολλαπλούς καταχωρητές διαμόρφωσης 8 bit για επιλογή εισόδου, εξόδου και πολικότητας. Η κύρια μονάδα συστήματος μπορεί να ενεργοποιήσει το I/O είτε ως είσοδο είτε ως έξοδο, γράφοντας τα bits διαμόρφωσης I/O. Τα δεδομένα για κάθε είσοδο ή έξοδο διατηρούνται στον αντίστοιχο καταχωρητή εισόδου ή εξόδου. Η πολικότητα του καταχωρητή θύρας εισόδου μπορεί να αντιστραφεί με τον καταχωρητή αντιστροφής πολικότητας. Όλοι οι καταχωρητές μπορούν να διαβαστούν από τον κύριο σύστημα.
- ΣΥΝΔΕΣΜΟΣ ΔΕΔΟΜΕΝΩΝ:
Βήμα 2: Τι χρειάζεστε / Σύνδεσμοι
1. Arduino Nano LINK:
2. Ασπίδα για Arduino Nano LINK:
3. Καλώδιο USB τύπου A έως Micro Type B 6 πόδια μακριά
4. Σύνδεσμος καλωδίου I²C:
5. Οκτώ ελεγχόμενα ρελέ SPDT I²C
6. Προσαρμογέας LINK:
Βήμα 3: Διάγραμμα κυκλώματος
Βήμα 4: Προγραμματισμός - Ι
- Σε αυτόν τον κώδικα, χρησιμοποιώ το Παράδειγμα προγραμματισμού λειτουργιών
- Χρησιμοποίησα διαφορετικές καρτέλες για τον ορισμό των λειτουργιών και την κλήση λειτουργιών
ΚΩΔΙΚΟΣ ΚΑΤΩ ΠΙΝΑΚΑΣ q:
// Απλός κώδικας κλήσης λειτουργίας
#include void setup ()
{
// διεύθυνση I2C του MCP23008
#define MCP_ADDR 0x20
// Εγγραφείτε στο I2C Bus ως κύριο
Wire.begin ();
// Ξεκινήστε σειριακή επικοινωνία και ορίστε ρυθμό baud
Serial.begin (9600);
// Ξεκινήστε τη μετάδοση με δεδομένη συσκευή στο δίαυλο I2C
Wire.beginTransmission (MCP_ADDR);
// Επιλέξτε μητρώο IODIR - I/O DIRECTION REGISTER
Wire.write (0x00);
// Επιλέξτε την απαιτούμενη λειτουργία (έξοδος)
Wire.write (0x00);
// Επιλέξτε καταχωρητής ΔΙΑΜΟΡΦΩΣΗΣ
Wire.write (0x05);
// Επιλέξτε την απαιτούμενη λειτουργία
Wire.write (0x0E);
// τερματισμός μετάδοσης
Wire.endTransmission ();
}
κενός βρόχος ()
{
a1_on ();
καθυστέρηση (1000)?
a1_off ();
καθυστέρηση (1000)?
a2_on ();
καθυστέρηση (1000)?
a2_off ();
καθυστέρηση (1000)?
a3_on ();
καθυστέρηση (1000)?
a3_off ();
καθυστέρηση (1000)?
a4_on ();
καθυστέρηση (1000)?
a4_off ();
καθυστέρηση (1000)?
a5_on ();
καθυστέρηση (1000)?
a5_off ();
καθυστέρηση (1000)?
a6_on ();
καθυστέρηση (1000)?
a6_off ();
καθυστέρηση (1000)?
a7_on ();
καθυστέρηση (1000)?
a7_off ();
καθυστέρηση (1000)?
a8_on ();
καθυστέρηση (1000)?
a8_off ();
}
ΚΩΔΙΚΟΣ ΚΑΤΩ ΠΙΝΑΚΑΣ q1:
// Αυτός ο κωδικός είναι για το ρελέ 1 on και off στο πλοίο
void a1_on () {
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x01);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
void a1_off ()
{
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
ΚΩΔΙΚΟΣ ΚΑΤΩ ΠΙΝΑΚΑΣ q2:
// Αυτός ο κωδικός είναι για το ρελέ 2 on και off στο πλοίο
void a2_on () {
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x02);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
void a2_off ()
{
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
ΚΩΔΙΚΟΣ ΚΑΤΩ ΠΙΝΑΚΑΣ q3: // Αυτός ο κωδικός είναι για το ρελέ 3 on και off στο πλοίο
void a3_on ()
{
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x04);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
void a3_off ()
{
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
Βήμα 5: Προγραμματισμός - II
ΚΩΔΙΚΟΣ ΚΑΤΩ ΠΙΝΑΚΑΣ q4:
// Αυτός ο κωδικός είναι για το ρελέ 4 on και off στο πλοίο
άκυρο a4_on ()
{
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x08);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
void a4_off ()
{
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
ΚΩΔΙΚΟΣ ΚΑΤΩ ΠΙΝΑΚΑΣ q5:
// Αυτός ο κωδικός είναι για το ρελέ 5 on και off στο πλοίο
void a5_on ()
{
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x10);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
void a5_off ()
{
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
ΚΩΔΙΚΟΣ ΚΑΤΩ ΠΙΝΑΚΑΣ q6: // Αυτός ο κωδικός είναι για το ρελέ 6 on και off στο πλοίο
void a6_on ()
{
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x20);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
void a6_off ()
{
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
ΚΩΔΙΚΟΣ ΚΑΤΩ ΠΙΝΑΚΑΣ q7: // Αυτός ο κωδικός είναι για το ρελέ 7 on και off στο πλοίο
void a7_on () {
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x40);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
void a7_off ()
{
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
ΚΩΔΙΚΟΣ ΚΑΤΩ ΠΙΝΑΚΑΣ q8: // Αυτός ο κωδικός είναι ενεργοποιημένος και απενεργοποιημένος ρελέ 8 επί του σκάφους
void a8_on () {
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x80);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
void a8_off ()
{
// Έναρξη μετάδοσης
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
καθυστέρηση (1800)?
Wire.requestFrom (MCP_ADDR, 1)?
int GPIO = Wire.read ();
Wire.endTransmission ();
// Έξοδος στην οθόνη
Serial.print ("τιμή GPIO:");
Serial.println (GPIO, BIN);
}
Βήμα 6: Βίντεο
Για περαιτέρω απορίες Μη διστάσετε να επισκεφθείτε τον ιστότοπό μας:
www.dcubetechnologies.com
Συνιστάται:
Έλεγχος του ESP8266 χρησιμοποιώντας την εφαρμογή Telegram: 7 βήματα
Έλεγχος ESP8266 Χρήση της εφαρμογής Telegram: Γεια, τι συμβαίνει, παιδιά! Akarsh εδώ από τη CETech. Έχετε ποτέ αναρωτηθεί για τη συνομιλία με τις συσκευές σας μέσω μιας εφαρμογής ανταλλαγής μηνυμάτων; Ακούγεται περίεργο, σωστά. Σήμερα όμως θα κάνουμε κάτι παρόμοιο με αυτό. Μην ανησυχείτε δεν χρειάζεται να αγοράσετε κινητά τηλέφωνα
Ξεκινώντας με τη διεπαφή αισθητήρα I2C; - Διασυνδέστε το MMA8451 σας χρησιμοποιώντας ESP32: 8 βήματα
Ξεκινώντας με τη διεπαφή αισθητήρα I2C; - Διασυνδέστε το MMA8451 σας χρησιμοποιώντας ESP32: Σε αυτό το σεμινάριο, θα μάθετε τα πάντα σχετικά με τον τρόπο εκκίνησης, σύνδεσης και απόκτησης συσκευής I2C (Επιταχυνσιόμετρο) που λειτουργεί με χειριστήριο (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Η μέτρηση του καρδιακού ρυθμού σας βρίσκεται στην άκρη του δακτύλου σας: Προσέγγιση φωτοπληθυσμογραφίας για τον προσδιορισμό του καρδιακού ρυθμού: 7 βήματα
Η μέτρηση του καρδιακού ρυθμού σας βρίσκεται στην άκρη του δακτύλου σας: Προσέγγιση φωτοπληθυσμογραφίας για τον προσδιορισμό του καρδιακού ρυθμού: Ο φωτοπληθυσμογράφος (PPG) είναι μια απλή και χαμηλού κόστους οπτική τεχνική που χρησιμοποιείται συχνά για τον εντοπισμό αλλαγών στον όγκο αίματος σε μια μικροαγγειακή κλίνη ιστού. Χρησιμοποιείται κυρίως μη επεμβατικά για την πραγματοποίηση μετρήσεων στην επιφάνεια του δέρματος, συνήθως
8 Έλεγχος ρελέ με NodeMCU και δέκτη IR χρησιμοποιώντας WiFi και IR Τηλεχειριστήριο και εφαρμογή Android: 5 βήματα (με εικόνες)
8 Έλεγχος ρελέ με δέκτη NodeMCU και IR χρησιμοποιώντας WiFi και IR Τηλεχειριστήριο και εφαρμογή Android: Έλεγχος 8 διακοπτών ρελέ χρησιμοποιώντας nodemcu και δέκτη ir μέσω wifi και ir απομακρυσμένης και εφαρμογής Android. Το ir remote λειτουργεί ανεξάρτητα από τη σύνδεση wifi. ΕΔΩ ΕΙΝΑΙ ΕΝΗΜΕΡΩΜΕΝΗ ΚΛΙΚ ΕΔΩ
Χρήση του PSP ως Joystick του υπολογιστή και στη συνέχεια έλεγχος του υπολογιστή σας με το PSP: 5 βήματα (με εικόνες)
Χρήση του PSP ως Joystick του υπολογιστή και στη συνέχεια έλεγχος του υπολογιστή σας με το PSP: Μπορείτε να κάνετε πολλά ωραία πράγματα με το PSP homebrew και σε αυτό το εκπαιδευτικό πρόγραμμα θα σας μάθω πώς να χρησιμοποιείτε το PSP σας ως χειριστήριο για παιχνίδια, αλλά υπάρχει επίσης ένα πρόγραμμα που σας επιτρέπει να χρησιμοποιείτε το joystick ως ποντίκι. Εδώ είναι η μητέρα