Оглавление:
Видео: Добавление 24LC256 EEPROM в Arduino Due: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Arduino due не имеет EEPROM. Эта инструкция добавляет один и позволяет хранить значения в энергонезависимой памяти, которая выдержит обновление прошивки Arduino.
Шаг 1. Макетирование
Здесь есть несколько действительно хороших инструкций: https://www.hobbytronics.co.uk/arduino-external-eeprom Я просто следил за ними. На фотографии показана макетная схема. контакты с 1 по 4 и контакт 7 заземлены. Контакт 8 подключен к источнику питания 3,3 В. Желтый (контакт 6) и белый (контакт 5) провода подключены к контактам i2c SDA (данные) и SCL (часы) на соответствующей плате (пронумерованы 21 и 20).).
Шаг 2: время кода
Вот несколько фрагментов кода, которые я использую в своих набросках. Во-первых, включите заголовки библиотеки Wire где-нибудь в верхней части вашего скетча: / * Используйте 24LC256 EEPROM для сохранения настроек * / #include Затем добавьте некоторые функции для чтения и записи байтов из EEPROM (меня интересуют только отдельные байты, но есть функция записи страниц в чипе тоже). Обратите внимание, что есть определение макроса 0x50.. это адрес микросхемы на шине i2c (вы можете подключить более одного устройства i2c к шине i2c и выбрать, с какой из них вы хотите разговаривать, изменив адрес). / * Эти две функции помогают нам писать в микросхему EEPROM 24LC256 * / #define EEPROM_ADDR 0x50 void EEPROM_write (unsigned int addr, byte data) {int rdata = data; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (адрес >> 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(data); задержка (5); } byte EEPROM_read (unsigned int addr) {байтовые данные = 0xFF; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (адрес >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.endTransmission (); Wire.requestFrom (EEPROM_ADDR, 1); если (Wire.available ()) data = Wire.read (); //Serial.print("EEPROM read: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(data); задержка (5); вернуть данные; } Вы можете раскомментировать строки Serial.print (…), если хотите увидеть некоторые отладочные данные. В функции arduinos setup () вы запускаете библиотеку проводов и можете читать начальные значения. Здесь я прочитал два байта (флаги и max_cc), два слова (Lean_min и Lean_max) и массив слов sd_max [3]: // чтение значений, сохраненных в EEPROM Wire.begin (); flags = 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] = word (EEPROM_read (7 j * 2), EEPROM_read (6 j * 2)); } Вот фрагмент кода, который записывает их в 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)); для (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: Подключите его
Подключите его к верёвочному картону, чтобы прикрутить к корпусу, и работа будет сделана.
Рекомендуемые:
Добавление монитора использования к домашнему термостату: 4 шага
Добавление монитора использования к домашнему термостату: давным-давно, задолго до того, как появилась такая вещь, как "умный" термостат, у меня был домашний термостат, который ежедневно (я думаю, может быть, еженедельно) выдавал "вовремя" для моей системы отопления и кондиционирования. Вещи изменились … Последний
Добавление или снятие защиты от записи для любого типа дисков: 3 шага
Добавить или удалить защиту от записи для любого типа дисков. Хотите добавить или удалить защиту от записи на своем собственном диске? Следуйте этому руководству, и вы сможете это сделать
Добавление регенерации в интеллектуальное зарядное устройство / разрядник Arduino ASCD 18650 Бретта: 3 шага
Добавление регенерации в интеллектуальное зарядное устройство / разрядник Arduino ASCD 18650 Бретта: Сообщество DIY TESLA powerwall быстро растет. Самый важный шаг в создании Powerwall - это группирование аккумуляторных элементов в блоки с одинаковой общей емкостью. Это позволяет устанавливать аккумуляторные блоки последовательно и легко балансировать
Добавление оптического тахометра на базе Arduino к маршрутизатору с ЧПУ: 34 шага (с изображениями)
Добавьте оптический тахометр на основе Arduino к маршрутизатору с ЧПУ: создайте оптический индикатор оборотов для вашего маршрутизатора с ЧПУ с Arduino Nano, ИК-светодиодом / ИК-фотодиодным датчиком и OLED-дисплеем менее чем за 30 долларов. Я был вдохновлен программой eletro18 «Измерение оборотов в минуту - Оптический тахометр с инструкциями» и хотел добавить тахометр
Добавление пользовательских плат в Arduino IDE: 3 шага
Добавление пользовательских плат в Arduino IDE: Версия 1.6.4 Arduino IDE представила официальную поддержку добавления сторонних плат, совместимых с Arduino, в Arduino Board Manager. Эта поддержка добавления - отличная новость, потому что она позволяет пользователям быстро добавлять собственные доски всего одним щелчком мыши