На головну сторінку Аквафорум
На головну сторінку




Назад   Аквафорум - форум акваріумістів та тераріумістів > Акваріум та обладнання > "Самоделкин" > Аквариумная автоматика
Аукцион Реєстрація ЧаПи Учасники Календар Нинішні дописи

Примітки

Відповідь
 
Параметри теми Параметри перегляду
Старий 27.10.2018, 23:09   #1
Придивляюся
  
 
Аватар для evrebodylies
 
Реєстрація: 21.03.2016
Дописи: 99
сказав Дякую: 13
сказали Дякую 11 раз(и) в 9 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Допис від Сергій М Переглянути допис
evrebodylies, Для цитирования фразы или коммента, просто выделите текст и под аватаркой нажмите
На телефоне только разобрался)

Отправлено с моего LLD-L31 через Tapatalk

evrebodylies поза форумом   Відповісти з цитуванням
Старий 27.10.2018, 23:11   #2
Живу я тут
  
 
Аватар для Сергій М
 
Реєстрація: 31.12.2014
Звідки Ви: Львов
Дописи: 1.421
сказав Дякую: 278
сказали Дякую 830 раз(и) в 533 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Допис від Сергій М Переглянути допис
На аэрацию внешнее резервное питание или ещё что-то
Тоже думаю на это, то вариант с реле которое запускает постоянную аэрацию - супер, оно само замкнёт контакты при пропадении сигнала/питания на внешнее резервное питание...

Сергій М поза форумом   Відповісти з цитуванням
Старий 27.10.2018, 23:13   #3
Придивляюся
  
 
Аватар для evrebodylies
 
Реєстрація: 21.03.2016
Дописи: 99
сказав Дякую: 13
сказали Дякую 11 раз(и) в 9 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Ну это легко сделать. Но вопрос в другом. Компрессор нужен по типу 12в. Либо акб и инвертор.
Цитата:
Допис від Сергій М Переглянути допис
Тоже думаю на это, то вариант с реле которое запускает постоянную аэрацию - супер, оно само замкнёт контакты при пропадении сигнала/питания на внешнее резервное питание...
Отправлено с моего LLD-L31 через Tapatalk

evrebodylies поза форумом   Відповісти з цитуванням
Старий 27.10.2018, 23:25   #4
Придивляюся
  
 
Аватар для evrebodylies
 
Реєстрація: 21.03.2016
Дописи: 99
сказав Дякую: 13
сказали Дякую 11 раз(и) в 9 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Допис від Сергій М Переглянути допис
Тоже думаю на это, то вариант с реле которое запускает постоянную аэрацию - супер, оно само замкнёт контакты при пропадении сигнала/питания на внешнее резервное питание...
Ещё как вариант обычный компьютерный ибп

Отправлено с моего LLD-L31 через Tapatalk

evrebodylies поза форумом   Відповісти з цитуванням
Старий 28.10.2018, 07:00   #5
Харьковский клуб аквариумистов
  
 
Аватар для burnashev
 
Реєстрація: 30.03.2011
Звідки Ви: г. Харьков
Дописи: 584
сказав Дякую: 145
сказали Дякую 292 раз(и) в 213 повідомленні
Надіслати повідомлення для burnashev на ICQ
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Планирую вообще поставить через диод в реле силовой нагрузки там 3 контакта сигнал есть контакт замыкает 1 и 2 к которому подведена фаза сигнала нет 2 замыкается с 3 моторчик будет питается от акб литий полимер или от 18650 ещё не решил вопрос какие диоды поставить чтоб фаза на акб не прошла! Или запитать к примеру отдельно реле к примеру от той-же аэрации так как я её не использую
Цитата:
Допис від evrebodylies Переглянути допис
Ещё как вариант обычный компьютерный ибп

Отправлено с моего LLD-L31 через Tapatalk
tropfish.org.ua
__________________
ParkZoo Fish


__________________

burnashev поза форумом   Відповісти з цитуванням
Старий 28.10.2018, 07:15   #6
Придивляюся
  
 
Аватар для evrebodylies
 
Реєстрація: 21.03.2016
Дописи: 99
сказав Дякую: 13
сказали Дякую 11 раз(и) в 9 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Допис від burnashev Переглянути допис
Планирую вообще поставить через диод в реле силовой нагрузки там 3 контакта сигнал есть контакт замыкает 1 и 2 к которому подведена фаза сигнала нет 2 замыкается с 3 моторчик будет питается от акб литий полимер или от 18650 ещё не решил вопрос какие диоды поставить чтоб фаза на акб не прошла! Или запитать к примеру отдельно реле к примеру от той-же аэрации так как я её не использую

tropfish.org.ua
Ну хз. Мне кажется надёжней будет два раздельный реле но с одним управляющим сигналом. Пахать в одну цепь и переменку и постоянку опасно.. Диодами защищать не надёжно. Лучше если. Будут раздельные цепи питания. Это более безопасно. Просто на двух различных реле с одним управляющим сигналом но разными источниками будет лучше. Одно реле как я выше писал с нормально замкнутыми одно с нормально разомкнутыми контактами. Принцип авр. При пропаже питания на контроллере пропадает и управляющий. Соответственно одно реле автоматом разомкнется, другое замкнется. При подаче сигнала произойдёт обратное. Одно замкнется другое разомкнется. Можно и на одном но я бы не рисковал.

Отправлено с моего LLD-L31 через Tapatalk

evrebodylies поза форумом   Відповісти з цитуванням
Старий 28.10.2018, 07:19   #7
Харьковский клуб аквариумистов
  
 
Аватар для burnashev
 
Реєстрація: 30.03.2011
Звідки Ви: г. Харьков
Дописи: 584
сказав Дякую: 145
сказали Дякую 292 раз(и) в 213 повідомленні
Надіслати повідомлення для burnashev на ICQ
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Допис від evrebodylies Переглянути допис
Ну хз. Мне кажется надёжней будет два раздельный реле но с одним управляющим сигналом. Пахать в одну цепь и переменку и постоянку опасно.. Диодами защищать не надёжно. Лучше если. Будут раздельные цепи питания. Это более безопасно. Просто на двух различных реле с одним управляющим сигналом но разными источниками будет лучше. Одно реле как я выше писал с нормально замкнутыми одно с нормально разомкнутыми контактами. Принцип авр. При пропаже питания на контроллере пропадает и управляющий. Соответственно одно реле автоматом разомкнется, другое замкнется. При подаче сигнала произойдёт обратное. Одно замкнется другое разомкнется. Можно и на одном но я бы не рисковал.

Отправлено с моего LLD-L31 через Tapatalk
Спасибо значит на 6 аналоговый выход будет аварийний) буду искать часть нужного кода!

tropfish.org.ua
__________________
ParkZoo Fish


__________________

burnashev поза форумом   Відповісти з цитуванням
Старий 30.10.2018, 19:21   #8
Придивляюся
  
 
Реєстрація: 08.07.2018
Звідки Ви: Суми
Дописи: 16
сказав Дякую: 12
сказали Дякую 5 раз(и) в 3 повідомленні
Відповідь: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Та досить і одного реле. На +5V повісити і через нормально замкнуті контакти батарейку на помпу комутувати.
Доліпив у свій код скрінсейвер для екрана. А то дуже світить вночі.
idle_key з byte змінив на unsigned long і додав ще одну змінну:

На початку коду:

//byte iddle_key = 0;
unsigned long idle_key = 0;
byte DispLight_cur = 0;

А після блоку if((idle_key > max_idle_key)&&(cur_menu != 0)){
.......
}

додав:

if (cur_menu == 0) {
if(idle_key < max_idle_key*2) {
DispLight_cur = DispLight_min;
} else if((idle_key >= max_idle_key*2)&&(idle_key < max_idle_key*4)) {
DispLight_cur = DispLight_min/2;
} else {
DispLight_cur = DispLight_min/10;
}
}

В результаті після неактивності кнопок приблизно 50 секунд екран притухає на 1/2 від DispLight_min, ще через 150 сек до 1/10.

Ще переробив коррекцію часу на один раз в день, опівночі. У мене годинник спішив всього на 8 секунд за день, однієї корекції достатньо.

// коррекция хода системных часов [Сек]
if (time.hour == 0) { // один раз на добу
new_day = true;
}
if (time.min == 0){
new_hour = true;
}
if ((time.hour == 0)&&(time.min == 5)&&(new_hour)&&(new_day)){
int corr_sec = time.sec + CorrTime; // коррекция хода системных часов [Сек]
byte corr_min = time.min;
if (corr_sec < 0){
corr_sec = corr_sec + 60;
corr_min--;
}
if (corr_sec > 59){
corr_sec = corr_sec - 60;
corr_min++;
}
rtc.setTime(time.hour, corr_min, corr_sec); // Set the time to 12:00:00 (24hr format)
new_hour = false;
new_day = false;
}
//-----

Ага, тоді ще треба:
boolean new_day = false;
на початку вставити.

Ant0ny поза форумом   Відповісти з цитуванням
Старий 30.10.2018, 19:23   #9
Придивляюся
  
 
Аватар для evrebodylies
 
Реєстрація: 21.03.2016
Дописи: 99
сказав Дякую: 13
сказали Дякую 11 раз(и) в 9 повідомленні
Re: Відповідь: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Допис від Ant0ny Переглянути допис
Та досить і одного реле. На +5V повісити і через нормально замкнуті контакти батарейку на помпу комутувати.
Доліпив у свій код скрінсейвер для екрана. А то дуже світить вночі.
idle_key з byte змінив на unsigned long і додав ще одну змінну:

На початку коду:

//byte iddle_key = 0;
unsigned long idle_key = 0;
byte DispLight_cur = 0;

А після блоку if((idle_key > max_idle_key)&&(cur_menu != 0)){
.......
}

додав:

if (cur_menu == 0) {
if(idle_key < max_idle_key*2) {
DispLight_cur = DispLight_min;
} else if((idle_key >= max_idle_key*2)&&(idle_key < max_idle_key*4)) {
DispLight_cur = DispLight_min/2;
} else {
DispLight_cur = DispLight_min/10;
}
}

В результаті після неактивності кнопок приблизно 50 секунд екран притухає на 1/2 від DispLight_min, ще через 150 сек до 1/10.

Ще переробив коррекцію часу на один раз в день, опівночі. У мене годинник спішив всього на 8 секунд за день, однієї корекції достатньо.

// коррекция хода системных часов [Сек]
if (time.hour == 0) { // один раз на добу
new_day = true;
}
if (time.min == 0){
new_hour = true;
}
if ((time.hour == 0)&&(time.min == 5)&&(new_hour)&&(new_day)){
int corr_sec = time.sec + CorrTime; // коррекция хода системных часов [Сек]
byte corr_min = time.min;
if (corr_sec < 0){
corr_sec = corr_sec + 60;
corr_min--;
}
if (corr_sec > 59){
corr_sec = corr_sec - 60;
corr_min++;
}
rtc.setTime(time.hour, corr_min, corr_sec); // Set the time to 12:00:00 (24hr format)
new_hour = false;
new_day = false;
}
//-----

Ага, тоді ще треба:
boolean new_day = false;
на початку вставити.
Не говори ерунду. Основное и резервное питание должно быть раздельно. Не дай бог реле глюкнит или ещё что и вся цепь резерва пойдёт по бороде

Отправлено с моего LLD-L31 через Tapatalk

evrebodylies поза форумом   Відповісти з цитуванням
Старий 30.10.2018, 19:26   #10
Придивляюся
  
 
Реєстрація: 08.07.2018
Звідки Ви: Суми
Дописи: 16
сказав Дякую: 12
сказали Дякую 5 раз(и) в 3 повідомленні
Відповідь: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

По якій бороді?

обмотка реле на +5вольт, а два ізольовані контакти замикають батарейку на помпу.

220 і поряд не стоїть

Ant0ny поза форумом   Відповісти з цитуванням
Старий 30.10.2018, 19:31   #11
Харьковский клуб аквариумистов
  
 
Аватар для burnashev
 
Реєстрація: 30.03.2011
Звідки Ви: г. Харьков
Дописи: 584
сказав Дякую: 145
сказали Дякую 292 раз(и) в 213 повідомленні
Надіслати повідомлення для burnashev на ICQ
Re: Відповідь: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

А вы можете перебрать и реализовать часть кода которой из меню можно будет выставлять коррекцию?
Цитата:
Допис від Ant0ny Переглянути допис
По якій бороді?

обмотка реле на +5вольт, а два ізольовані контакти замикають батарейку на помпу.

220 і поряд не стоїть
tropfish.org.ua
__________________
ParkZoo Fish


__________________

burnashev поза форумом   Відповісти з цитуванням
Старий 30.10.2018, 20:07   #12
Придивляюся
  
 
Реєстрація: 08.07.2018
Звідки Ви: Суми
Дописи: 16
сказав Дякую: 12
сказали Дякую 5 раз(и) в 3 повідомленні
Відповідь: Re: Відповідь: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Допис від burnashev Переглянути допис
А вы можете перебрать и реализовать часть кода которой из меню можно будет выставлять коррекцию?
По пунктам меню дивлюсь, що корекцію можна впихнути в пункт де виставляється час. Там місця багато.
Тільки хотілось би параметр корекції до EEPROM занести, щоб не пропадало після відключення. А там поки не бачу де є вільне місце.

Ant0ny поза форумом   Відповісти з цитуванням
Старий 30.10.2018, 19:43   #13
Придивляюся
  
 
Реєстрація: 08.07.2018
Звідки Ви: Суми
Дописи: 16
сказав Дякую: 12
сказали Дякую 5 раз(и) в 3 повідомленні
Відповідь: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Щоб збільшити малюнок, клацніть по ньому
Назва:  Screenshot_56.png
Переглядів: 379
Розмір:  5,8 КБ
ID:	644499
Що тут куди замкне?


З меню ще не розбирався, сам би хотів.
Там би не наїхати на ті дані, що в пам'ять пишуться.

Ant0ny поза форумом   Відповісти з цитуванням
Старий 01.11.2018, 21:02   #14
Придивляюся
  
 
Реєстрація: 08.07.2018
Звідки Ви: Суми
Дописи: 16
сказав Дякую: 12
сказали Дякую 5 раз(и) в 3 повідомленні
Відповідь: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Є корекція через меню!
Наскільки я розібрався з EEPROM, в адреси з 0 до 4 записуються загальні параметри:
ledContrast, ledLight, температура води, мінімальні оберти кулера, максимальні оберти кулера. А далі Alarm починається з 100-го байта. Тобто від 5 до 99 все вільно.
Оскільки корекція може бути зі знаком + або -, то нам підходить змінна типу int, а вона займає 2 байти. Отже використаю для неї байти 5 та 6.
Вся процедура вийшла розмазаною по коду, буду показувати step by step.

Замість #define CorrTime -8
//#define CorrTime -8 // коррекция хода системных часов [Сек]
int CorrTime = -8; // або 0 або скільки треба

тут же або нижче, але до void setup() вставимо:

byte highb;
byte lowb;


EEPROM може бути забитий чим завгодно, наприклад 255. Два байти разом дадуть 32767. Кнопками міняти буде ду-у-у-уже довго. Для того щоб виставити швидко 0 або кілька секунд, при першому завантаженні скетчу розкоментуйте цю пару рядків, що додайте у блок // Init EEPROM

// EEPROM.write(5, highByte(CorrTime)); // set for first time
// EEPROM.write(6, lowByte(CorrTime));

після
maxCool = EEPROM.read(4); // максимальные обороты для охлаждения воды
вставимо:

highb = EEPROM.read(5);
lowb = EEPROM.read(6);
CorrTime = word(highb,lowb);


Спускаємось до приблизно 350 рядка де знаходимо
byte menu_hh;
byte menu_mi;

і додаємо:

int menu_cor;

Спускаємось по коду аж до блоку
case 131: // nastroika sistema ------
Після menu_mi = time.min;
і перед break;
вставляємо:
menu_cor = CorrTime;

Тепер основна частина в блоці case 1311: // Time -------

Мабуть приведу цей блок повністю з виділеними вставками:

case 1311: // Time -----------------------------------------------------------------
{
myGLCD.setFont(SmallFont);
myGLCD.clrScr();

myGLCD.print("wremq",1,0);
myGLCD.print("korr.",1,35);
myGLCD.print(rtc.getTimeStr(FORMAT_SHORT),RIGHT,0) ;
myGLCD.drawLine(0,8,83,8);
myGLCD.drawLine(0,9,83,9);
if((cur_item == 1)&&cur_item_edit)
myGLCD.invertText(true);
myGLCD.printNumI(menu_hh,26,20,2,'0');
myGLCD.invertText(false);
myGLCD.print(":",39,20);
if((cur_item == 2)&&cur_item_edit)
myGLCD.invertText(true);
myGLCD.printNumI(menu_mi,46,20,2,'0');
myGLCD.invertText(false);
if((cur_item == 3)&&cur_item_edit) // my add
myGLCD.invertText(true); //
myGLCD.printNumI(menu_cor,35,35,2,'0'); //
myGLCD.invertText(false); //


if(cur_item == 1)
myGLCD.drawRoundRect(25,18,39,28);
if(cur_item == 2)
myGLCD.drawRoundRect(45,18,59,28);
if(cur_item == 3) // my add
myGLCD.drawRoundRect(34,33,58,42); //


switch(key){
case BUTTON_UP:
if(!cur_item_edit){
cur_item--;
if(cur_item < 1)
cur_item = 3;
}else{
if(cur_item == 1){
menu_hh++;
if(menu_hh == 24)
menu_hh = 0;
}
if(cur_item == 2){
menu_mi++;
if(menu_mi == 60)
menu_mi = 0;
}
if(cur_item == 3){
menu_cor++;
}

}
break;
case BUTTON_DOWN:
if(!cur_item_edit){
cur_item++;
if(cur_item > 3)
cur_item = 1;
}else{
if(cur_item == 1){
if(menu_hh == 0)
menu_hh = 23;
else
menu_hh--;
}
if(cur_item == 2){
if(menu_mi == 0)
menu_mi = 59;
else
menu_mi--;
}
if(cur_item == 3){
menu_cor--;
}

}
break;
case BUTTON_OK:
if(cur_item_edit){
switch(cur_item){
case 1:
rtc.setTime(menu_hh, time.min, 0); // Set the time to 12:00:00 (24hr format)
break;
case 2:
rtc.setTime(time.hour, menu_mi, 0); // Set the time to 12:00:00 (24hr format)
break;
case 3:
CorrTime = menu_cor;
EEPROM.write(5, highByte(CorrTime)); // correction value in seconds
EEPROM.write(6, lowByte(CorrTime));
break;

}
cur_item_edit = false;
}else
cur_item_edit = true;
break;
case BUTTON_CANCEL:
cur_item_edit = false;
cur_menu = 131;
cur_item = 1;
break;
}
myGLCD.update();
break;
}

Ось і все. Тепер в меню де виставляється час, додалась можливість виставити корекцію.
Думаю, що зрозуміло виклав. Будуть питання - велкам

Ant0ny поза форумом   Відповісти з цитуванням
Старий 01.11.2018, 21:12   #15
Харьковский клуб аквариумистов
  
 
Аватар для burnashev
 
Реєстрація: 30.03.2011
Звідки Ви: г. Харьков
Дописи: 584
сказав Дякую: 145
сказали Дякую 292 раз(и) в 213 повідомленні
Надіслати повідомлення для burnashev на ICQ
Re: Відповідь: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Допис від Ant0ny Переглянути допис

Ось і все. Тепер в меню де виставляється час, додалась можливість виставити корекцію.
Думаю, що зрозуміло виклав. Будуть питання - велкам
Проверю в субботу))) ещё бы удо докрутить без задержки))))

tropfish.org.ua
__________________
ParkZoo Fish


__________________


Востаннє редагував burnashev: 03.11.2018 о 08:14..
burnashev поза форумом   Відповісти з цитуванням
cказали "Дякую" burnashev за цей допис:
AlexVOK (07.01.2019)


Share/Bookmark

Відповідь

Мітки
arduino, акваконтроллер


Тут присутні: 1 (учасників - 0 , гостей - 1)
 

Ваші права у розділі
Ви не можете створювати теми
Ви не можете писати дописи
Ви не можете долучати файли
Ви не можете редагувати дописи

BB-код є Увімк.
Усмішки Увімк.
[IMG] код Увімк.
HTML код Вимк.

Швидкий перехід


Часовий пояс GMT +3. Поточний час: 02:48.


vBulletin 3.8.7 ; Copyright © 2000-2025 Jelsoft Enterprises Limited
Переклад: © Віталій Стопчанський, 2004-2010
(с)Бешлега Олександр Анатолійович, 2002-2025. Використання матеріалів сайту без посилання на джерело заборонено.
Дякуємо за ліцензійну версію форума компанію Барбус, представника торгової марки Sera в Україні.


no new posts