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 В 13.02.2014 в 11:24, Obrokoff сказал: Дисплей 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 В 13.02.2014 в 11:29, Vlad-bodryi сказал: могу приблизительно накидать смету на стоимость лабуды помимо контроллера: датчики положения - где-то здесь на форуме бесконтактные от ленд ровера в районе 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 В 13.02.2014 в 11:34, kort сказал: если датчики высоты стоят то зачем еще датчики давления? еще и 5 штук? деньги на ветер -8 тыщ сразу. Ардуина не 1500 а 500 макс. датчики давления нужны для определения нижнего уровня давления в каждом контуре, особенно на подушках рукавного типа(срыв рукава), плюс аварийный режим(на джипах легко оторвать датчик положения) 5-й - для показания давления в ресивере. цены условно-рыночные привёл из наличия в моём городе и москве(датчики давления), можно конечно и дешевле нарыть, но конечная стоимость не намного изменится и ниже 15тр вряд-ли можно уронить для единичного случая! Цитата
vic_le Опубликовано 13 февраля, 2014 Жалоба Опубликовано 13 февраля, 2014 Видать продажи Arduin -ов стали падать. Цитата
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Опубликовано 13 февраля, 2014 В 13.02.2014 в 11:29, Vlad-bodryi сказал: могу приблизительно накидать смету на стоимость лабуды помимо контроллера итого: 15-20тр за мозг управления, без блока клапанов и всей механической лабуды. Усложнил. Дуина со всей лабудой примерно 1600, 4 датчика высоты примерно 4500, коннекторы, проводка и мелочевка еще 500 р. Итого контроллер и датчики примерно 6600. Контроллер Paln'a с датчиками обойдется в большую сумму. И есть одно но, его программу не изменить. На ардуине реально реализовать все фичи, которые нужны конкретно тебе. У меня есть несколько идей, которые облегчат мне жизнь, никто в свой контроллер, по моей просьбе, их не добавит. Более менее рабочий скетч уже есть, можно его малыми силами доработать под себя. Цитата
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Опубликовано 13 февраля, 2014 В 13.02.2014 в 11:43, kort сказал: на ходу есть смысл что-то регулировать? или надо какую-то блокировку предусмотреть в движении? Есть, контроль положения во избежании кренов и, например, занижение по скорости. Цитата
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Опубликовано 13 февраля, 2014 В 13.02.2014 в 11:43, Vlad-bodryi сказал: датчики давления нужны для определения нижнего уровня давления в каждом контуре, особенно на подушках рукавного типа(срыв рукава), плюс аварийный режим(на джипах легко оторвать датчик положения). Датчик положения кузова все это покажет. Обрыв легко диагностируется отсутствием сигнала с датчика. Цитата
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Опубликовано 13 февраля, 2014 Показулька давления в ресе не обязательна для контроллера. Цитата
kort Опубликовано 13 февраля, 2014 Автор Жалоба Опубликовано 13 февраля, 2014 В 13.02.2014 в 11:43, vic_le сказал: Видать продажи Arduin -ов стали падать. в смысле? они есть оригиналы итальянские дорогие, а есть китайские полные копии, вот они копейки стоят Цитата
kort Опубликовано 13 февраля, 2014 Автор Жалоба Опубликовано 13 февраля, 2014 В 13.02.2014 в 11:51, Obrokoff сказал: Есть, контроль положения во избежании кренов и, например, занижение по скорости. крены на ходу править? это по-моему бесмысленная и очень опасная затея Цитата
Obrokoff Опубликовано 13 февраля, 2014 Жалоба Опубликовано 13 февраля, 2014 В 13.02.2014 в 11:56, kort сказал: крены на ходу править? это по-моему бесмысленная и очень опасная затея Любой брендовый контроллер так работает. Цитата
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 В 13.02.2014 в 11:55, kort сказал: в смысле? они есть оригиналы итальянские дорогие, а есть китайские полные копии, вот они копейки стоят Если есть представление как строится электронный блок для автомобиля то сразу возникнут множество требований которым не отвечает в принцыпе кружковый набор под названием "Arduino". Если представления нет то совет разобрать и посмотреть как устроены подобные блоки, очень много можно почерпнуть интересного. В оисаниях кто-нить читал для чего "Arduino" вобще придуман. Даже если откатать скетчи под дуину до более менее работоспособного состояния то схемотехнические решения всё равно придется допиливать-допаивать ручками. И надеятся что китайцы всё сделают в своих копеечных поделках не стоит! Цитата
kort Опубликовано 13 февраля, 2014 Автор Жалоба Опубликовано 13 февраля, 2014 Не надо мне автомобильные блоки советовать разбирать, у меня обычная атмега двигателем и навесным оборудованием управляет и ничего. Цитата
vic_le Опубликовано 13 февраля, 2014 Жалоба Опубликовано 13 февраля, 2014 В 13.02.2014 в 12:33, kort сказал: Не надо мне автомобильные блоки советовать разбирать, у меня обычная атмега двигателем и навесным оборудованием управляет и ничего. Дуина или АТМега? Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.