Увійти

Показати повну версію : Дозатор УДО


nikservice
12.05.2013, 02:52
Один, из моих дозаторов УДО.
Возможно кому - то пригодится данная информация при построении дозаторов на перистальтических насосах.
Началось всё с того, что досталась мне 6 канальная, перистальтическая помпа от навороченного струйника HP, да пара чернильниц и шлангов от СНПЧ.

Алгоритм работы дозатора удобрений
Питание на схему подаётся в заданное время на 1 минуту и более.
После подачи питания задержка 5 сек., затем включение помпы, на заданное в (SW 3) кол - во импульсов N.
Для повторного запуска помпы – снять и вновь подать питание на схему, или нажать переключатель (SW 2)- помпа включиться без задержки на заданное в (SW 3) кол - во импульсов N.
Переключатель (SW 3) с фиксацией.
1 – включение питания
2 – 9 доза (в моём случае – 1 замкнутый переключатель – 0,5мл.)
10 – увеличение дозы в два раза.
Мотор включается на кол - во импульсов N снятых с LED1 (PD5).
Каждый замкнутый переключатель из 2 - 9 в (SW 3) добавляет 0,5мл. на выходе дозатора, если замкнуто два – 1 мл., все восемь – 4 мл., замкнутый 10 в (SW 3) увеличивает дозу в два раза., т. е. максимальная доза за один раз составляет 8 мл.
N присваивается после калибровки помпы дозатора и прописывается в исходнике.
Переключатель (SW 1) без фиксации, при нажатии и удержании включает мотор помпы – для прокачки системы.
Переключатель (SW 2) без фиксации, при нажатии включает мотор помпы на заданное в (SW 3) кол-во импульсов N.
Алгоритм программы
1. после включения питания задержка 5сек. – защита от ложных срабатываний.
2. проверка состояний SW3 (PB7 – PB0, PD6)
3. вычисляем суммарное N.
4. включаем мотор - (PD4)=1.
5. считаем N.
6. когда N совпадает с заданным в (SW 3) отключить мотор (PD4)=0
7. не включать мотор до тех пор, пока не произойдет выключение и включение питания, или не будет нажата (SW 2)


Редактирование прошивки
1. Скачиваем WinAVR-20100110, можно отсюда:
http://myrobot.ru/downloads/winavr-20100110.php
или отсюда:
http://sourceforge.net/projects/winavr/files/WinAVR/20100110/
2. по умолчанию устанавливаем в C:\WinAVR-20100110
3. перезагружаем компьютер
4. распаковываем архив «Dozator.rar»
5. если WinAVR-20100110 установлена не в C:\WinAVR-20100110 – правим, в блокноте, путь в файле compile.bat из папки Dozator
6. открываем, при помощи блокнота main.c из папки Dozator
7. в строке uint16_t kk = 300; //количество импульсов на 1 дозу. – правим значение kk = 300 у меня получилось 2380 импульсов на 0,5 мл., т. е. kk = 2380.
8. Запускаем compile.bat
9. Получаем в данной папке файл - main.hex – скорректированная прошивка.
10. ФЪЮЗЫ – включаем контроллер на работу от внешнего кварца на 4 мГц.

Чем больше импульсов на одну дозу – тем точнее дозировка.

Схема
Возможно потребуется подбор резисторов R1 и R2.
R1 ограничивает ток через излучающий светодиод LED1, подбором R2 – добиваемся наилучшего открывания фотодиода LED2, т. е. при засвеченном LED2 добиться минимального напряжения на (PD5)
Полевик в управлении мотором – N канальный со старой материнки.
Мне досталась помпа с контролем электропроводности, грех было не воспользоваться, на LM358 собран компаратор контролирующий наличие УДО в системе.