 |
|
25.03.2016, 17:10
|
#1
|
|
Живу я тут
Реєстрація: 21.07.2009
Звідки Ви: Оболонь
Дописи: 587
сказав Дякую: 86
сказали Дякую 102 раз(и) в 82 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
оплатил в Запорожье Мегу и 3.95 с тачем. что использую на акву а что не пойдет буду ваять замену часам в Лансере с62а
Оффтоп
Кстати если что поможете с пониманием? Есть mmcd для palm и есть расписывание кода общения с моим контроллером. Типа отправииь 0х2а и получить код состояния .. а то часы с градусниками и барометром слишком уж дорогие выйдут  ) .
__________________
реанимация компьютеров, серверов, сетей, телефонов-планшетов.
|
|
|
25.03.2016, 18:56
|
#2
|
|
Бан за нарушения
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
alex_palace, Оффтоп
Это точно не ко мне
__________________ 
|
|
|
01.04.2016, 21:00
|
#3
|
|
Придивляюся
Реєстрація: 01.04.2016
Звідки Ви: Харьков
Дописи: 3
сказав Дякую: 3
сказали Дякую 2 раз(и) в 2 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
Доброго времени суток, дорогие участники форума! Просмотрев тему, решил сделать себе девайс.
Автор темы подробно все описал, за что ему Отдельное спасибо!!!
Прикрепляю небольшой фото-отчет.
Из трудностей было только то, что у меня другой экран ILI9327 и саму программу Arduino нужно было скачать c официального сайта (версия 10.6).
Самое главное!!! SD карта на 2 ноутах Win10 форматировалась но не читалась контроллером!!-РЕШЕНИЕ форматировать на Windows7
Единственный нюанс - Блок реле работает прямо противоположно.
Можно конечно использовать вторые контакты реле. Но возможна проблема - вдруг что случится с контроллером и беспрерывная подача УДО обеспечена.т.к. реле в таком случае работает на размыкание сети.

Востаннє редагував andreymakaroff: 01.04.2016 о 21:06..
|
|
|
|
cказали "Дякую" andreymakaroff за цей допис:
|
|
01.04.2016, 21:07
|
#4
|
|
Бан за нарушения
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
andreymakaroff, В личку я много раз уже описывал что делать.
Теперь опишу и тут.
В скетче на вкладке "Upravlenie" найти процедуру "void VklVyklKanal(byte StaroeSostoyanie, boolean OnOff_PWM){"
Там для управления фильтром есть такие строки, в которых нужно изменить HIGH на LOW
digitalWrite(k_Filtr, LOW); - выключено нужно заменить на HIGH
digitalWrite(k_Filtr, HIGH); - включено нужно заменить на LOW
в этой же процедуре найти строку "switch (NomerKanalaSostoyaniya) {"
и перед ней вставить
if(UrovenKanala = LOW){
UrovenKanala = HIGH;
}else{
UrovenKanala = LOW;
}
И еще, для управления каналами только через реле, нельзя активировать через сенсорный экран "ШИМ".
__________________ 
|
|
|
|
cказали "Дякую" sae74 за цей допис:
|
|
01.04.2016, 22:15
|
#5
|
|
Придивляюся
Реєстрація: 01.04.2016
Звідки Ви: Харьков
Дописи: 3
сказав Дякую: 3
сказали Дякую 2 раз(и) в 2 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
Попробовал эти изменения, к сожалению реле всегда включено в любом состоянии.
На всякий случай прикрепил Upravlenie.ino с изменениями
http://www.ex.ua/edit_storage/910503674971
|
|
|
01.04.2016, 22:29
|
#6
|
|
Живу я тут
Реєстрація: 21.07.2009
Звідки Ви: Оболонь
Дописи: 587
сказав Дякую: 86
сказали Дякую 102 раз(и) в 82 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
попробуйте вместо релюх диоды повесить. очень наглядно : плюсом в соотв гнезда меги и на общую массу)
__________________
реанимация компьютеров, серверов, сетей, телефонов-планшетов.
|
|
|
01.04.2016, 22:32
|
#7
|
|
Бан за нарушения
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
сейчас дам новый кусок кода
__________________ 
|
|
|
01.04.2016, 22:34
|
#8
|
|
Бан за нарушения
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
полностью замените процедуру "void VklVyklKanal(byte StaroeSostoyanie, boolean OnOff_PWM){"
void VklVyklKanal(byte StaroeSostoyanie, boolean OnOff_PWM){
culer();
techenie();
if (filtr >0 && filtr<maxFilterStop) {
TimeFiltra();
digitalWrite(k_Filtr, HIGH);
s_k_10="smoff.raw";
}
else if (filtr ==0){
digitalWrite(k_Filtr, LOW);
s_k_10="smon.raw";
}
else if (filtr >maxFilterStop+9){
digitalWrite(k_Filtr, HIGH);
s_k_10="smoff.raw";
}
boolean UrovenKanala=LOW;
if(OnOff_PWM ==LOW && StaroeSostoyanie>1)UrovenKanala=HIGH;// если выключен шим то устанавливаем режим выхода
switch (NomerKanalaSostoyaniya) {
case 1:
if(OnOff_PWM==LOW){
if(UrovenKanala==HIGH){
K_1_PWM=255;
digitalWrite(k1, LOW);
}
else{
K_1_PWM=0;
digitalWrite(k1, HIGH);
}
s_k_1=icon;
}
else{
pwmWrite(k1, StaroeSostoyanie);
K_1_PWM=StaroeSostoyanie;
// //Serial.println(K_1_PWM);
//s_k_1=String(StaroeSostoyanie);
s_k_1=icon;
}
if (icon != icon1 && nomer_ekrana ==9){
icon1=icon;
myFiles.loadBitmap(3, 171, 33, 33, icon1);
}
break;
case 2:
if(OnOff_PWM==LOW){
if(UrovenKanala==HIGH){
K_2_PWM=255;
digitalWrite(k2, LOW);
}
else{
K_2_PWM=0;
digitalWrite(k2, HIGH);
}
s_k_2 =icon;
// }
}
else{
pwmWrite(k2, StaroeSostoyanie);
K_2_PWM=StaroeSostoyanie;
// s_k_2=String(StaroeSostoyanie);
s_k_2 =icon;
}
if (icon != icon2 && nomer_ekrana ==9){
icon2=icon;
myFiles.loadBitmap(38, 171, 33, 33, icon2);
}
break;
case 3:
if(OnOff_PWM==LOW){
if(UrovenKanala==HIGH){
K_3_PWM=255;
digitalWrite(k3, LOW);
}
else{
K_3_PWM=0;
digitalWrite(k3, HIGH);
}
s_k_3 =icon;
// }
}
else{
pwmWrite(k3, StaroeSostoyanie);
K_3_PWM=StaroeSostoyanie;
// s_k_3=String(StaroeSostoyanie);
s_k_3 =icon;
}
if (icon != icon3 && nomer_ekrana ==9){
icon3=icon;
myFiles.loadBitmap(73, 171, 33, 33, icon3);
}
break;
case 4:
if(OnOff_PWM==LOW){
if(UrovenKanala==HIGH){
K_4_PWM=255;
digitalWrite(k4, LOW);
}
else{
K_4_PWM=0;
digitalWrite(k4, HIGH);
}
s_k_4 =icon;
// }
}
else{
pwmWrite(k4, StaroeSostoyanie);
K_4_PWM=StaroeSostoyanie;
// s_k_4=String(StaroeSostoyanie);
s_k_4 =icon;
}
if (icon != icon4 && nomer_ekrana ==9){
icon4=icon;
myFiles.loadBitmap(108, 171, 33, 33, icon4);
}
break;
case 5:
if(OnOff_PWM==LOW){
if(UrovenKanala==HIGH){
K_5_PWM=255;
digitalWrite(k5, LOW);
}
else{
K_5_PWM=0;
digitalWrite(k5, HIGH);
}
s_k_5 =icon;
// }
}
else{
pwmWrite(k5, StaroeSostoyanie);
K_5_PWM=StaroeSostoyanie;
// s_k_5=String(StaroeSostoyanie);
s_k_5 =icon;
}
if (icon != icon5 && nomer_ekrana ==9){
icon5=icon;
myFiles.loadBitmap(143, 171, 33, 33, icon5);
}
break;
case 6:
if(OnOff_PWM==LOW){
if(UrovenKanala==HIGH){
K_6_PWM=255;
digitalWrite(k6, LOW);
}
else{
K_6_PWM=0;
digitalWrite(k6, HIGH);
}
s_k_6 =icon;
// }
}
else{
pwmWrite(k6, StaroeSostoyanie);
K_6_PWM=StaroeSostoyanie;
// s_k_6=String(StaroeSostoyanie);
s_k_6 =icon;
}
if (icon != icon6 && nomer_ekrana ==9){
icon6=icon;
myFiles.loadBitmap(178, 171, 33, 33, icon6);
}
break;
case 7:
if(OnOff_PWM==LOW){
if(UrovenKanala==HIGH){
K_7_PWM=255;
digitalWrite(k7, LOW);
}
else{
K_7_PWM=0;
digitalWrite(k7, HIGH);
}
s_k_7 =icon;
// }
}
else{
analogWrite(k7, StaroeSostoyanie);
K_7_PWM=StaroeSostoyanie;
//s_k_7=String(StaroeSostoyanie);
s_k_7 =icon;
}
if (icon != icon7 && nomer_ekrana ==9){
icon7=icon;
myFiles.loadBitmap(213, 171, 33, 33, icon7);
}
break;
case 8:
if(OnOff_PWM==LOW){
if(UrovenKanala==HIGH){
K_8_PWM=255;
digitalWrite(k8, LOW);
}
else{
K_8_PWM=0;
digitalWrite(k8, HIGH);
}
s_k_8 =icon;
// }
}
else{
pwmWrite(k8, StaroeSostoyanie);
K_8_PWM=StaroeSostoyanie;
//s_k_8=String(StaroeSostoyanie);
s_k_8 =icon;
}
if (icon != icon8 && nomer_ekrana ==9){
icon8=icon;
myFiles.loadBitmap(248, 171, 33, 33, icon8);
}
break;
case 9:
if(OnOff_PWM==LOW){
if(UrovenKanala==HIGH){
K_9_PWM=255;
digitalWrite(k9, LOW);
}
else{
K_9_PWM=0;
digitalWrite(k9, HIGH);
}
s_k_9 =icon;
// }
}
else{
//pwmWrite(k9, StaroeSostoyanie);
pwmWrite(k9, StaroeSostoyanie);
K_9_PWM=StaroeSostoyanie;
//s_k_9=String(StaroeSostoyanie);
s_k_9 =icon;
}
if (icon != icon9 && nomer_ekrana ==9){
icon9=icon;
myFiles.loadBitmap(283, 171, 33, 33, icon9);
}
break;
default:
break;
}
}
__________________ 
|
|
|
|
cказали "Дякую" sae74 за цей допис:
|
|
01.04.2016, 23:06
|
#9
|
|
Придивляюся
Реєстрація: 01.04.2016
Звідки Ви: Харьков
Дописи: 3
сказав Дякую: 3
сказали Дякую 2 раз(и) в 2 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
Все заработало!!!!
Как все было:
Компилятор ругался на "maxFilterStop"
Заменил на 60
Чтоб получилось вот так:
if (filtr >0 && filtr<60) {
TimeFiltra();
digitalWrite(k_Filtr, HIGH);
s_k_10="smoff.raw";
}
else if (filtr ==0){
digitalWrite(k_Filtr, LOW);
s_k_10="smon.raw";
}
else if (filtr >59){
digitalWrite(k_Filtr, HIGH);
s_k_10="smoff.raw";
}
И все! Все получилось)))
Есть небольшой баг при калибровке УДО - Инверсия осталась.
Но это не существенная проблема.))))
Огромное спасибо автору!!!
|
|
|
|
cказали "Дякую" andreymakaroff за цей допис:
|
|
01.04.2016, 23:28
|
#10
|
|
Бан за нарушения
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
andreymakaroff, калибровку удо - посмотрю и тоже скину.
__________________ 
|
|
|
01.04.2016, 23:32
|
#11
|
|
Бан за нарушения
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
andreymakaroff, если мне не изменяет память - то на вкладке "KalibrovkaUDO" все LOW заменить на HIGH, и наоборот.
на вкладке полностью замените код "KalibrovkaUDO"
//Старт калибровки УДО
unsigned long start_udo;
void StartKalibrovkiUDO(){
myFiles.loadBitmap(120, 80, 81, 48, "stop.raw");
myGLCD.setColor (VGA_YELLOW);
myGLCD.print (UDO6,CENTER, 200 );
myGLCD.setColor (osnova);
OnOff=1;
kalibrovka_time=millis();
while(OnOff==1){
Zapusk();
if(myTouch.dataAvailable()==1)OnOff=0;
}
StopKalibrovkaUDO();
}
void StopKalibrovkaUDO(){
Zapusk();
kalibrovka_time= millis()-kalibrovka_time;
kalibrovka_time=kalibrovka_time/(obem_udo_kalibrovki/10);
save_kalibrovka_udo(kanal);
myFiles.loadBitmap(120, 80, 81, 48, "start.raw");
myGLCD.setColor (VGA_LIME);
myGLCD.print (UDO4,CENTER, 200 );
myGLCD.setColor (osnova);
}
void Zapusk(){
//Включить помпу!!!!!!!!!!!!!!!!!!!!!!!!!!!!
switch (kanal) {
case 1:
if(OnOff == 1){
digitalWrite(k1, LOW);
}
else{
digitalWrite(k1, HIGH);
}
break;
case 2:
if(OnOff == 1){
digitalWrite(k2, LOW);
}
else{
digitalWrite(k2, HIGH);
}
break;
case 3:
if(OnOff == 1){
digitalWrite(k3, LOW);
}
else{
digitalWrite(k3, HIGH);
}
break;
case 4:
if(OnOff == 1){
digitalWrite(k4, LOW);
}
else{
digitalWrite(k4, HIGH);
}
break;
case 5:
if(OnOff == 1){
digitalWrite(k5, LOW);
}
else{
digitalWrite(k5, HIGH);
}
break;
case 6:
if(OnOff == 1){
digitalWrite(k6, LOW);
}
else{
digitalWrite(k6, HIGH);
}
break;
case 7:
if(OnOff == 1){
digitalWrite(k7, LOW);
}
else{
digitalWrite(k7, HIGH);
}
break;
case 8:
if(OnOff == 1){
digitalWrite(k8, LOW);
}
else{
digitalWrite(k8, HIGH);
}
break;
case 9:
if(OnOff == 1){
digitalWrite(k9, LOW);
}
else{
start_udo= millis()-start_udo;
digitalWrite(k9, HIGH);
}
break;
default:
break;
}
}
void PuskUDO(){
byte PodatiUDO=0;
flag_prioritet_udo = 0;
// запись во внешний еппром
unsigned long Unsigned_long_0;
Unsigned_long_0 =read_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma));
unsigned long Unsigned_long_1;
Unsigned_long_1 =read_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma)+4);
if (Unsigned_long_0 == 0){// расчет времени подачи удо и запись в еепром
int odin_ml = read_kalibrovka_udo(RaschKanal)/10;//Получаем время для канала на 1 мл объема
byte kol_ml = obiem();//количество мл удо
unsigned long time_podachi_udo =(unsigned long)odin_ml*(unsigned long)kol_ml; // сколько милисикунд подавать удо
unsigned long time_kon_udo = millis()+(time_podachi_udo/10);
write_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma), millis()); //время подачи удо
write_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma)+4, time_kon_udo);//во сколько нужно прекратить подачу удо
PodatiUDO=1;
start_udo= millis();
icon ="smudo.raw";
flag_prioritet_udo = 1;
//Serial.print(millis());
//Serial.print(" ");
// Serial.print(time_kon_udo);
//Serial.print(" ");
// Serial.print(time_podachi_udo);
// Serial.print(" ");
// Serial.println((time_podachi_udo/10));
if (( time_kon_udo-millis()) <= 1100){//подаем удо до 1 секунды
//analogWriteKanal=UrovenPWM(PodatiUDO, 2, 1, 2);
kanal=RaschKanal;
OnOff=1;
Zapusk();
while(millis() < time_kon_udo){
PodatiUDO = 0;
// Serial.print("1 ");
//Serial.println(millis());
}
kanal=RaschKanal;
OnOff=0;
Zapusk();
flag_prioritet_udo = 0;
write_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma), 4294967295); //больше не подаем удо
}
}
else if(Unsigned_long_1 > Unsigned_long_0){// нужно подавать удо
long time_podachi_udo;
if (millis()<Unsigned_long_0){//была перегрузка контролерра
Unsigned_long_1 =read_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma)+4);
time_podachi_udo= Unsigned_long_1 - Unsigned_long_0;
}
else{
Unsigned_long_1 =read_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma)+4);
time_podachi_udo=Unsigned_long_1 - millis();
}
if (time_podachi_udo<0)time_podachi_udo=0;
unsigned long time_kon_udo = millis()+time_podachi_udo;
write_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma), millis()); //время подачи удо
write_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma)+4, time_kon_udo);//во сколько нужно прекратить подачу удо
PodatiUDO=1;
icon ="smudo.raw";
flag_prioritet_udo = 1;
//Serial.println(time_podachi_udo);
if (( time_kon_udo-millis()) <= 1100){//подаем удо до 1 секунды
//analogWriteKanal=UrovenPWM(PodatiUDO, 2, 1, 2);
kanal=RaschKanal;
OnOff=1;
Zapusk();
while(millis() < time_kon_udo){
PodatiUDO = 0;
// Serial.print("2 ");
//Serial.println(millis());
}
kanal=RaschKanal;
OnOff=0;
Zapusk();
flag_prioritet_udo = 0;
write_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma), 4294967295); //больше не подаем удо
}
}
else if (Unsigned_long_0 !=4294967295) {//прекартить подачу до новой даты
//Serial.print(millis());
// Serial.print(Unsigned_long_1);Serial.print(" - ");Serial.print(Unsigned_long_0); Serial.print(" = "); Serial.println(Unsigned_long_0-Unsigned_long_1);
write_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma), 4294967295); //больше не подаем удо
PodatiUDO=0;
icon ="smoff.raw";
flag_prioritet_udo = 0;
// Serial.println(" stop ");
// Serial.print(" 4294967295 = ");
//Unsigned_long_0 =read_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma));
//Serial.println(Unsigned_long_0);
}
analogWriteKanal=UrovenPWM(PodatiUDO, 2, 1, 2);
//Serial.print("analogWriteKanal ");
//Serial.println(analogWriteKanal);
}
void UdoTimeStop(unsigned long StopTime, unsigned long TekTime, unsigned long StartTime){
if(TekTime > StopTime || TekTime < StartTime) {// если вышло время выполнения условия обнулить данные подачи удо
icon ="smoff.raw";
unsigned long Unsigned_long_0;
Unsigned_long_0 =read_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma));
if (Unsigned_long_0 !=0){
int adr_vrem = AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma);
write_znach(adr_vrem, 0);//больше не подаем удо
//Serial.println(read_znach(adr_vrem));
//Serial.println(" stop 2");
}
analogWriteKanal=UrovenPWM(0, 2, 1, 2);
}
}
//void TestUDO1(){
// byte Start_UDO=1;
// write_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma), 0);//больше не подаем удо
// //Serial.print(RaschKanal);Serial.print(" ");Serial.println(RaschProgramma);
// while(Start_UDO!=0){
// PuskUDO();
// kanal=RaschKanal;
// Start_UDO=analogWriteKanal;
// OnOff=1;
// Zapusk();
// if(myTouch.dataAvailable()==1)write_znach(AdrHrane nieVneshEeprom_UDO(RaschKanal, RaschProgramma), 4294967295);//больше не подаем удо;
// }
// // Serial.print(RaschKanal);Serial.print(" ");Serial.println(RaschProgramma);
// OnOff=0;
// Zapusk();
// write_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma), 4294967295);//больше не подаем удо
//}
void TestUDO(){
unsigned long Unsigned_long_0;
Unsigned_long_0 =0;//read_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma));
unsigned long Unsigned_long_1;
Unsigned_long_1 =read_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma)+4);
if (Unsigned_long_0 == 0){// расчет времени подачи удо и запись в еепром
int odin_ml = read_kalibrovka_udo(RaschKanal)/10;//Получаем время для канала на 1 мл объема
byte kol_ml = obiem();//количество мл удо
unsigned long time_podachi_udo =(unsigned long)odin_ml*(unsigned long)kol_ml; // сколько милисикунд подавать удо
unsigned long time_kon_udo = millis()+(time_podachi_udo/10);
// if (( time_kon_udo-millis()) <= 1100){//подаем удо до 1 секунды
//analogWriteKanal=UrovenPWM(PodatiUDO, 2, 1, 2);
kanal=RaschKanal;
OnOff=1;
Zapusk();
while(millis() < time_kon_udo){
//PodatiUDO = 0;
if(myTouch.dataAvailable()==1)time_kon_udo = 0;//больше не подаем удо;
// Serial.print("time_kon_udo ");
// Serial.print(time_kon_udo);
// Serial.print("millis() ");
// Serial.println(millis());
}
kanal=RaschKanal;
OnOff=0;
Zapusk();
flag_prioritet_udo = 0;
write_znach(AdrHranenieVneshEeprom_UDO(RaschKanal, RaschProgramma), 4294967295); //больше не подаем удо
delay(100);
// }
}
}
__________________ 
|
|
|
02.04.2016, 00:28
|
#12
|
|
Живу я тут
Реєстрація: 31.12.2014
Звідки Ви: Львов
Дописи: 1.421
сказав Дякую: 278
сказали Дякую 830 раз(и) в 533 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
Именно поэтому я и заказал модуль-реле с триггером и теперь его можно использовать в любом проекте, просто переставляя перемычки.
Возможная аварийная ситуация и заставила над этим задуматься, так как бесконтрольная подача УДО убила бы акву.
Модуль - http://ru.aliexpress.com/item/12V-8-...b-967b6c409614
|
|
|
|
cказали "Дякую" Сергій М за цей допис:
|
|
02.04.2016, 09:22
|
#13
|
|
Бан за нарушения
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
На всеобщее тестирование выложил новую версию контроллера.
Тут скачать
Новые архивы начинаются с (2016)........rar
Пробуйте, тестируйте, пишите.
__________________ 
|
|
|
06.04.2016, 09:17
|
#14
|
|
Бан за нарушения
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
Цитата:
Допис від sae74
На всеобщее тестирование выложил новую версию контроллера.
Тут скачать
Новые архивы начинаются с (2016)........rar
Пробуйте, тестируйте, пишите.
|
Кто то уже испытал новую версию?
Забыл сказать, что после обновления нужно сделать "ресет" всем настройкам.
__________________ 
|
|
|
02.04.2016, 10:27
|
#15
|
|
Живу я тут
Реєстрація: 21.07.2009
Звідки Ви: Оболонь
Дописи: 587
сказав Дякую: 86
сказали Дякую 102 раз(и) в 82 повідомленні
|
Re: Контроллер на базе Arduino Mega 2560 + 3.2" TFT Touch LCD ===www.aquaforum.ua===
на 1.6.8 даже без правки скомпилировалось отлично! Т.к бутер на работе то залить пока не могу
несколько глупых вопросов
1 при отсутствии датчиков PH можно подачу повесить на реле по таймеру - правильно понял? (а аэрацию на нормальнозамкнутый контакт этого реле (как-то релюшек маловато заказал
2 светики К З С и Б повешу на ШИМ, уровнями по каналам смогу подогнать нужный цвет (а заменой картинок на карте с цифровых на буквенные еще и подписать их) но вот или туплю или как синхронизировать эти каналы? (таки поигрался чуть с ШИМами и приблизительно вырисовал себе ооочень красивую и надеюсь таки полезную цветовую картину. Утро с возрастающего синего через переход зеленого в красный и увеличение яркости белого. Когда белый 100% остальные 3 цвета выходят в 100%. (Сейчас у меня свет 4-2-4-2-4 т.е свет по 4 часа с перерывами и таки правду вычитал что при таких перерывах фотосинтез максимальный т.к при 12 часах подряд пузырять под конец почти переставало.. но мож это частный случай.) вместо выключения света в перерывах белый уходит в 20-30% а цвета уходят в синевато-красный (попробовать эмулировать тучи  ) ну и на ночь синевато-белый 5-10% ) с уходом к желтому. (на словах описать трудно  с работы выложу для критики цветографик отрисовал. Так вот вопрос синхронизации. В Олеговском (который для меня лично еще более избыточен Вашего) для этого графики по каналам, тут я так понял надо добавлять несколько программ на каждый канал и играться с ШИМ ?
ЗЫ - не на столько еще к сожалению еще освоил ардуиностроение  но вдруг это не слишком сложно... Добавить +1 переменную которая 0 при ресете (очищенном ЕЕПРОМ) и 1 при сохраненных настройках и отдельной процедурой дать ЯВНОЕ из кода задание переменных, т.е вместо сидеть 2 часа с нуля настраивать задать предварительные настройки тех-же таймеров и подачи УДО итд...и через меню их уже корректировать по мере надобности. Логично?
3 вентилятор охлаждения ЛЕД ов вижу, а вентилятор охлаждения воды? или через шим, по если т ниже 25 (к примеру) то вкл реле обогревателя выкл шим канала Н на котором вентилятор и если выше то наоборот?
ЗЫ - сорри за многобукафф - до 3 ночи отбивал ДДоС удаленно 
__________________
реанимация компьютеров, серверов, сетей, телефонов-планшетов.
|
|
|
 |
|
|
Тут присутні: 1 (учасників - 0 , гостей - 1)
|
|
|
| Параметри теми |
|
|
| Параметри перегляду |
Комбінований вигляд
|
Ваші права у розділі
|
Ви не можете створювати теми
Ви не можете писати дописи
Ви не можете долучати файли
Ви не можете редагувати дописи
HTML код Вимк.
|
|
|
Часовий пояс GMT +3. Поточний час: 16:01.
|