Управление механизмом открытия монитора в автомобиле

Виталий Игореви...
Offline
Зарегистрирован: 21.08.2020

Помогите пожалуйста, как организовать управление двумя реле(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;
Конец цикла начинать заново.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Скока башляшь?

b707
Offline
Зарегистрирован: 26.05.2017

1500 рублей

 

Виталий Игореви...
Offline
Зарегистрирован: 21.08.2020

До 500р

Виталий Игореви...
Offline
Зарегистрирован: 21.08.2020

Монитор с механизмом 2000 стоит, поэтому много не дам

-NMi-
Offline
Зарегистрирован: 20.08.2018

Виталий Игоревич Игнатюк пишет:
До 500р

кисло. мне не интересно.   )))

b707
Offline
Зарегистрирован: 26.05.2017

Виталий Игоревич Игнатюк пишет:
Монитор с механизмом 2000 стоит, поэтому много не дам

а как это связано с ценой программы на него? :)

Ардуина вообще 100 рублей стоит, а за код к ней и 20 тыс платят

Виталий Игореви...
Offline
Зарегистрирован: 21.08.2020

Я понимаю, если это будет стоить дорого, то мне целесообразнее купить сам блок управления этим механизмом с разборки

b707
Offline
Зарегистрирован: 26.05.2017

-NMi- пишет:

кисло. мне не интересно.   )))

заметил, что "полторашка" - реперная сумма, позволяющая отсеять заказчиков. уверенных что платить стоит только за "реальную работу", типа ворочанья мешков :) А когда ты просто сидишь за столом и давишь клавиши - за что те платить-то, бездельнику? :)

b707
Offline
Зарегистрирован: 26.05.2017

Виталий Игоревич Игнатюк пишет:
Я понимаю, если это будет стоить дорого, то мне целесообразнее купить сам блок управления этим механизмом с разборки

ща придет Бармалей - он любой код за 500 руб пишет. Только дисплей ему свой не отправляйте...

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Виталий Игоревич Игнатюк пишет:
До 500р

Kakmyc
Offline
Зарегистрирован: 15.01.2018
Green
Offline
Зарегистрирован: 01.10.2015

Пишите htpicc@gmail.com, обсудим.
По моему тут с "ТЗ" разбираться ещё с пол дня надо.
А это странное выражение "n3=t3-t4" при "t3=180милисекунд, t4=200милисекунд,"?

sadman41
Offline
Зарегистрирован: 19.10.2016

Отрицательное значение. Всего навсего машину времени надо изготовить.

Green
Offline
Зарегистрирован: 01.10.2015

Тогда это к Бармалею.)

Виталий Игореви...
Offline
Зарегистрирован: 21.08.2020

Ошибка t4 = 170 миллисекунд

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Green пишет:

Тогда это к Бармалею.)

Тогда ко мне

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Виталий Игоревич Игнатюк пишет:
Я понимаю, если это будет стоить дорого, то мне целесообразнее купить сам блок управления этим механизмом с разборки
Я надеюсь, Вам известно, что индивидуальное изготовление всегда в разы (а то и на порядки) дороже серийного изделия?

Если Вы не согласны платить заметно больше, чем стоит серийное изделие, зачем Вы вообще обратились на форум? Это все равно, что пытаться заказать художнику картину по цене репродукции.

Виталий Игореви...
Offline
Зарегистрирован: 21.08.2020

Да я просто первый раз обратился с помощью написания программы. Рынок и цена за эту работу для меня не знакомы. Спасибо что пояснили.

Green
Offline
Зарегистрирован: 01.10.2015

Хорошо бы... Пива!

01const int oc_pin    = 2;
02const int title_pin = 3;
03const int r1_pin    = 4;
04const int r2_pin    = 5;
05const int acc_pin   = 6;
06const int key_time  = 5000;
07 
08const int t1 = 200;
09const int t2 = 190;
10const int t3 = 180;
11const int t4 = 170;
12const int n1 = t1 - t2;
13const int n2 = t2 - t3;
14const int n3 = t3 - t4;
15const int n4 = t1 - t4;
16      int t  = t1;
17 
18 
19void setup() {
20  pinMode(oc_pin, INPUT_PULLUP);
21  pinMode(title_pin, INPUT_PULLUP);
22  pinMode(r1_pin, OUTPUT);
23  pinMode(r2_pin, OUTPUT);
24}
25 
26 
27void loop() {
28  static bool open;
29  if (!digitalRead(oc_pin)) {
30    open = !open;
31    if (open)
32      relay_pulse(r1_pin, t);
33    else
34      relay_pulse(r2_pin, t);
35    delay(key_time - t1);
36  }
37   static int title;
38   if (!digitalRead(title_pin) && open) {
39    if (++title == 1) {
40      t = t2;
41      relay_pulse(r2_pin, n1);
42    }
43    else if (title == 2) {
44      t = t3;
45      relay_pulse(r2_pin, n2);
46    }
47    else if (title == 3) {
48      t = t4;
49      relay_pulse(r2_pin, n3);
50    }
51    else {
52      t = t1;
53      relay_pulse(r2_pin, n4);
54    }
55    title &= 3;
56    delay(key_time);
57  }
58  static bool acc;
59  if (digitalRead(acc_pin) != acc && open) {
60    acc = !acc;
61    if (acc)
62      relay_pulse(r1_pin, t);
63    else
64      relay_pulse(r2_pin, t);
65  }
66}
67 
68 
69void relay_pulse(int rel, int n) {
70  digitalWrite(rel, HIGH);
71  while (n--)
72    delay(1);
73  digitalWrite(rel, LOW);
74}

 

Виталий Игореви...
Offline
Зарегистрирован: 21.08.2020

Спасибо большое, отпишусь на е-mail

Green
Offline
Зарегистрирован: 01.10.2015

ОК. Лишний ноль уберите в
const int key_time  = 5000;

Виталий Игореви...
Offline
Зарегистрирован: 21.08.2020

Хорошо, спасибо, ответьте пожалуйста на е-мейл