Notice: Memcache::get(): Server localhost (tcp 11211) failed with: Connection refused (111) in /home/a146/www/we.easyelectronics.ru/engine/lib/external/DklabCache/Zend/Cache/Backend/Memcached.php on line 134
Atmega / Поиск по тегам / Сообщество EasyElectronics.ru

Что я по пивоварне за последнее время делал.

Всем привет и доброго здравия!
Небольшая преамбула – зимой мы собирали пивоварню в свободном помещении, поставили большой – 125-и литровый бак, сварили каркас, ёмкости, всё собрали и даже подключили, однако затем ситуация вильнула таким образом, что помещение мы решили оборудовать под сварочный цех – собрали вентиляцию, сделали стеллажи, приобрели немного дополнительного оборудования, переделали окно в дополнительную дверь, прокинули капитальную проводку на оборудование, которое потребляет много – в общем цех сейчас работает и это хорошо, однако пивоварню нужно было куда то девать, так как сварочный цех это полный ПЭ в виде металлической пыли, грязи и прочих вещей, с пивоварением малосовместимых.
Тогда было решено переделать основной бак на 50 литров, сделать его максимально узким и прикрепить к каркасу. В бак был вварен датчик температуры, в просверленные отверстия монтированы поплавковые датчики уровня (геркон) и ТЭН на 4кВт, в котёл пока поставили 2 тэна по 2 кВт, подключённые последовательно, для увеличения нагревающей поверхности, дабы исключить пресловутое подгорание солода. Ёмкости были соединены PPR трубами(чтобы в случае переделки не было мучительно больно переваривать нержавеющие трубы) через латунные электромагнитные клапаны. Затем всё это дело мы утеплили экструдированным пенополистиролом, толщиной 20 мм, а сверху к краям ёмкости мы подошли фасонными изделиями, для того, чтобы организовать притвор крышки и закрыть «кишки».

Если сказать одним предложением – то мы собрали опытный образец, который теперь необходимо активно тестировать, искать косяки, думать, как их устранять. В офисе мы вывели на внешнюю стенку воду и канализацию, подключились. Кинули напрямую медный кабель 3х4 прямо от ввода линии. Более подробно конструкцию я опишу позже, сейчас же я хочу перейти к электрической составляющей проекта, так как она озадачила меня на пару ночей…
Пивоварня Вениамина Кейвера


Читать дальше

Кольцевой буфер

AVR
Пусть здесь полежит, а то вдруг с моим репозиторием что случится… А тут, глядишь, кому и сгодится.
Код для обслуживания кольцевых буферов, маленький и шустрый.
Собственно так: в секции данных надо поместить массивчик, где будет храниться сам буфер, произвольного размера, до 255 байт. Глубина буфера задаётся константой RBSIZE, и массив получается на три байта больше размером. В первом байте лежит глубина заполнения, то есть сколько данных сейчас в буфере. При укладке байта — увеличивается, при выгрузке — уменьшается; если ноль — буфер пуст. Второй и третий байты — служебные, указатели загрузки и выгрузки. Для инита буфера надо эти три байта обнулить.
А дальше всё стандартно — процедурой PutToBuf укладываем в буфер содержимое r16, процедурой GetFromBuf — достаём. Если буфер переполнен — очередной байт туда не ляжет, если пуст — содержимое r16 не изменится.
Портит xl,xh,r17, загрузка/выгрузка занимает по 29 тактов. Локальных меток не имеет, так что можно легко тиражировать в любом количестве экземпляров внутри программы.


; В секции данных:
;.equ RBSIZE=11
; ringbuf:	.byte RBSIZE+3
; Конструкция кольцевого буфера: 
;+0 - глубина заполнения
;+1 - указатель укладки
;+2 - указатель выгрузки
;+3... - данные
; Использованные регистры: xh,xl,r16,r17
; укладка в буфер. 29 тактов
PutToBuf:	ldi	xh,high(ringbuf+3) ;загрузка базы буфера
		ldi	xl,low (ringbuf+3)
		lds	r17,ringbuf+0	;load rbdept
		cpi	r17,RBSIZE        ; проверка на переполнение
		brcc	pc+16
		inc	r17
		sts	ringbuf+0,r17    ;store rbdept
		lds	r17,ringbuf+1 	;load rbputptr
		add	xl,r17            ; складываем указатель с базой
		brcc	pc+2
		inc	xh
		st	x,r16            ; помещаем байт в буфер
		inc	r17               ; приращение указателя укладки
		cpi	r17,RBSIZE        ; закольцовка, если достигнута граница
		brcs	PC+2
		clr	r17
		sts	ringbuf+1,r17	;store rbputptr
		ret

; выгрузка из буфера. 29 тактов
GetFromBuf:	ldi	xh,high(ringbuf+3)
		ldi	xl,low (ringbuf+3)
		lds	r17,ringbuf+0	;load rbdept
		tst	r17            ; проверка наличия данных
		breq	pc+16
		dec	r17
		sts	ringbuf+0,r17	;store rbdept
		lds	r17,ringbuf+2	;rbgetptr
		add	xl,r17
		brcc	pc+2
		inc	xh
		inc	r17
		cpi	r17,RBSIZE
		brcs	PC+2
		clr	r17
		sts	ringbuf+2,r17	;rbgetptr
		ld	r16,x
		ret

Термометр с тревогой и логированием в баню

Arduino Pro Mini
Для контроля температуры, влажности и датчиков дыма решил собрать схемку с использованием платки Arduino Pro Mini.
Плата, в принципе, подойдет любая, главное чтобы на ней стоял микроконтроллер ATMEGA328P и были доступны все выводы.
Датчики температуры цифровые (1-Wire), датчик влажности аналоговый.
Запись лога в формате CSV ведется на SD карту (используется библиотека FatFs (C) ChaN).
Дисплей используется символьный — 20x4.


Читать дальше
  • +4
  • 29 декабря 2014, 11:47
  • vad7
  • 2

Простая макетная плата ATmega16 ATmega32 DIP

AVR
Развёл простенькую макетку. Тупо все ноги МК вывел на пятачки, кондёры по питанию повесил, кварц, и разъём для программирования. Остальное цепляется к пятакам по вкусу. Так как у меня в разных проектах всё по разному, вешать кнопки/светодиоды на жёстко заданные выводы нет смысла.


Читать дальше

нецелевое использование декатронов

Если вы хотите использовать аутентичную схему — вам не сюда. Здесь же я расскажу как использовать декатрон в качестве необычного индикатора.

www.adslclub.ru/upload/img/2014-02/27-22375665849.jpg


Читать дальше
  • +9
  • 27 февраля 2014, 22:40
  • woddy
  • 2

Умный дом на микроконтроллере ATMEGA1280 часть-4

Итак в этой статье пойдет речь об описании протокола MODBUS и его реализация в Atmeg1280. Сам протокол модбас по сравнению с DCON протоколом имеет конечно намного больше возможностей. Но его реализация посложнее будет и требует намного больше ресурсов от микроконтроллера. Да и сам модбас, тормознутый протокол при обмене данными между устройствами.

Читать дальше

Умный дом на микроконтроллере ATMEGA1280 часть-2.

Итак в этой статье рассмотрим такие пункты:

1.Подключение модулей ICPCON к контроллеру.
2.Опрос модулей по протоклу DCON.

В следующих статьях:
3.Подключение панелей Weintek.
4.Опрос панелей по MODBUS.
5.Подключение модема.
6.Управление модемом.

Читать дальше

Умный дом на микроконтроллере ATMEGA1280 часть-1

Как то встала передо мной задача, прикрутить вот к такой железке как ATMEGA1280


Читать дальше

контроллер светодиодного табло

Было привезено из китая безымянное светодиодное табло разрешением 192х32. Длина около 1.5 метров.


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


Читать дальше
  • +4
  • 21 января 2013, 17:30
  • woddy
  • 2

Шаблоны проектов на C++ для AVR [GCC, IAR]

Шаблоны проектов для микроконтроллеров: ATmega48, ATmega16, ATmega32, ATmega128.

Хотел оформить в виде ссылки, да забыл стиль поста выбрать. Подробности и обсуждение на форуме тут: Шаблоны проектов на C++ для AVR [GCC, IAR]
  • -1
  • 21 ноября 2012, 22:35
  • uni