Управление механизмом открытия монитора в автомобиле
- Войдите на сайт для отправки комментариев
Помогите пожалуйста, как организовать управление двумя реле(r1 и r2) с помощью двух кнопок (o/c и тitle) и с помощью подачи питания на контакт (acc). Организовать включение реле на установленное время t- переменная.
Постоянные: t1=200милисекунд, t2=190милисекунд,t3=180милисекунд,
t4=200милисекунд,
n1=t1-t2; n2=t2-t3; n3=t3-t4; n4=t1-t4.
Первый цикл (управление кнопкой о/с): изначальное значение переменной t =t1.
При первом нажатии на кнопку о/с - подать напряжение на r1 на время t и перейти в режим "open";
При втором нажатии на кнопку о/с подать напряжение на r2 на время t и перейти в режим "close".
Конец цикла, начинать заново.
Второй цикл (управление кнопкой title): Выполнять только когда активен режим "open".
-при первом нажатии кнопки title, изменить значение переменной t(t=t2), и подать напряжение на r2 на время n1;
-при втором нажатии кнопки title, изменить значение переменной t(t=t3), и подать напряжение на r2 на время n2;
-при третьем нажатии кнопки title, изменить значение переменной t(t=t4), и подать напряжение на r2 на время n3;
-при четвертом нажатии кнопки title, изменить значение переменной t(t=t1), и подать напряжение на r1 на время n4;
Конец цикла, начинать заново.
Третий цикл (управление подачей напряжения на контакт acc):
Выполнять только когда активен режим "open".
При отключении напряжения на контакте АСС, то подать напряжение на r2 на время t.
При включении напряжения на контакте АСС, то подать напряжение на r1 на время t;
Конец цикла начинать заново.
Скока башляшь?
1500 рублей
До 500р
Монитор с механизмом 2000 стоит, поэтому много не дам
кисло. мне не интересно. )))
а как это связано с ценой программы на него? :)
Ардуина вообще 100 рублей стоит, а за код к ней и 20 тыс платят
Я понимаю, если это будет стоить дорого, то мне целесообразнее купить сам блок управления этим механизмом с разборки
кисло. мне не интересно. )))
заметил, что "полторашка" - реперная сумма, позволяющая отсеять заказчиков. уверенных что платить стоит только за "реальную работу", типа ворочанья мешков :) А когда ты просто сидишь за столом и давишь клавиши - за что те платить-то, бездельнику? :)
ща придет Бармалей - он любой код за 500 руб пишет. Только дисплей ему свой не отправляйте...
1000р
kakmycmail@gmail.com
Пишите htpicc@gmail.com, обсудим.
По моему тут с "ТЗ" разбираться ещё с пол дня надо.
А это странное выражение "n3=t3-t4" при "t3=180милисекунд, t4=200милисекунд,"?
Отрицательное значение. Всего навсего машину времени надо изготовить.
Тогда это к Бармалею.)
Ошибка t4 = 170 миллисекунд
Тогда это к Бармалею.)
Тогда ко мне
Если Вы не согласны платить заметно больше, чем стоит серийное изделие, зачем Вы вообще обратились на форум? Это все равно, что пытаться заказать художнику картину по цене репродукции.
Да я просто первый раз обратился с помощью написания программы. Рынок и цена за эту работу для меня не знакомы. Спасибо что пояснили.
Хорошо бы... Пива!
const int oc_pin = 2; const int title_pin = 3; const int r1_pin = 4; const int r2_pin = 5; const int acc_pin = 6; const int key_time = 5000; const int t1 = 200; const int t2 = 190; const int t3 = 180; const int t4 = 170; const int n1 = t1 - t2; const int n2 = t2 - t3; const int n3 = t3 - t4; const int n4 = t1 - t4; int t = t1; void setup() { pinMode(oc_pin, INPUT_PULLUP); pinMode(title_pin, INPUT_PULLUP); pinMode(r1_pin, OUTPUT); pinMode(r2_pin, OUTPUT); } void loop() { static bool open; if (!digitalRead(oc_pin)) { open = !open; if (open) relay_pulse(r1_pin, t); else relay_pulse(r2_pin, t); delay(key_time - t1); } static int title; if (!digitalRead(title_pin) && open) { if (++title == 1) { t = t2; relay_pulse(r2_pin, n1); } else if (title == 2) { t = t3; relay_pulse(r2_pin, n2); } else if (title == 3) { t = t4; relay_pulse(r2_pin, n3); } else { t = t1; relay_pulse(r2_pin, n4); } title &= 3; delay(key_time); } static bool acc; if (digitalRead(acc_pin) != acc && open) { acc = !acc; if (acc) relay_pulse(r1_pin, t); else relay_pulse(r2_pin, t); } } void relay_pulse(int rel, int n) { digitalWrite(rel, HIGH); while (n--) delay(1); digitalWrite(rel, LOW); }Спасибо большое, отпишусь на е-mail
ОК. Лишний ноль уберите в
constintkey_time = 5000;Хорошо, спасибо, ответьте пожалуйста на е-мейл