Версия для печати

-   Форум по покупкам в интернете. /forum/
--  Success story /forum//index.php?f=13
--- Arduino - опрос датчиков тока. /forum//index.php?t=111




-- aost написал 19 ноября 2012 17:48
Полный текст статьи. (http://inet-deal.mpa.ru/articles/arduino-002.html)

Различные грабли на пути запуска в эксплуатацию.

1. При совмещении библиотеки, обеспечивающей web-интерфейс для enc28j60 с функцией сбора данных с датчиков, вылезла одна неприятная особенность библиотеки: для отображения данных через web надо сформировать низкоуровневый пакет с пересчетом контрольных сумм tcp и т.д. Функция подразумевает подачу в нее данных типа char (буквы/символы), а у нас - числовые данные типа float (с десятичной точкой). Пришлось изворачиваться: переводить амперы в миллиамперы, и получившееся целое число загонять в массив букв с помощью:
sprintf(char_buf, "%d", float_value). [%u для беззнакового char]
или
dtostrf(float_value, 6, 2, char_buf ) .

Обидно, что на другой стороне web-client преобразует для munin-а эти символы обратно в числа. :)

2. Проработав после первого включения несколько часов - плата перестала откликаться на внешние сигналы. Перезапустили выключением питания. Через 4 часа - сетевой интерфейс опять недоступен. Включил в код программы watchdog-timer с интервалом 8 секунд. Зависать перестало.
[q]
#include <avr/wdt.h>
int n = 0;

void setup()
{
Serial.begin(9600);
// wdt_enable (WDTO_4S);
wdt_enable (WDTO_8S);
Serial.println("WatchDog timer work");
}

void loop()
{
Serial.println(n, DEC);
++n;
delay(1000);
//wdt_reset();
}
[/q]


3. Внутренний источник опорного напряжения 5V - сильно "гуляет" в зависимости от внешнего питания. Питание от USB ноутбука и внешнего источника 6V - не подходит, надо изобретать что-то стабилизированное... Похожие проблемы и методы решения "зависаний" описаны здесь: http://arduino.ru/forum/appara...0arduino-0 (http://arduino.ru/forum/apparatnye-voprosy/problema-s-enc28j60arduino-0)



-- aost написал 20 ноября 2012 23:22



(http://inet-deal.mpa.ru/forum/file.php?a=photo&ph=59&key=7445c5f3)



(http://inet-deal.mpa.ru/forum/file.php?a=photo&ph=63&key=71e16f95)

В ожидании заказанных стабилизаторов напряжения для питания модулей, система запущена в тестовый прогон с одним датчиком тока на 20 ампер.

Показатель uptime дает возможность убедиться в работоспособности сторожевого таймера.





(http://inet-deal.mpa.ru/forum/file.php?a=photo&ph=58&key=40c1407d)



(http://inet-deal.mpa.ru/forum/file.php?a=photo&ph=62&key=f702c2fd)

Выяснил, что водозащищенный датчик с DS18B20 внутри, который продают китайцы, без подтягивающего резистора ведет себя, как мертвый - даже не звонится тестером. После подключения резистора 4.7Ком между VCC (красный) и DATA (желтый) - все сразу заработало. Пришлось дополнительно сделать мини-breadboard из шлейфа флоппи-диска, с помощью которого питание+земля может быть подключена к 5 потребителям. Там же размещаются "подтягивающие" резисторы.



(http://inet-deal.mpa.ru/forum/file.php?a=photo&ph=61&key=0b88c32a)





-- aost написал 11 декабря 2012 22:38
http://radiokot.ru/circuit/digital/measure/59/ (http://radiokot.ru/circuit/digital/measure/59/) - ватт-(и прочее)-метр на ATMega8. Все, что надо, только по эзернету не умеет. Почерпнул мысль о "резервном" конденсаторе на питание, аналоговая "нога" на измерение напряжения - получается информация о пропадании питания для сброса данных в eeprom.
[q]

главным ключевым моментом является то что подсветка должна брать питание до кренки 5-тивольтовой.. почему? а чтоб контроллер увидел сразу что напруга питания 12 вольт пропала.

при этом на питании самого контроллера должен висеть кондер не менее 10000 микрофарад … хотя я добивался уверенного срабатывания сохранения данных и от 1000 микрофарад – но это уже ухищрения с супервизорами – ваша же задача сделать так чтоб при пропадании сети на ноге ИНТ0 напряжение сразуже упало ниже 2-х вольт – тогда МК поймёт что пропало питание. Но при этом питание самого МК ещё хотябы 200 миллисекунд должно продержаться выше 2.7 вольт чтоб он успел сохранить данные в еепром!

сама кренка очень плохой диод….можно на её вход поставить диод а подсветку питать резистором ДО диода….тогда конденсатор с выпрямителя будет мгновенно разряжен «стабилитроном» подсветки до уровня срабатывания прерывания
[/q]

(http://inet-deal.mpa.ru/forum/file.php?a=photo&ph=60&key=2f024de3)

По материалам - собрал делитель для двух входов солнечного контроллера, а заодно и для питания ардуины через преобразователь 12V -> 5V. Пропадание напряжения будет детектироваться по аналоговому входу, который "в мирное время" будет просто мерять напряжение 12V.



-- aost написал 10 марта 2013 21:00
Вместо сетевого блока питания запитал контроллер от аккумуляторной батареи через DC-DC преобразователь на LM2576, выставив на нем выходное напряжение 7.5V, которые поступают на собственный 5V стабилизатор ардуино.

Попалась на глаза статья про измерение собственного напряжения питания http://provideyourown.com/2012...-voltage/. (http://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-voltage/.) Добавил код в свою программу, навскидку - стало чуть лучше: теперь подключение ноутбука для программирования контроллера не вызывает скачка показаний напряжения и тока.



-- aost написал 30 июня 2013 20:37
Дошли руки до подключения мосфета в цепь между солнечными панелями и контроллером заряда. (http://inet-deal.mpa.ru/articles/diversion_load.html) Суть в том, что контроллер заряда, следуя своему внутреннему алгоритму, нагружает солнечные панели далеко не на 100 процентов.

Вот и появилась идея: после того, как батарея зарядится до определенного уровня - переключать мосфетом энергию на другую нагрузку.

При реализации наступил на пару граблей:
1. Оставил гейт мосфета висеть в воздухе - в результате полуоткрытый мосфет выгорел под нагрузкой попутно оплавив 50 амперный разъем.
2. Долго не мог понять - почему вдруг перестал работать Ethernet Shield, оказалось, что пин4, на который было повешено управление мосфетом, занимается переключением функционала между слотом SD карты и самим эзернет модулем enc28j60... Я, конечно, человек спокойный, и, в поисках неисправности, всего навсего пару раз дернул питание ардуины, и ближайшего свича... Для памяти дописал в основную статью, что пин D4 - тоже занят эзернет-модулем.


Этот форум работает на скрипте Intellect Board
© 2004-2007, 4X_Pro, Объединенный Открытый Проект, Разнообразная информация
2004, Все права на содержимое сайта принадлежат его владельцу и охраняются законодательством