Официальный сайт компании Arduino по адресу arduino.cc
Логгер - токовые клещи.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Есть необходимость поминутного мониторинга потребляемого тока в электросетях СНТ в пределах от 1 до7 суток. Использовать буду вот такой: http://www.ebay.com/itm/281621527318_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT датчик тока. Ардуинка на этапе отладки Nano, потом возможно mini. Собственно вопрос - как проще всего организовать хранение однобайтных данных - через прямой доступ к памяти, или через массивы? Использовать для этих целей SD просьба не предлагать. Удорожание конструкции, увеличение потребления, и все это ради нескольких килобайт инфы, как бы не особо оправдано. Устройство автономное, будет висеть на столбе сутки -двое, после чего сниматься, подключаться к компу и по нажатию кнопки скидывать инфу в сериал монитор. Что посоветуете?
Непонятно, как тут редактировать сообщения. Рабочая ссылка http://www.ebay.com/itm/1pcs-SCT027H-Current-Sensor-Handheld-Slip-Core-Current-Transformer-NEW-/281621527318?hash=item4191f37b16:g:naAAAOSwLVZVqyb8
А что Вы подразумеваете под прямым доступом к памяти и массивами ?
Тайм-штамп Вам писать не требуется?
Ради нескольких килобайт кувыркайтесь с еепром, если уж сд не подходит.
Нет, тайминг писать не требуется. Насчет прямого доступа к памяти я и имел ввиду еепром, но там ограничение в 1кб - это менее суток. Может через использование массивов больше получится прописать? Ессно прийдется реализовать контроль за переполнением памяти. Где хранятся данные из массивов, в оперативке или во флэш? Извините за ламерские вопросы.
Как вариант I2C EEPROM
http://arduino.ru/forum/programmirovanie/zapis-vo-vneshneyu-eeprom
http://cxem.net/arduino/arduino73.php
Массивы - во оперативке. И, если Вы вдруг допустите ошибочку в проге, или забудете снять данные и обнулить массив, то он может разростись на всю оперативу, занять область стека...ресетом всё лечится, но данные потеряете. Ах да, еще и питание должно быть постоянным, чтобы данные в оперативе не стирались. хотя, как показывает практика, данные в ОЗУ ненадолго остаются...
Пока что ищу варианты без внешних костылей.
Тогда тоже не вариант, там всего 2кб. Флэш память можно для этого как-то задействовать?
Флэш задействовать не выйдет. Смотрите на внешний EEPROM, удорожание там копеечное. Да и SD вроде не бешено стоит.
То есть у меня только два варианта - или еепром контроллера, или внешняя память?
Для одного девайса да, для десятка уже ощутимо, хотя тоже не принципиально. Плюс повышение энергопотребления и общее усложнение конструктива и скетча - для меня как совсем новичка это немаловажно.
ЕЕПРОМ я могу использовать по полной, все 1024 ячейки? Или его Ардуинка тоже пользует?
А что энергопотребление ? У вас провод рядом :) клещи - трансформатор. Секунду замеряете , 59 секунд заряжаете аккумулятор
ЕЕПРОМ я могу использовать по полной, все 1024 ячейки? Или его Ардуинка тоже пользует?
Дуина не пользует, но объем для вас мал. Я имел в виду внешний I2C EEPROM. Что то вроде этого
Это хорошо. Если писать раз в минуту - это уже 17 часов, можно и пожертвовать интервалом, писать раз в две-три минуты, а это уже вполне приемлемо по времени. Или вообще делать выборку раз в минуту, а писать максимальное значение раз в пять минут. Ну а если появится потребность в более точных и более длительных интервалах, буду разбираться с SD.
Еще вопрос - как известно еепром имеет ограничение по количеству циклов записи. Так вот это ограничение на каждую ячейку по отдельности, или это ограничение в целом на весь еепром? Ну то есть могу я записать 100000 раз в первую ячейку, 100000 раз во вторую и т.д. Или у меня есть только 100000 обращений неважно к какой ячейке? Иными словами, если я пропишу все 1024 ячеек по разу - это считается за один цикл(каждая ячейка по разу) или за 1024 цикла доступа к еепром?
По епрому значение справедливо для каждой ячейки.
Это радует. Спасибо за помощь!
Вам дело советуют i2c eeprom.
Часики реал тайм нужны в этом проекте? Мне кажется нужны. Обычно с часами ставят еепром на одной плате.
Т.е при добавлении часов память автоматом получается.
Объем кажись 4 кбайта надо уточнять. Цена около 100 рублей, соединяется 4 проводами.
И еще подумайте какой максимальный ток будет мерить устройство? (Если отдельные дома то 25-32 а максимум)
Брать токовый трансформатор на 160а не разумно. Надо брать на 20-30 а. А то точность потеряете. И еще было озвучено 1 байт измерения. Т.е дискретность будет 25/256= где то 0.1 ампера (это даже не точность а дискрет отсчета, точность будет 0.2-0.3). Она Вас устроит (ацп 10 битный в мк)? И нужна правильная схема подключения (входной фильтр) и обработка полученного сигнала (там тоже тонкости есть).
И обращаю Ваше внимание датчик не ток выдает а переменное напряжение которое пропорционально измеряемому току.
По поводу потребления
Про микро 3.3в 8мгц батарейка литиевая 3.6 в формата аа. Секунду измеряете далее на минуту засыпаете. Хватит на месяцы работы гарантированно.
Часики реал тайм нужны в этом проекте?
Не-не, пока что самая минималка, чем проще - тем лучше.
Контроль поуличный - и уже потом подомовой поиск основного потребителя. По улице идут три фазы - мониторим все три и определяем фазу с потребителем, на ней обычно висят три-четыре дома из всей улицы(10-12 домов). Точность не важна, скорее нужна общая картина - большинство обогревателей и котлов включаются-выключаются по термостату, и очень сложно обычными токовыми клещами вычислить.
Это первое что прийдется решать - пожалуй основная задача в данном проекте. Схемы включения я смотрел, самое простое - сдвигают ноль синусоиды в район 2,5в при опорном 5в.
Ага, понял, спасибо!
Может кто пояснит мне, к чему именно такая схема включения http://openenergymonitor.org/emon/buildingblocks/ct-sensors-interface
Сместили синусоиду в плюсовую зону - фактически значимыми значениями стала лишь половина от опорных 5в. - потеряли в точности.
Полезный сигнал задавили шунтом, в итоге на низах вообще нереально будет что-то померять.
Не лучше ли без всяких шунтов со вторички сразу на диодный мост с небольшим кондером, и уже потом давить шунтом, чтобы не вылезать за пределы входных 5в для АЦП. Получим повышение точности за счет использования всех значений от 0 до 5в и вполне реальные данные на низах. Самого датчика пока нет, пробовал с катушкой 7000витков(с сердечником ессно) - при 1квт нагрузки получаю от 0,7 до 1в постоянки в зависимости от положения провода в сердечнике. Что я делаю не так?
Про микро 3.3в 8мгц батарейка литиевая 3.6 в формата аа. Секунду измеряете далее на минуту засыпаете. Хватит на месяцы работы гарантированно.
Про микро 3.3в 8мгц батарейка литиевая 3.6 в формата аа. Секунду измеряете далее на минуту засыпаете. Хватит на месяцы работы гарантированно.
Wdt использую
Wdt использую
Да optiboot 5.0
Да optiboot 5.0
Либо сам регистры устанавливаешь. Либо либ Low-Power
Ага, спасибо! Буду разбираться.
Ох, там же 32U4 стоит. Мне бы с обычным 328 для начала разобраться.
ошибся малек конечно про мини
О.....это радует, спасибо!
))))
Почитал про WDT - не пойму логику использования его как будильника из режима сна. Это же рестарт-таймер, каждые 8сек его нужно обнулять, иначе ребут. Если МК мы усыпили, кто будет WDT обнулять? Просвятите вкратце пожалуйста на эту тему.
Почитал про WDT - не пойму логику использования его как будильника из режима сна. Это же рестарт-таймер, каждые 8сек его нужно обнулять, иначе ребут. Если МК мы усыпили, кто будет WDT обнулять? Просвятите вкратце пожалуйста на эту тему.
От он сам его и пнет, необнуленный)))
От он сам его и пнет, необнуленный)))
astrafoto, не забывайте вотчдог -это в первую очередь аппаратная антизависайка, а не программируемый будильник.
astrafoto, не забывайте вотчдог -это в первую очередь аппаратная антизависайка, а не программируемый будильник.
Не согласен - Есть режим глубокого сна из которого контроллер выводится только по прерыванию или вотчдогу. Это не спроста изготовитель в данном случае предусмотрел режим будильника.
Из 8 секунд сделать минуту просто - используейте счетчик 8 секундных итервалов и когда он достигнет 60/8 значения далайте то что Вам надо. Не забыть про объявления типа
А кто этот счетчик считать будет, если МК спит?
Раз в 8 секунд просыпаетесь (wdt),
Счетчик+1, далее проверяете не пора ли делать измерение (60/8 счетчик), если пора до делаете и сбрасываете счетчик, засыпаете.
Без измерения Время работы - микросекунды
При выходе из сна по wdt программа с какого места начнет работать? Так как это фактически рестартер, то предполагаю что с самого начала? То есть с инициализации переменных, блока setup и только потом основной блок loop. А.....и еще при рестарте бутлогер же сначала загрузку скетча какое то время ждет. То есть проснулись, бутлогер нового скетча не дождался, запустил залитый скетч, так?
Куда в таком случае лучше прописать обработку сна? В setup или в самом начале loop?
astrafoto, у вотчдога 2 режима работы - сделать ресет по окончанию счёта таймера или вызвать аппаратное прерывание. Соответссно во втором случае программа вернётся в то место, с которого ушла спать :)
Мыслите в нужном направлении (по поводу рестарта).
Обратите внимание на код который я приводил выше он важен. Это запрет на инициализацию переменных.
Сам код я делал в лупе. Главное нужные переменные не потерять. Контроллер возвращается туда где заснул.
По поводу загрузкика, его код при этом не выполняется. МК знает что проснулся и загрузчик прогонять не надо, куда возвращаться тоже знает.
И еще момент про мини надо доработать напильником для низкого потребления
1. Светодиоды долой (хотя бы по питанию, но лучше и по 13 ноге если SPI используешь)
2. Стабилизатор долой.
astrafoto, задумайтесь, по-моему вы не по тому пути собираетесь идти. Если вам нужен логгер данных, то для него очень удобно использовать энергонезависимые часы типа DS3231. Эти же часы могут будить МК через любой промежуток времени, для этого там есть специальная нога, которая подключается на внешнее прерывание МК. На этой же плате часов обычно ставят епромку на 4 Кбайта, её вполне хватит под ваши задачи.
Теперь понятно, спасибо!
Жаль пока не могу найти нормального подробного справочника, везде только перепечатки с этого минимализма - http://arduino.ru/Reference - уже неоднократно встречаю части кода, про которые ни слова в этих мини-шпаргалках. Буду благодарен, если что-то порекомендуете. ))
astrafoto, вряд ли вы это найдете в справочниках. Если закончили с Соммером, переходите к K&R. Конкретно Вашу задачу там тоже не опишут, выполнять примеры, достигать понимания, что в них происходит. Иначе не выйдет.
astrafoto, вряд ли вы это найдете в справочниках. Если закончили с Соммером, переходите к K&R. Конкретно Вашу задачу там тоже не опишут, выполнять примеры, достигать понимания, что в них происходит. Иначе не выйдет.
Не разобравшись с "собакой", вы вряд ли куда продвинетесь.
Вот тут http://student-proger.ru/2013/10/energopotreblenie-arduino/ говорится о всего лишь двукратном снижении энергопотребления в режиме сна. Имеет ли смысл ради этого огород городить? Я думал кардинально можно ток потребления снизить.
astrafoto, тот товарищ измерял ток с включённым преобразователем USB-UART, поэтому у него в сухом остатке оставался ток потребления преобразователя.
Вот тут http://student-proger.ru/2013/10/energopotreblenie-arduino/ говорится о всего лишь двукратном снижении энергопотребления в режиме сна. Имеет ли смысл ради этого огород городить? Я думал кардинально можно ток потребления снизить.
Так вы ищите энергосбережение не на дуину, а на МК, это вообще то разные вещи. На плате у вас развешаны, ОУ, стабилизаторы, светодиод питания, мелкосхема интерфейса и все это кушает. Сам не занимался, но там вроде речь о микроамерах.
Тут уже летала ссылочка на товарища из забугорья, который досканально разобрался в спящих режимах и токах потребления http://www.gammon.com.au/power