Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

Аппаратная платформа Arduino для автоматизации наших процессов

Форум самогонщиков Автоматика
1 ... 5 6 7 8 9 10 11 ... 64 8
Alex2x Кандидат наук 325 64
Отв.140  10 Февр. 12, 12:12
KD скажи, смену тары(под головы,тело,хвосты) ещё не автоматизировал?
сообщение удалено
KD Научный сотрудник Танкоград 1.4K 648
Отв.141  10 Февр. 12, 12:14, через 3 мин
Alex2x,  нет, не реализовал
Чё там архивировать тоBabaiko, 10 Февр. 12, 03:01
а с расширением pde не дает прикреплять движок
Alex2x Кандидат наук 325 64
Отв.142  10 Февр. 12, 12:16, через 2 мин
нет
KD, 10 Февр. 12, 12:13

Очень короткий ответ.
Получается в течении всего процесса нужно присутствовать.
KD Научный сотрудник Танкоград 1.4K 648
Отв.143  10 Февр. 12, 12:27, через 12 мин
Очень короткий ответ.Alex2x, 10 Февр. 12, 14:16
Хорошо. Даю более развернутый.
Можно забить, отключить отбор голов и хвостов и поставив тару побольше.
Еще есть пищалка, можно не присутствовать рядом. Услышал с соседней комнаты что запищало - пришел, поменял тару, нажал кнопку - пошло дальше.
Я даже ставил к нему (динамику) вплотную телефон с функцией "нянька" и уходил во двор.
Это не автоматика конечно, но я уже писал
Я ленив, плюс самогонные (и пивные) дела немного отошли на второй план потому быстро о достижениях рассказывать не смогуKD, 08 Февр. 11, 21:36
всего лишь год прошел с момента как я взял в руки ардуину Улыбающийся
KD Научный сотрудник Танкоград 1.4K 648
Отв.144  10 Февр. 12, 12:29, через 3 мин
В идеале вручную прописать бы адреса 4 датчиковDimonn_, 10 Февр. 12, 09:20
если намертво то вот сюда подставить вместо нулей адреса
byte addr[4][8] = {
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
}; 

или мудри подпрограмму которая будет записывать в EEPROM
Alex2x Кандидат наук 325 64
Отв.145  10 Февр. 12, 12:38, через 9 мин
Хорошо. Даю более развернутый.
Можно забить, отключить отбор голов и хвостов и поставив тару побольше.
Еще есть пищалка, можно не присутствовать рядом. Услышал с соседней комнаты что запищало - пришел, поменял тару, нажал кнопку - пошло дальше.
Я даже ставил к нему (динамику) вплотную телефон с функцией "нянька" и уходил во двор.
Это не автоматика конечно, но я уже писалвсего лишь год прошел с момента как я взял в руки ардуину Улыбающийся
KD, 10 Февр. 12, 12:27

Да ты не обижайся.
Ещё хотел спросить.Вот например мне нужна программа ректификации.
Я новый скетч должен заливать?
Тоесть дисциляцию и рек-ю одним скечем сделать реально?
KD Научный сотрудник Танкоград 1.4K 648
Отв.146  10 Февр. 12, 12:44, через 7 мин
Тоесть дисциляцию и рек-ю одним скечем сделать реально?Alex2x, 10 Февр. 12, 14:38
реально
более того, я к этому и стремлюсь чтобы не таскать ардуину к компу каждый раз
Babaiko Кандидат наук Tallinn 301 32
Отв.147  10 Февр. 12, 14:34
Я предлагаю скечи прикреплять в тхт  и прочитать можно и скопировать
всё равно править под себя

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

Dimonn_ Новичок Izh 5
Отв.148  10 Февр. 12, 22:52
в аттаче скетч, автоматом определяет 4 датчика и выводит на экран.
28 8C 9F DE 1 0 0 EE
28 16 AB DE 1 0 0 B
28 29 97 DE 1 0 0 67
Это адреса моих датчиков, как их вписать? Если вписать просто через запятые - не работает. Еще непонятно как округлять до десятых
home_temp.txt 4.1 Кб
пила Студент BRD 30 32
Отв.149  30 Марта 12, 04:44
По последней версии софта(пост 30) попытался составить схему(ногами не пинать- не программист и не электронщик).
Ошибки есть?
Схема с BTA16 (пост 14) рабочая?
Не нарисована клавиатура- не знал по какой схеме и какие резисторы брать(пост 106?)
arduino_v1.jpg
Arduino_v1. Аппаратная платформа Arduino для автоматизации наших процессов. Автоматика.
KD Научный сотрудник Танкоград 1.4K 648
Отв.150  30 Марта 12, 06:43
Ошибки есть?пила, 30 Марта 12, 06:44
не видно выводы ардуины (мелкий текст), но вроде все верно
единственное - подключать реле напрямую к выходу не есть гуд (токи большие, самоиндукция)
Схема с BTA16 (пост 14) рабочая?пила, 30 Марта 12, 06:44
да
не знал по какой схеме и какие резисторы братьпила, 30 Марта 12, 06:44
собери лучше по моей схеме [сообщение #11351706]
пила Студент BRD 30 32
Отв.151  31 Марта 12, 00:51
KD, спасибо за ответы.

не видно выводы ардуины (мелкий текст)
KD, 30 Марта 12, 06:43
Перерисую- скажи в чём(fritzing в экспорт jpg выдал такое гавн., пришлось делать скриншот).

единственное - подключать реле напрямую к выходу не есть гуд (токи большие, самоиндукция)
KD, 30 Марта 12, 06:43
Я надеюсь, это пойдёт?
http://www.ebay.de/itm/4-Kanal-5V-Relais-Relay-Modul-for-PIC-ARM-AVR-Arduino-/280819130834?pt=Elektromechanische_Bauelemente&hash=item41621fe1d2
KD Научный сотрудник Танкоград 1.4K 648
Отв.152  01 Апр. 12, 13:37
Я надеюсь, это пойдёт?пила, 31 Марта 12, 02:51
схемы нет, описания тоже. Но по фотке все нормально, опторазвязка есть, релюшки присутствуют. Да и преподносится как совместимое с МК.
Так что пойдет.
Babaiko Кандидат наук Tallinn 301 32
Отв.153  15 Апр. 12, 21:13
наконец вернулся к электронике
собрал регулятор можности по давлению с медленным ШИМ
работает
но

не нравится использование delay для задержки
void low_power(){
   digitalWrite(9, HIGH);
   delay(700);
   digitalWrite(9, LOW);
   delay(300);
пока выполняется delay система подвисает
пытался разрулить с использованием millys  ни пса не выходит

void low_power(){
    digitalWrite(9, HIGH);
    powerTime = millis();        // считываем время, прошедшее с момента запуска программы
  if(powerTime >= (powerTime + 700));  // задержа на 0.5 mc
    powerTime = currentTime;
    digitalWrite(9, LOW);
    powerTime = millis();        // считываем время, прошедшее с момента запуска программы
  if(powerTime >= (powerTime + 300));  // задержа на 0.5 mc
    powerTime = currentTime;

есть идеи?
ironman Академик Синегорье 5.2K 2.7K
Отв.154  15 Апр. 12, 21:41, через 29 мин
Babaiko, в чем именно проявляется и чувствуется подвисание?
m16 Модератор Тамбов 1.9K 1K
Отв.155  15 Апр. 12, 21:49, через 9 мин
не нравится использование delay для задержкиBabaiko, 15 Апр. 12, 21:13
делай  клок на таймере , расставляй флаги и будет тебе счастье
Babaiko Кандидат наук Tallinn 301 32
Отв.156  15 Апр. 12, 22:01, через 12 мин
Babaiko, в чем именно проявляется и чувствуется подвисание?
ironman, 15 Апр. 12, 21:41

пока функфия delay  не отработает другие команды не выполняются
в даном конкретном случае вроде как не особо страшно
но если например поставить подпитку ПГ  там задержку на долив воды надо ставить 2-3 сек
это значит что всё будет просто  стоять пока не закончится долив

делай  клок на таймере , расставляй флаги и будет тебе счастье

m16, 15 Апр. 12, 21:49


это как ?
пример кода ?
m16 Модератор Тамбов 1.9K 1K
Отв.157  15 Апр. 12, 22:12, через 11 мин
на асме устроит?
Babaiko Кандидат наук Tallinn 301 32
Отв.158  15 Апр. 12, 22:13, через 1 мин
мне всё равно
главное понять принцип
m16 Модератор Тамбов 1.9K 1K
Отв.159  15 Апр. 12, 23:46
в памяти организую три ячейки для хранения текущего значения трёх таймеров для соответствующих процедур
;********************************************************************
;* Timers
;********************************************************************
timers:
pump_tim: .byte 1
level_tim: .byte 1
preheat_tim: .byte 1

через INT1 организована синхронизация с сетью для управления триаком  и в этой же процедуре организованы системные часы  которые помимо подсчёта времени декрементирут содержимое ячеек памяти процедурных таймеров pump_tim , level_tim, preheat_tim. т.о. можно организовать временные отрезки от 4сек до 17мин
;------------------------------------------------------------------------------
dec_tim:

ld tempA,Y                        // tempA= секунды системных часов
andi tempA,0b00000100
sbrs tempA,2 // формирование 4-х секундного клока
ret // для таймеров

ld_w X,timers // декремент таймеров
ldi tempB,3                // каждую 4-ю секунду
dt1: ld tempA,X
tst tempA
breq dt2 // если таймер=0 то декремент не призводится
dec tempA
dt2: st X+,tempA
dec tempB
brne dt1
ret
;------------------------------------------------------------------------------

это основной цикл , у каждой из процедур выделенных звёздочками имеется слово состояния - байт. каждый бит определяет текущее состояние каждой процедуры
main_loop:

ml1: rcall skan_key        //опрос клавиатуры

rcall execute        // организация меню
rcall displaystate    //  вывод на дисплей

rcall GetTemp        // запуск преобразования  ds18d20
*********************************************************************
* rcall fill_water      // долив воды              *
* rcall pump            // помпа подкачки          *
* rcall heater_on      //  включение нагрева      *
*            rcall preheat        // предварительный нагрев  *
*********************************************************************
rjmp ml1


на примере процедуры помпы.
слово состояния помпы - pump_psw. 0-й бит включение/выключение помпы , 1-й бит работа помпы 2-й бит пауза (по техническим условиям помпа ULKA после рабочего цикла в 2мин должна сделать "отдышку" в течении 1мин
;*************************************************************************
;* Workin
;**************************************************************************
// pump_psw

.equ pump_pause = 2
.equ pump_work = 1
.equ pump_on_off = 0

последовательно анализируем биты слова состояния процедуры: если поступила команда старта помпы то она включается и загружается таймер времени работы  помпы и устанавливается бит  pump_work . после окончания времени  рабочего цикла устанавливается бит паузы pump_pause и загружается время паузы , после его окончания всё повторяется пока установлен бит старта помпы pump_on_off

;-------------------------------------------------------------------------
pump:
lds tempA,pump_psw
sbrs tempA,pump_on_off  //помпа включена?
rjmp exit_pump                  // нет

sbrs tempA,pump_work    // у помпы рабочий цикл?
rjmp work_pump

sbrs tempA,pump_pause  // у помпы пауза?
rjmp work_tim
;.........................................................
pause_pump: lds tempA,pump_tim
tst tempA          // время паузы закончилось?
brne exit_pump                  //нет
lds tempA,pump_psw   
cbr tempA,(1<<pump_pause|1<<pump_work)
sts pump_psw,tempA
ret
;.........................................................
work_pump:
sbi port_pump,pump_c
ldi tempA,work_t
sts pump_tim,tempA
sbr tempA,(1<<pump_work|1<<pump_on_off)
sts pump_psw,tempA
ret
;.........................................................
work_tim: lds tempA,pump_tim
tst tempA
brne exit_pump

cbi port_pump,pump_c
ldi tempA,pause_t
sts pump_tim,tempA
lds tempA,pump_psw
sbr tempA,(1<<pump_pause|1<<pump_work|1<<pump_on_off)
sts pump_psw,tempA
exit_pump: ret
;..........................................................

бит старта помпы pump_on_off взводится процедурой долива воды fill_water.
собсно где то так это работает.