SERG Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 (изменено) недавно на одном из форумов посвященных ардуине была выложена прошивка для управления 4 контурной пневмой по 8 клапанной схеме. вот думаю может кому пригодится. я немного её изменил, но совсем чуть-чуть, собрал макет на столе и проверил на общую работоспособность. работает. в реальных условиях увы проверить немогу ибо иная схема управления клапанами, поэтому только на макете. датчики подходят любые с выходным наряжением от 0 до 5 вольт. состав- ардуино нано или любая другая. вплоть до просто микроконтролера с необходимой обвязкой, двухстрочный дисплей, розширитель портов для подключения дисплея, четыре реле управления клапанами и две кнопки без фиксации для выбора режима работы. три уровня собственно прописываются в самой прошивке. есть диагностика датчиков на обрыв и диагностика по изменению уровня и его поддержания. есть блокировка работы автоматической поддержки уровней. для выбора предустановленых уровней используется две кнопки, они- же и для блокировки. одна кнопка перебирает уровни снизу вверх а вторая сверху вниз, одновременное нажатие обеих переводит в режим блокировки. на дисплей выводятся показания датчиков до выхода на выбраный уровень и собственно название уровня. по достижению уровня вместо показаний датчиков высвечивается надпись *установлено*. режиме блокировки надпись *система заблокирована* если определяется обрыв датчика то на дисплее надпись- *обрыв датчика* с указанием самого датчика. если за отведенное время уровень ненастроен то на дисплее надпись- *авария* с указанием контура. при желании ничего не мешает добавить контроль акб и работу с датчиком давления для управления компрессором... собственно состав- блок реле дисплей росширитель портов для дисплея и сама ардуика ну и сама прошивка- #include <LiquidCrystal_I2C.h>#include <Wire.h>LiquidCrystal_I2C lcd(0x27,16,2);int state=0;int state2=0;int state3=0;int state4=0;int state5=0;int avaria=0;int avaria2=0;int avaria3=0;int avaria4=0;int ustanovka=0;int ustanovka2=0;int ustanovka3=0;int ustanovka4=0;long previousMillis = 0;long previousMillis2 = 0;long previousMillis3 = 0;long previousMillis4 = 0;long previousMillis5 = 0;int obriv = 0;int obriv2 = 0;int obriv3 = 0;int obriv4 = 0;#include <EEPROM.h>int dveknopky=0;int predustanovka=0;int regim=1;int eeprom=0;int knopka=0;int knopka2=0;int knopka3=0;int analog=0;int analog2=0;int analog3=0;int analog4=0;int sek=0;int sek2=0;int sek3=0;int sek4=0;int flag1=0;int flag2=0;int flag3=0;int flag4=0;void setup(){pinMode(0,INPUT);pinMode(1,INPUT);pinMode(2,INPUT);pinMode(3,INPUT);digitalWrite(0, HIGH);digitalWrite(1, HIGH);digitalWrite(2, HIGH);digitalWrite(3, HIGH);lcd.init();lcd.backlight();pinMode(2,INPUT);pinMode(3,INPUT);pinMode(4,OUTPUT);pinMode(5,OUTPUT);pinMode(6,OUTPUT);pinMode(7,OUTPUT);pinMode(8,OUTPUT);pinMode(9,OUTPUT);pinMode(10,OUTPUT);pinMode(11,OUTPUT);}void loop(){if (millis() -previousMillis5 >=100){previousMillis5 = millis();state5=!state5;if(state5==1){lcd.clear();}}if(eeprom==0){regim=EEPROM.read(0);eeprom=1;}if(digitalRead(2)==HIGH&&digitalRead(3)==HIGH&&knopka3==0){knopka3=1;}if(digitalRead(2)==LOW&&digitalRead(3)==LOW&&knopka3==1){dveknopky=dveknopky+1;if(dveknopky>1){dveknopky=0;}if(dveknopky<0){dveknopky=1;}knopka3=0;delay(500);}if(dveknopky==1){digitalWrite(4,HIGH);digitalWrite(5,HIGH);digitalWrite(6,HIGH);digitalWrite(7,HIGH);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,HIGH);digitalWrite(11,HIGH);lcd.setCursor(2,1);lcd.print("ZABLOKIROVANA");lcd.setCursor(4,0);lcd.print("SISTEMA");}else{if(analogRead(0)<=1010&&analogRead(1)<=1010&&analogRead(2)<=1010&&analogRead(3)<=1010){if(digitalRead(2)==HIGH&&knopka==0){knopka=1;avaria=0;}if(digitalRead(2)==LOW&&knopka==1){knopka=0;regim=regim+1;if(regim>3){regim=3;}EEPROM.write(0,regim);sek=0;}if(digitalRead(3)==HIGH&&knopka2==0){knopka2=1;avaria=0;}if(digitalRead(3)==LOW&&knopka2==1){knopka2=0;regim=regim-1;if(regim<1){regim=1;}EEPROM.write(0,regim);sek=0;}if(regim==1){predustanovka=300;if(avaria==0&&avaria2==0&&avaria3==0&&avaria4==0){lcd.setCursor(4,0);lcd.print("nigniy");}}if(regim==2){predustanovka=600;if(avaria==0&&avaria2==0&&avaria3==0&&avaria4==0){lcd.setCursor(4,0);lcd.print("sredniy");}}if(regim==3){predustanovka=900;if(avaria==0&&avaria2==0&&avaria3==0&&avaria4==0){lcd.setCursor(4,0);lcd.print("verhniy");}}if(flag1==1){if (millis() -previousMillis >=500){previousMillis = millis();state=!state;if(state==1){sek++;}if(sek>=30){sek=30;}}}analog=analogRead(0);if(analog>999){analog=999;}if(analog<100){analog=100;}if(analog>(predustanovka+5)&&sek>=3){flag1=1;if(sek<30){digitalWrite(4,HIGH);digitalWrite(5,LOW);}else{avaria=1;digitalWrite(4,HIGH);digitalWrite(5,HIGH);}}if(analog>=(predustanovka-10)&&analog<=(predustanovka+10)){ustanovka=1;avaria=0;flag1=0;digitalWrite(4,HIGH);digitalWrite(5,HIGH);sek=0;}else{ustanovka=0;flag1=1;}if(analog<(predustanovka-5)&&sek>=3){flag1=1;if(sek<30){digitalWrite(5,HIGH);digitalWrite(4,LOW);}else{avaria=1;digitalWrite(5,HIGH);digitalWrite(4,HIGH);}}if(flag2==1){if (millis() -previousMillis2 >=500){previousMillis2 = millis();state2=!state2;if(state2==1){sek2++;}if(sek2>=30){sek2=30;}}}analog2=analogRead(1);if(analog2>999){analog2=999;}if(analog2<100){analog2=100;}if(analog2>(predustanovka+5)&&sek2>=3){flag2=1;if(sek2<30){digitalWrite(6,HIGH);digitalWrite(7,LOW);}else{avaria2=1;digitalWrite(6,HIGH);digitalWrite(7,HIGH);}}if(analog2>=(predustanovka-10)&&analog2<=(predustanovka+10)){ustanovka2=1;avaria2=0;flag2=0;digitalWrite(6,HIGH);digitalWrite(7,HIGH);sek2=0;}else{ustanovka2=0;flag2=1;}if(analog2<(predustanovka-5)&&sek2>=3){flag2=1;if(sek2<30){digitalWrite(7,HIGH);digitalWrite(6,LOW);}else{avaria2=1;digitalWrite(6,HIGH);digitalWrite(7,HIGH);}}if(flag3==1){if (millis() -previousMillis3 >=500){previousMillis3 = millis();state3=!state3;if(state3==1){sek3++;}if(sek3>=30){sek3=30;}}}analog3=analogRead(2);if(analog3>999){analog3=999;}if(analog3<100){analog3=100;}if(analog3>(predustanovka+5)&&sek3>=3){flag3=1;if(sek3<30){digitalWrite(9,HIGH);digitalWrite(8,LOW);}else{avaria3=1;digitalWrite(9,HIGH);digitalWrite(8,HIGH);}}if(analog3>=(predustanovka-10)&&analog3<=(predustanovka+10)){ustanovka3=1;avaria3=0;flag3=0;digitalWrite(8,HIGH);digitalWrite(9,HIGH);sek3=0;}else{ustanovka3=0;flag3=1;}if(analog3<(predustanovka-5)&&sek3>=3){flag3=1;if(sek3<30){digitalWrite(8,HIGH);digitalWrite(9,LOW);}else{avaria3=1;digitalWrite(8,HIGH);digitalWrite(9,HIGH);}}if(flag4==1){if (millis() -previousMillis4 >=500){previousMillis4 = millis();state4=!state4;if(state4==1){sek4++;}if(sek4>=30){sek4=30;}}}analog4=analogRead(3);if(analog4>999){analog4=999;}if(analog4<100){analog4=100;}if(analog4>(predustanovka+5)&&sek4>=3){flag4=1;if(sek4<30){digitalWrite(10,HIGH);digitalWrite(11,LOW);}else{avaria4=1;digitalWrite(10,HIGH);digitalWrite(11,HIGH);}}if(analog4>=(predustanovka-10)&&analog4<=(predustanovka+10)){ustanovka4=1;avaria4=0;flag4=0;digitalWrite(11,HIGH);digitalWrite(10,HIGH);sek4=0;}else{ustanovka4=0;flag4=1;}if(analog4<(predustanovka-5)&&sek4>=3){flag4=1;if(sek4<30){digitalWrite(11,HIGH);digitalWrite(10,LOW);}else{avaria4=1;digitalWrite(11,HIGH);digitalWrite(10,HIGH);}}if(ustanovka==1&&ustanovka2==1&&ustanovka3==1&&ustanovka4==1){lcd.setCursor(3,1);lcd.print("ustanovlen");}else{if(avaria==1||avaria2==1||avaria3==1||avaria4==1){delay(1000);lcd.setCursor(5,0);lcd.print("AVARIYA");lcd.setCursor(3,1);lcd.print(!avaria);lcd.setCursor(6,1);lcd.print(!avaria2);lcd.setCursor(9,1);lcd.print(!avaria3);lcd.setCursor(12,1);lcd.print(!avaria4);}else{lcd.setCursor(1,1);lcd.print(analog);lcd.setCursor(5,1);lcd.print(analog2);lcd.setCursor(9,1);lcd.print(analog3);lcd.setCursor(13,1);lcd.print(analog4);}}}else{if(analogRead(0)>=1010){obriv=0;delay(1000);}else{obriv=1;}if(analogRead(1)>=1010){obriv2=0;delay(1000);}else{obriv2=1;}if(analogRead(2)>=1010){obriv3=0;delay(1000);}else{obriv3=1;}if(analogRead(3)>=1010){obriv4=0;delay(1000);}else{obriv4=1;}lcd.setCursor(2,0);lcd.print("OBRIV DATCHIKA");lcd.setCursor(3,1);lcd.print(obriv);lcd.setCursor(6,1);lcd.print(obriv2);lcd.setCursor(9,1);lcd.print(obriv3);lcd.setCursor(12,1);lcd.print(obriv4);digitalWrite(9,HIGH);digitalWrite(10,HIGH);digitalWrite(11,HIGH);digitalWrite(8,HIGH);digitalWrite(7,HIGH);digitalWrite(6,HIGH);digitalWrite(5,HIGH);digitalWrite(4,HIGH);}}} учитывая очень малое количество компонентов собрать можна на небольшой макетке. Изменено 20 января, 2013 пользователем bemba74 короче.. greega 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
artgslv86 Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 интересный вариант. и какая у него получается стоимость? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Cuda Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 присоединяюсь к вопросу...? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Cuda Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 Судя по железу, около 1000-1500р ))) 50$ ))) Прошу вам залили на халяву......... Вот повторить только смогут еденицы, а настроить это, вообще не многие....... нее,халявы не надо,можно и за 100 и за 200уе,главное чтоб все собранно ,работало,настраивалось и програмировалось=) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
traff Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 (изменено) Хех, какое совпадение, я тоже смотрел на Ардуино, но только на модель Мега 1280 или 2560. PS. Цена того что представлена в начале темы стоит приблизительно 530 грн. или 66 долл. Изменено 20 января, 2013 пользователем traff Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SERG Опубликовано 20 января, 2013 Автор Жалоба Поделиться Опубликовано 20 января, 2013 Хех, какое совпадение, я тоже смотрел на Ардуино, но только на модель Мега 1280 или 2560. PS. Цена того что представлена в начале темы стоит приблизительно 530 грн. или 66 долл. неа, около 50 долларов, где диисплей 5 баксов, ардуина 20 баксов, росширитель 13, блок реле 12 баксов. итого получаем 50 баксов. а если руки не из жо, то бюджет можна еще меньше сделать, до баксов 30 смело можна затратную часть уменьшить. для данного контролера и этого камня замного... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SERG Опубликовано 20 января, 2013 Автор Жалоба Поделиться Опубликовано 20 января, 2013 (изменено) нее,халявы не надо,можно и за 100 и за 200уе,главное чтоб все собранно ,работало,настраивалось и програмировалось=) на самом деле все очень просто с настройкой, темболее по умолчанию уже есть предустановки. при его себестоимости он может быть отладочным. я ведь неговорю что это полноценный контролер с кучей настроек и всяких плюшек, но в тоже время он может поддерживать заданый уровень... Изменено 20 января, 2013 пользователем SERG Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
123 Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 (изменено) недавно на одном из форумов посвященных ардуине была выложена прошивка для на небольшой макетке. можешь ссылку на этот форум дать? Изменено 20 января, 2013 пользователем bemba74 Сокращайте по возможности цитируемые посты...это же просто жесть какая то! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
traff Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 Одна штука в том что на 4 реле никак не постороишь 4-контурную систему. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SERG Опубликовано 20 января, 2013 Автор Жалоба Поделиться Опубликовано 20 января, 2013 (изменено) Одна штука в том что на 4 реле никак не постороишь 4-контурную систему. тупонул.... 8 реле.... шо значит поздняя ночь.... с вчерашшнего дня макет включен. аки работает.... тоисть имитирую работу датчиков а оно управляет релюхами. но повторяюсь, в реальных условиях на автомобиле проверить немогу из-за отличий в клапанах, у меня не 8 клапанная система.. Изменено 20 января, 2013 пользователем SERG Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
MadeOfGlass Опубликовано 20 января, 2013 Жалоба Поделиться Опубликовано 20 января, 2013 А можно ссылку на реле? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SERG Опубликовано 20 января, 2013 Автор Жалоба Поделиться Опубликовано 20 января, 2013 А можно ссылку на реле? http://arduino-ua.com/index.php?categoryID=8&offset=12 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SERG Опубликовано 21 января, 2013 Автор Жалоба Поделиться Опубликовано 21 января, 2013 интересный вариант. и какая у него получается стоимость? сегодня взял розсыпухи для макета, все обошлось в 25 баксов. решил ради прикола собрать этот контролер на макете, тоисть без использования наборов для ардуины. поскольку ардуина мало подходит для экстремальных условий эксплуатации, сам микроконтролер взял индустриального применения, с росширеными температурными диапазонами, тоже и в отношении дисплея. неприколько когда в мороз он тормозит до разогрева. все остальное обычные деталюшки... для минимизации размеров вместо релюх взял транзисторы, ведь какая разница чем рулить клапанами. для своего макета добавил контроль батареи и давления в ресе и естественно управление компрессором. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Maximus Опубликовано 21 января, 2013 Жалоба Поделиться Опубликовано 21 января, 2013 (изменено) А сколько у тебя клапанов? если 5 то можно банально диодами всё закомутировать! Система будит думать что управляет 8ю а на самом деле 5ю... А схемку этого всего там не выложили? И ссылочку на сайт не помешало бы! Изменено 21 января, 2013 пользователем Максимус Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SERG Опубликовано 21 января, 2013 Автор Жалоба Поделиться Опубликовано 21 января, 2013 в прошивке каждый контур управляется раздельно, тоисть одновременно может работать на одном колесе подьем а на втором спуск... подобная идея реализации приходила на ум, но эксперименты на столе показали то что есть, а чем изменять нет желания... это так поиграться.. А сколько у тебя клапанов? если 5 то можно банально диодами всё закомутировать! Система будит думать что управляет 8ю а на самом деле 5ю... Maximus 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Maximus Опубликовано 21 января, 2013 Жалоба Поделиться Опубликовано 21 января, 2013 Ну да, логично!! А что на счет схемки? Не поделишься, или это коммерческий проект? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SERG Опубликовано 21 января, 2013 Автор Жалоба Поделиться Опубликовано 21 января, 2013 Ну да, логично!! А что на счет схемки? Не поделишься, или это коммерческий проект? нет, проэкт не комерческий и таковым небудет ибо я не являюсь владельцем програмной части. да и что здесь делать комерческим... а схемы как таковой нет, это всего-то обьединение в одну схем девайсов применяемых здесь. позже на досуге нарисую... п.с. но если собирать на розсыпухе то все-же нужно будет решить способ как запрограмировать чистый камень. в моем случае все делается посредством ардуины в качестве програматора для чистого камня. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Maximus Опубликовано 22 января, 2013 Жалоба Поделиться Опубликовано 22 января, 2013 Вот версия программы, с временной задержкой действия и некоторыми функциями самодиагностики. #include <LiquidCrystal.h> #include <LiquidCrystalRus.h>LiquidCrystalRus lcd(6, 7, 5, 4, 3, 2); int state=0;int state2=0;int state3=0;int state4=0;int state5=0; int avaria=0;int avaria2=0;int avaria3=0;int avaria4=0; int ustanovka=0;int ustanovka2=0;int ustanovka3=0;int ustanovka4=0; long previousMillis = 0;long previousMillis2 = 0;long previousMillis3 = 0;long previousMillis4 = 0;long previousMillis5 = 0; int obriv = 0;int obriv2 = 0;int obriv3 = 0;int obriv4 = 0; #include <EEPROM.h> int dveknopky=0; int predustanovka=0;int regim=1; int eeprom=0; int knopka=0;int knopka2=0;int knopka3=0; int analog=0;int analog2=0;int analog3=0;int analog4=0; int sek=0;int sek2=0;int sek3=0;int sek4=0; int flag1=0;int flag2=0;int flag3=0;int flag4=0; void setup(){ pinMode(14,INPUT); pinMode(15,INPUT); pinMode(16,INPUT); pinMode(17,INPUT); digitalWrite(14, HIGH); digitalWrite(15, HIGH); digitalWrite(16, HIGH); digitalWrite(17, HIGH); lcd.begin(16, 2); pinMode(19,INPUT); pinMode(18,INPUT); pinMode(0,OUTPUT); pinMode(1,OUTPUT); pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); pinMode(13,OUTPUT); } void loop(){ if (millis() -previousMillis5 >=100) { previousMillis5 = millis(); state5=!state5; if(state5==1) { lcd.clear(); } } if(eeprom==0) { regim=EEPROM.read(0); eeprom=1; } if(digitalRead(19)==HIGH&&digitalRead(18)==HIGH&&knopka3==0) { knopka3=1; } if(digitalRead(19)==LOW&&digitalRead(18)==LOW&&knopka3==1) { dveknopky=dveknopky+1; if(dveknopky>1) { dveknopky=0; } if(dveknopky<0) { dveknopky=1; } knopka3=0; delay(500); } if(dveknopky==1) { digitalWrite(0,LOW); digitalWrite(1,LOW); digitalWrite(8,LOW); digitalWrite(9,LOW); digitalWrite(10,LOW); digitalWrite(11,LOW); digitalWrite(12,LOW); digitalWrite(13,LOW); lcd.setCursor(2,1); lcd.print("Заблокирована"); lcd.setCursor(4,0); lcd.print("Система"); } else { if(analogRead(14)<=1010&&analogRead(15)<=1010&&analogRead(16)<=1010&&analogRead(17)<=1010) { if(digitalRead(19)==HIGH&&knopka==0) { knopka=1; avaria=0; } if(digitalRead(19)==LOW&&knopka==1) { knopka=0; regim=regim+1; if(regim>3) { regim=3; } EEPROM.write(0,regim); sek=0; } if(digitalRead(18)==HIGH&&knopka2==0) { knopka2=1; avaria=0; } if(digitalRead(18)==LOW&&knopka2==1) { knopka2=0; regim=regim-1; if(regim<1) { regim=1; } EEPROM.write(0,regim); sek=0; } if(regim==1) { predustanovka=300; if(avaria==0&&avaria2==0&&avaria3==0&&avaria4==0) { lcd.setCursor(4,0); lcd.print("нижний"); } } if(regim==2) { predustanovka=600; if(avaria==0&&avaria2==0&&avaria3==0&&avaria4==0) { lcd.setCursor(4,0); lcd.print("средний"); } } if(regim==3) { predustanovka=900; if(avaria==0&&avaria2==0&&avaria3==0&&avaria4==0) { lcd.setCursor(4,0); lcd.print("верхний"); } } if(flag1==1) { if (millis() -previousMillis >=500) { previousMillis = millis(); state=!state; if(state==1) { sek++; } if(sek>=30) { sek=30; } } } analog=analogRead(14); if(analog>999){ analog=999;}if(analog<100){ analog=100;} if(analog>(predustanovka+5)&&sek>=3) { flag1=1; if(sek<30) { digitalWrite(13,LOW); digitalWrite(0,HIGH); } else { avaria=1; digitalWrite(13,LOW); digitalWrite(0,LOW); } } if(analog>=(predustanovka-10)&&analog<=(predustanovka+10)) { ustanovka=1; avaria=0; flag1=0; digitalWrite(0,LOW); digitalWrite(13,LOW); sek=0; } else { ustanovka=0; flag1=1; } if(analog<(predustanovka-5)&&sek>=3) { flag1=1; if(sek<30) { digitalWrite(0,LOW); digitalWrite(13,HIGH); } else { avaria=1; digitalWrite(0,LOW); digitalWrite(13,LOW); } } if(flag2==1) { if (millis() -previousMillis2 >=500) { previousMillis2 = millis(); state2=!state2; if(state2==1) { sek2++; } if(sek2>=30) { sek2=30; } } } analog2=analogRead(15); if(analog2>999){ analog2=999;}if(analog2<100){ analog2=100;} if(analog2>(predustanovka+5)&&sek2>=3) { flag2=1; if(sek2<30) { digitalWrite(12,LOW); digitalWrite(1,HIGH); } else { avaria2=1; digitalWrite(12,LOW); digitalWrite(1,LOW); } } if(analog2>=(predustanovka-10)&&analog2<=(predustanovka+10)) { ustanovka2=1; avaria2=0; flag2=0; digitalWrite(1,LOW); digitalWrite(12,LOW); sek2=0; } else { ustanovka2=0; flag2=1; } if(analog2<(predustanovka-5)&&sek2>=3) { flag2=1; if(sek2<30) { digitalWrite(1,LOW); digitalWrite(12,HIGH); } else { avaria2=1; digitalWrite(1,LOW); digitalWrite(12,LOW); } } if(flag3==1) { if (millis() -previousMillis3 >=500) { previousMillis3 = millis(); state3=!state3; if(state3==1) { sek3++; } if(sek3>=30) { sek3=30; } } } analog3=analogRead(16); if(analog3>999){ analog3=999;}if(analog3<100){ analog3=100;} if(analog3>(predustanovka+5)&&sek3>=3) { flag3=1; if(sek3<30) { digitalWrite(11,LOW); digitalWrite(8,HIGH); } else { avaria3=1; digitalWrite(11,LOW); digitalWrite(8,LOW); } } if(analog3>=(predustanovka-10)&&analog3<=(predustanovka+10)) { ustanovka3=1; avaria3=0; flag3=0; digitalWrite(8,LOW); digitalWrite(11,LOW); sek3=0; } else { ustanovka3=0; flag3=1; } if(analog3<(predustanovka-5)&&sek3>=3) { flag3=1; if(sek3<30) { digitalWrite(8,LOW); digitalWrite(11,HIGH); } else { avaria3=1; digitalWrite(8,LOW); digitalWrite(11,LOW); } } if(flag4==1) { if (millis() -previousMillis4 >=500) { previousMillis4 = millis(); state4=!state4; if(state4==1) { sek4++; } if(sek4>=30) { sek4=30; } } } analog4=analogRead(17); if(analog4>999){ analog4=999;}if(analog4<100){ analog4=100;} if(analog4>(predustanovka+5)&&sek4>=3) { flag4=1; if(sek4<30) { digitalWrite(10,LOW); digitalWrite(9,HIGH); } else { avaria4=1; digitalWrite(10,LOW); digitalWrite(9,LOW); } } if(analog4>=(predustanovka-10)&&analog4<=(predustanovka+10)) { ustanovka4=1; avaria4=0; flag4=0; digitalWrite(9,LOW); digitalWrite(10,LOW); sek4=0; } else { ustanovka4=0; flag4=1; } if(analog4<(predustanovka-5)&&sek4>=3) { flag4=1; if(sek4<30) { digitalWrite(9,LOW); digitalWrite(10,HIGH); } else { avaria4=1; digitalWrite(9,LOW); digitalWrite(10,LOW); } } if(ustanovka==1&&ustanovka2==1&&ustanovka3==1&&ustanovka4==1) { lcd.setCursor(3,1); lcd.print("Установлен"); } else { if(avaria==1||avaria2==1||avaria3==1||avaria4==1) { delay(1000); lcd.setCursor(5,0); lcd.print("АВАРИЯ"); lcd.setCursor(3,1); lcd.print(!avaria); lcd.setCursor(6,1); lcd.print(!avaria2); lcd.setCursor(9,1); lcd.print(!avaria3); lcd.setCursor(12,1); lcd.print(!avaria4); } else { lcd.setCursor(1,1); lcd.print(analog); lcd.setCursor(5,1); lcd.print(analog2); lcd.setCursor(9,1); lcd.print(analog3); lcd.setCursor(13,1); lcd.print(analog4); } } } else { if(analogRead(14)>=1010) { obriv=0; delay(1000); } else { obriv=1; } if(analogRead(15)>=1010) { obriv2=0; delay(1000); } else { obriv2=1; } if(analogRead(16)>=1010) { obriv3=0; delay(1000); } else { obriv3=1; } if(analogRead(17)>=1010) { obriv4=0; delay(1000); } else { obriv4=1; } lcd.setCursor(2,0); lcd.print("ОБРЫВ ДАТЧИКА"); lcd.setCursor(3,1); lcd.print(obriv); lcd.setCursor(6,1); lcd.print(obriv2); lcd.setCursor(9,1); lcd.print(obriv3); lcd.setCursor(12,1); lcd.print(obriv4); digitalWrite(9,LOW); digitalWrite(10,LOW); digitalWrite(11,LOW); digitalWrite(8,LOW); digitalWrite(12,LOW); digitalWrite(1,LOW); digitalWrite(13,LOW); digitalWrite(0,LOW); } }} нашел тут Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SERG Опубликовано 22 января, 2013 Автор Жалоба Поделиться Опубликовано 22 января, 2013 да, это отсюда. я только немного изменил её под используемую ардуино, сам код основной полностью от автора. и в этом коде нет временной защиты. bemba74 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Maximus Опубликовано 30 января, 2013 Жалоба Поделиться Опубликовано 30 января, 2013 @SERG, Будь другом, дай схемы или ссылки на схемы! А где платы покупал, в частности "расширитель портов для дисплея"??? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SERG Опубликовано 30 января, 2013 Автор Жалоба Поделиться Опубликовано 30 января, 2013 \\\покупаю здесь- http://parts.dn.ua/category_24_show_all.html\ и здесь- http://arduino.shopium.ua/catalog/\ да и у вас в Харькове думаю тоое мо\жно прикупить\.\\\\\\\\\\\\ Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SERG Опубликовано 30 января, 2013 Автор Жалоба Поделиться Опубликовано 30 января, 2013 а схемы у мня как таковы и нет... все входы и выходы прописаны в прогррамме, поэтому их можна менять на свое усмотрение. хотел было нарисовать схемку но поскольку мне этот вариант контролера неочень интересен то и нестал заморачиваться. та набросок есть и всё. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
traff Опубликовано 30 января, 2013 Жалоба Поделиться Опубликовано 30 января, 2013 млин, снова почистили мои сообщения. надоело. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SERG Опубликовано 30 января, 2013 Автор Жалоба Поделиться Опубликовано 30 января, 2013 млин, снова почистили мои сообщения. надоело. цензура, админы с модерами шашками маут.... а ты пиши, пиши.... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Maximus Опубликовано 30 января, 2013 Жалоба Поделиться Опубликовано 30 января, 2013 В Харькове много чего есть, но плат с первого поста нет :(( http://www.kosmodrom.com.ua/prodlist.php?page=0&name=Arduino+&okbutton=%CF%EE%E8%F1%EA Можешь хотя бы расписать (для чайников) на какие порты к Arduino Nano цепляются датчики, дисплей (с задней платой), кнопки управления? Сфоткать твою рабочую модель на столе, если еще не разобрал? Дисплей 2х20 или 2х16? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.