хранение float переменной в eeprom
- Войдите на сайт для отправки комментариев
Сб, 22/06/2019 - 20:37
Всем добрый день!
До последнего эксперимента справлялся сам - а тут просто стена: вроде вещи очевидные , но не могу понять - есть цикл , в коотором задаю параметры настройки и храню их как эталонные значения, с целыми числами все работает, а вот значение pH в моем проекте аква-контроллера не могу реализовать
Вся программа получилась емкая на 48% памяти в UNO? поэтому хотел потренироваться на малом "кусочке"
#include <EEPROM.h> void setup() { float S=15.3; Serial.begin(9600); EEPROM.update(100,S); Serial.println("1"); Serial.println(EEPROM.read(100)); S=S+0.1; Serial.println("S"); Serial.print(S); Serial.println(EEPROM.read(100)); } void loop() { }
выдает в порт в первом случае 15, а во втором 15.4015 ( после запятой важно .40 - остальное не влияет ни на что ) - но почему первый раз значение ячейки возвращается , как "15" , а где все остальное?
Здесь более уместны EEPROM.put() и EEPROM.get()
Спасибо огромное !
СУПЕР! Заработало!
Сейчас в общий скейтч все встрою и попробую посмотреть , как на экране меняется настройка вращение ручки энкодера ( кстати с нуля сам не подглядывая написал менюшку с выбором параметра для настройки и занания ему нужного значение используя один энкодер с кнопкой.)
Тут у меня есть вам совет: писать в EEPROM не сразу после изменения параметра энкодером, а через несколько секунд после того, как энкодер перестали крутить. Это здорово сэкономит ресурс MK.
Воспользуюсь Вашим советом, я уже читал про ограниченный ресурс ячейки памяти , поэтому с энкодера импульсы подаю по 1 шт в 1 секунду (медленно щелкаю плаными поворотами)
Павел, а у Вас что рН и 15 бывает?? ;)
Здесь достаточно типа uint16_t . рН считать в тысячных 6666 = 6.666 до 65 единиц можно намерить;)
И писать в епром только при выходе из редактирования, не спрашивая.
Нет 15 pH не будет ! Просто я разные цифры вгонял пока тренировался, главное, чтобы после запятой цифра сохранялась, а про сохранение в режиме "работа" - после выхода из режима настройка , Вы мне правильно подсказали. Сейчас я меняю параметры и сохраняю их в памяти: установленное значение температуры, время включения освещения, длительность включения освещения и ... pH.
С float это последнее, что мне нужно освоить в этом проекте - если все заработает - буду считать проект подготовленным к завершению , остается только корпус и кросс-плату на которую все соберу. Корпус вообще не проблема - на нашем предприятии -лазерная резка металлов и программная гибка это основной процесс.