Πίνακας περιεχομένων:

Προσθήκη 24LC256 EEPROM στο Arduino due: 3 βήματα
Προσθήκη 24LC256 EEPROM στο Arduino due: 3 βήματα

Βίντεο: Προσθήκη 24LC256 EEPROM στο Arduino due: 3 βήματα

Βίντεο: Προσθήκη 24LC256 EEPROM στο Arduino due: 3 βήματα
Βίντεο: Προσθήκη σε Αλδεΰδες και Κετόνες 2024, Νοέμβριος
Anonim
Προσθήκη 24LC256 EEPROM στο Arduino Due
Προσθήκη 24LC256 EEPROM στο Arduino Due

Στο arduino δεν υπάρχει eeprom. Αυτό το εκπαιδευτικό προσθέτει ένα και σας επιτρέπει να αποθηκεύσετε τιμές σε μη πτητική μνήμη που θα επιβιώσουν από μια ενημέρωση υλικολογισμικού arduino.

Βήμα 1: Breadboarding

Breadboarding
Breadboarding

Υπάρχουν μερικές πολύ καλές οδηγίες εδώ: https://www.hobbytronics.co.uk/arduino-external-eeprom Μόλις τις ακολούθησα. Η φωτογραφία δείχνει το κύκλωμα του breadboarded. οι ακίδες 1 έως 4 και ο πείρος 7 είναι γειωμένοι. Ο πείρος 8 είναι συνδεδεμένος με την τροφοδοσία 3.3V στον οφειλόμενο πίνακα. Τα κίτρινα (pin 6) και τα λευκά (pin 5) καλώδια συνδέονται με τις καρφίτσες i2c SDA (δεδομένα) και SCL (ρολόι) στον οφειλόμενο πίνακα (αριθμημένοι 21 και 20).

Βήμα 2: Χρόνος κωδικού

Χρόνος κωδικού
Χρόνος κωδικού

Ακολουθούν μερικά αποσπάσματα κώδικα που χρησιμοποιώ στα σκίτσα μου. Πρώτον, συμπεριλάβετε τις κεφαλίδες της βιβλιοθήκης Wire κάπου κοντά στην κορυφή του σκίτσου σας: / * Χρησιμοποιήστε το 24LC256 EEPROM για να αποθηκεύσετε τις ρυθμίσεις * / #include Στη συνέχεια προσθέστε μερικές λειτουργίες για ανάγνωση και εγγραφή byte από το EEPROM (με ενδιαφέρουν μόνο τα μεμονωμένα byte, αλλά υπάρχει δυνατότητα εγγραφής σελίδας και στο τσιπ). Σημειώστε ότι υπάρχει μακροεντολή 0x50.. αυτή είναι η διεύθυνση του τσιπ στο δίαυλο i2c (μπορείτε να συνδέσετε περισσότερα από ένα πράγματα i2c σε ένα δίαυλο i2c και να επιλέξετε σε ποια θέλετε να μιλήσετε αλλάζοντας τη διεύθυνση). / * Αυτές οι δύο συναρτήσεις μας βοηθούν να γράψουμε στο τσιπ 24LC256 EEPROM */ #define EEPROM_ADDR 0x50 void EEPROM_write (unsigned int addr, byte data) {int rdata = data; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.write (rdata); Wire.endTransmission (); //Serial.print("EEPROM write: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println (δεδομένα); καθυστέρηση (5)? } byte EEPROM_read (unsigned int addr) {byte data = 0xFF; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.endTransmission (); Wire.requestFrom (EEPROM_ADDR, 1); if (Wire.available ()) data = Wire.read (); //Serial.print("EEPROM read: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println (δεδομένα); καθυστέρηση (5)? επιστροφή δεδομένων? } Μπορείτε να αποσυνδέσετε τις γραμμές Serial.print (…) εάν θέλετε να δείτε κάποια έξοδο εντοπισμού σφαλμάτων. Στη λειτουργία εγκατάστασης arduinos () ξεκινάτε τη βιβλιοθήκη καλωδίων και μπορείτε να διαβάσετε σε αρχικές τιμές. Εδώ διαβάζω σε δύο byte (σημαίες και max_cc), δύο λέξεις (lean_min και lean_max) και έναν πίνακα λέξεων sd_max [3]: // διαβάζω τιμές αποθηκευμένες στο EEPROM Wire.begin (); σημαίες = EEPROM_read (0); max_cc = EEPROM_read (1); lean_min = λέξη (EEPROM_read (3), EEPROM_read (2)); lean_max = λέξη (EEPROM_read (5), EEPROM_read (4)); για (int j = 0; j <3; j) {sd_max [j] = λέξη (EEPROM_read (7 j*2), EEPROM_read (6 j*2)); } Ακολουθεί ένα κομμάτι κώδικα που τα γράφει στο EEPROM: EEPROM_write (0, σημαίες). EEPROM_write (1, max_cc); EEPROM_write (2, lowByte (lean_min)); EEPROM_write (3, highByte (lean_min)); EEPROM_write (4, lowByte (lean_max)); EEPROM_write (5, highByte (lean_max)); για (int j = 0; j <3; j) {EEPROM_write (6 j*2, lowByte (sd_max [j])); EEPROM_write (7 j*2, highByte (sd_max [j])); } Αυτό είναι πραγματικά.

Βήμα 3: Συνδέστε το

Wire It Up
Wire It Up

Συνδέστε το σε κάποιο χαρτόνι για να βιδωθεί σε ένα περίβλημα και οι εργασίες έχουν γίνει.

Συνιστάται: