Управление механизмом открытия монитора в автомобиле
- Войдите на сайт для отправки комментариев
Помогите пожалуйста, как организовать управление двумя реле(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 миллисекунд
Тогда это к Бармалею.)
Тогда ко мне
Если Вы не согласны платить заметно больше, чем стоит серийное изделие, зачем Вы вообще обратились на форум? Это все равно, что пытаться заказать художнику картину по цене репродукции.
Да я просто первый раз обратился с помощью написания программы. Рынок и цена за эту работу для меня не знакомы. Спасибо что пояснили.
Хорошо бы... Пива!
01
const
int
oc_pin = 2;
02
const
int
title_pin = 3;
03
const
int
r1_pin = 4;
04
const
int
r2_pin = 5;
05
const
int
acc_pin = 6;
06
const
int
key_time = 5000;
07
08
const
int
t1 = 200;
09
const
int
t2 = 190;
10
const
int
t3 = 180;
11
const
int
t4 = 170;
12
const
int
n1 = t1 - t2;
13
const
int
n2 = t2 - t3;
14
const
int
n3 = t3 - t4;
15
const
int
n4 = t1 - t4;
16
int
t = t1;
17
18
19
void
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
27
void
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
69
void
relay_pulse(
int
rel,
int
n) {
70
digitalWrite(rel, HIGH);
71
while
(n--)
72
delay(1);
73
digitalWrite(rel, LOW);
74
}
Спасибо большое, отпишусь на е-mail
ОК. Лишний ноль уберите в
const
int
key_time = 5000;
Хорошо, спасибо, ответьте пожалуйста на е-мейл