Vlad-bodryi Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 (изменено) @kort, сам-то что не напишешь? я думаю что любой знающий основы программирования способен написать алгоритм на мегах. ну а если незнаешь основ(как я) - то и изменить под себя не сможешь! Изменено 13 февраля, 2014 пользователем Vlad-bodryi Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kort Опубликовано 13 февраля, 2014 Автор Жалоба Поделиться Опубликовано 13 февраля, 2014 хочу сначала придумать что он должен делать Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 Скетч для ардуины: #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); } } } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 Это оригинал скетча найденого в тырнете. Переделываю потихоньку, добавляю новые фичи. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
vic_le Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 Я так думаю что @kort, закинул "утку" и хочет посмотреть, что из этого получится. МЕГА которая будет работать с экраном 3.2" и тач не будет стоить 400-500рэ + переходник под екран. Если задача не стоит получить только картинку. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kort Опубликовано 13 февраля, 2014 Автор Жалоба Поделиться Опубликовано 13 февраля, 2014 ну у меня этих экранов просто куча, я уже делал на них экран для вывода параметров с мозгов, хочу добавить функционала с другим экраном алгоритм основной все равно не особо изменится Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 Дисплей 3,2" 950 р. Блок реле 350 р. Дуина 350 р. Вот и почти весь бюджет. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Vlad-bodryi Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 могу приблизительно накидать смету на стоимость лабуды помимо контроллера: датчики положения - где-то здесь на форуме бесконтактные от ленд ровера в районе 4 тр за 4шт датчики давления - адекватные которые нашёл 5 шт х 1400 мощные ключи управления со всей мелочёвкой - до 2 тр ардуина - средне 1500 модуль связи+гироскоп - ? условно возьмём 1тр или тот-же модуль отображения будет стоить намного дороже(около 4тр), не считая приятной установки в авто как видно из всего перечня, стоимость датчиков переваливает в два раза стоимости контроллера. поэтому стоимость трудозатрат грамотного специалиста на программу - навскидку приблизительно пятак на каждый комплект и будет зависить от жадности его и объёма продаж. но и тут есть выгода нам, ему эта всякая лабуда будет дешевле за оптовые закупки + уверенность работы в проверенных датчиках. итого: 15-20тр за мозг управления, без блока клапанов и всей механической лабуды. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kort Опубликовано 13 февраля, 2014 Автор Жалоба Поделиться Опубликовано 13 февраля, 2014 Дисплей 3,2" 950 р. Блок реле 350 р. Дуина 350 р. Вот и почти весь бюджет. ну можно и 2,4 дюйма взять за 250р для уны http://www.ebay.com/itm/2-4-inch-TFT-lcd-shield-for-Arduino-UNO-/301094536907?pt=LH_DefaultDomain_0&hash=item461aa206cb Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kort Опубликовано 13 февраля, 2014 Автор Жалоба Поделиться Опубликовано 13 февраля, 2014 могу приблизительно накидать смету на стоимость лабуды помимо контроллера: датчики положения - где-то здесь на форуме бесконтактные от ленд ровера в районе 4 тр за 4шт датчики давления - адекватные которые нашёл 5 шт х 1400 мощные ключи управления со всей мелочёвкой - до 2 тр ардуина - средне 1500 модуль связи+гироскоп - ? условно возьмём 1тр или тот-же модуль отображения будет стоить намного дороже(около 4тр), не считая приятной установки в авто если датчики высоты стоят то зачем еще датчики давления? еще и 5 штук? деньги на ветер -8 тыщ сразу. Ардуина не 1500 а 500 макс. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Smitt Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 проект опенсурс, что же делать в первую очередь ну да конечно продажи и сметы Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kort Опубликовано 13 февраля, 2014 Автор Жалоба Поделиться Опубликовано 13 февраля, 2014 на ходу есть смысл что-то регулировать? или надо какую-то блокировку предусмотреть в движении? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Vlad-bodryi Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 если датчики высоты стоят то зачем еще датчики давления? еще и 5 штук? деньги на ветер -8 тыщ сразу. Ардуина не 1500 а 500 макс. датчики давления нужны для определения нижнего уровня давления в каждом контуре, особенно на подушках рукавного типа(срыв рукава), плюс аварийный режим(на джипах легко оторвать датчик положения) 5-й - для показания давления в ресивере. цены условно-рыночные привёл из наличия в моём городе и москве(датчики давления), можно конечно и дешевле нарыть, но конечная стоимость не намного изменится и ниже 15тр вряд-ли можно уронить для единичного случая! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
vic_le Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 Видать продажи Arduin -ов стали падать. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 могу приблизительно накидать смету на стоимость лабуды помимо контроллера итого: 15-20тр за мозг управления, без блока клапанов и всей механической лабуды. Усложнил. Дуина со всей лабудой примерно 1600, 4 датчика высоты примерно 4500, коннекторы, проводка и мелочевка еще 500 р. Итого контроллер и датчики примерно 6600. Контроллер Paln'a с датчиками обойдется в большую сумму. И есть одно но, его программу не изменить. На ардуине реально реализовать все фичи, которые нужны конкретно тебе. У меня есть несколько идей, которые облегчат мне жизнь, никто в свой контроллер, по моей просьбе, их не добавит. Более менее рабочий скетч уже есть, можно его малыми силами доработать под себя. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 на ходу есть смысл что-то регулировать? или надо какую-то блокировку предусмотреть в движении? Есть, контроль положения во избежании кренов и, например, занижение по скорости. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 датчики давления нужны для определения нижнего уровня давления в каждом контуре, особенно на подушках рукавного типа(срыв рукава), плюс аварийный режим(на джипах легко оторвать датчик положения). Датчик положения кузова все это покажет. Обрыв легко диагностируется отсутствием сигнала с датчика. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 Показулька давления в ресе не обязательна для контроллера. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kort Опубликовано 13 февраля, 2014 Автор Жалоба Поделиться Опубликовано 13 февраля, 2014 Видать продажи Arduin -ов стали падать. в смысле? они есть оригиналы итальянские дорогие, а есть китайские полные копии, вот они копейки стоят Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kort Опубликовано 13 февраля, 2014 Автор Жалоба Поделиться Опубликовано 13 февраля, 2014 Есть, контроль положения во избежании кренов и, например, занижение по скорости. крены на ходу править? это по-моему бесмысленная и очень опасная затея Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 крены на ходу править? это по-моему бесмысленная и очень опасная затея Любой брендовый контроллер так работает. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Kostya86 Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 Вот эти цены очень приятные. http://www.tinydeal.com/index.php?main_page=ws_search_result&keyword=arduino&categories_id=&cat_change=true Думаю соберу заказик и начну собирать. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
vic_le Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 в смысле? они есть оригиналы итальянские дорогие, а есть китайские полные копии, вот они копейки стоят Если есть представление как строится электронный блок для автомобиля то сразу возникнут множество требований которым не отвечает в принцыпе кружковый набор под названием "Arduino". Если представления нет то совет разобрать и посмотреть как устроены подобные блоки, очень много можно почерпнуть интересного. В оисаниях кто-нить читал для чего "Arduino" вобще придуман. Даже если откатать скетчи под дуину до более менее работоспособного состояния то схемотехнические решения всё равно придется допиливать-допаивать ручками. И надеятся что китайцы всё сделают в своих копеечных поделках не стоит! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kort Опубликовано 13 февраля, 2014 Автор Жалоба Поделиться Опубликовано 13 февраля, 2014 Не надо мне автомобильные блоки советовать разбирать, у меня обычная атмега двигателем и навесным оборудованием управляет и ничего. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
vic_le Опубликовано 13 февраля, 2014 Жалоба Поделиться Опубликовано 13 февраля, 2014 Не надо мне автомобильные блоки советовать разбирать, у меня обычная атмега двигателем и навесным оборудованием управляет и ничего. Дуина или АТМега? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.