Table des matières:
Vidéo: Ajout d'une EEPROM 24LC256 à l'Arduino Due : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
L'arduino due n'a pas d'eeprom. Cette instructable en ajoute une et vous permet de stocker des valeurs dans une mémoire non volatile qui survivra à une mise à jour du micrologiciel arduino.
Étape 1: la planche à pain
Il y a de très bonnes instructions ici: https://www.hobbytronics.co.uk/arduino-external-eeprom Je viens de les suivre. La photo montre le circuit en maquette. les broches 1 à 4 et la broche 7 sont mises à la terre. la broche 8 est connectée à l'alimentation 3,3 V sur la carte due. Les fils jaune (broche 6) et blanc (broche 5) connectés aux broches i2c SDA (données) et SCL (horloge) sur la carte due (numérotés 21 et 20).
Étape 2: Temps de codage
Voici quelques extraits de code que j'utilise dans mes croquis. Tout d'abord, incluez les en-têtes de la bibliothèque Wire quelque part vers le haut de votre croquis: /* Utilisez l'EEPROM 24LC256 pour enregistrer les paramètres */ #include Ensuite, ajoutez des fonctions pour lire et écrire des octets à partir de l'EEPROM fonction d'écriture de page dans la puce également). Notez qu'il existe une définition de macro de 0x50.. c'est l'adresse de la puce sur le bus i2c (vous pouvez connecter plus d'un truc i2c sur un bus i2c et sélectionner celui à qui vous voulez parler en changeant l'adresse). /* Ces deux fonctions nous aident à écrire sur la puce EEPROM 24LC256 */ #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)); // Fil LSB.write(rdata); Wire.endTransmission(); //Serial.print("EEPROM write: addr: "); //Série.print(addr); //Série.print(" "); //Série.println(données); retard(5); } octet EEPROM_read(unsigned int addr) { octet data = 0xFF; Wire.beginTransmission(EEPROM_ADDR); Wire.write((int)(addr >> 8)); // MSB Wire.write((int)(addr & 0xFF)); // Fil LSB.endTransmission(); Wire.requestFrom(EEPROM_ADDR, 1); if (Wire.available()) data = Wire.read(); //Serial.print("EEPROM read: addr: "); //Série.print(addr); //Série.print(" "); //Série.println(données); retard(5); renvoyer des données; } Vous pouvez décommenter les lignes Serial.print(…) si vous voulez voir une sortie de débogage. Dans la fonction setup() d'arduinos, vous démarrez la bibliothèque de fils et pouvez lire les valeurs initiales. Ici, j'ai lu en deux octets (flags et max_cc), deux mots (lean_min et lean_max) et un tableau de mots sd_max[3]: // lecture des valeurs enregistrées dans l'EEPROM Wire.begin(); drapeaux=EEPROM_read(0); max_cc=EEPROM_read(1); maigre_min=mot(EEPROM_read(3), EEPROM_read(2)); maigre_max=mot(EEPROM_read(5), EEPROM_read(4)); for(int j=0;j<3;j) { sd_max[j]=mot(EEPROM_read(7 j*2), EEPROM_read(6 j*2)); } Voici le bout de code qui les écrit dans l'EEPROM: EEPROM_write(0, flags); 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)); for(int j=0;j<3;j) { EEPROM_write(6 j*2, lowByte(sd_max[j])); EEPROM_write(7 j*2, highByte(sd_max[j])); } C'est à peu près tout.
Étape 3: câblez-le
Câblez-le sur un veroboard pour le visser dans un boîtier et les travaux sont effectués.
Conseillé:
Ajout d'une fonction de charge rapide à une banque d'alimentation : 5 étapes (avec photos)
Ajout d'une fonction de charge rapide à une banque d'alimentation : dans ce projet, je vais vous montrer comment j'ai modifié une banque d'alimentation commune afin de réduire son temps de charge ridiculement long. En cours de route, je parlerai du circuit du powerbank et de la raison pour laquelle la batterie de mon powerbank est un peu spéciale. Allons-y st
Ajout d'une fonction de limite de courant à un convertisseur Buck/Boost : 4 étapes (avec photos)
Ajout d'une fonction de limite de courant à un convertisseur Buck/Boost : Dans ce projet, nous examinerons de plus près un convertisseur Buck/Boost commun et créerons un petit circuit supplémentaire qui lui ajoute une fonction de limite de courant. Avec lui, le convertisseur buck/boost peut être utilisé comme une alimentation variable de banc de laboratoire. Le
Ajout de la fonctionnalité WiFi AutoConnect à une esquisse existante : 3 étapes
Ajout de la fonction WiFi AutoConnect à une esquisse existante : Dans un article récent, nous avons découvert la fonction AutoConnect pour les cartes ESP32/ESP8266 et l'une des questions posées concernait son ajout à des esquisses existantes. Dans cet article, nous apprendrons comment faire exactement cela et nous utiliserons le projet de temps de réseau
Module d'alimentation IoT : Ajout d'une fonction de mesure de la puissance IoT à mon contrôleur de charge solaire : 19 étapes (avec photos)
Module d'alimentation IoT : Ajout d'une fonction de mesure de la puissance IoT à mon contrôleur de charge solaire : Bonjour à tous, j'espère que vous allez tous bien ! Dans ce instructable, je vais vous montrer comment j'ai fait un module de mesure de puissance IoT qui calcule la quantité d'énergie générée par mes panneaux solaires, qui est utilisé par mon contrôleur de charge solaire t
Ajout de Motion Control à une horloge de projection : 7 étapes
Ajout du contrôle de mouvement à une horloge de projection : Objectif : Ajouter un capteur de mouvement qui éclaire l'horloge la nuit lorsqu'il détecte un mouvement, et rendre la luminosité du rétroéclairage réglable manuellement. Pourquoi : Je n'ai que quelques exigences pour une bonne horloge de chevet. Il doit être facilement visible, mais pas léger