Отключал я эту бестолковку под названием Старт/Стоп с помощью сигнализации и уже почти забыл о ней. Но в процессе установки обгонной камеры и выноса кнопки ее активации, взгляд упал на удачно расположенную около ручки КПП и уже забытую кнопку. А почему бы ее не использовать?
Итак план навесить на нее функции:
— переключение вида камеры заднего хода (одно нажатие)
— включение обгонной камеры (двойной клик)
— включение/отключение системы старт/стоп (3 сек удержание)

Покупаем вот такое устройство. Пишем код в ардуино IDE. И внедряем в авто согласно схеме

На схеме видно, что пришлось добавить реле, чтобы инвертировать сигнал +12V с кнопки с помощью реле и подавать GND на IO0 платы ESP.
Для обгонной камеры понятно, нужно подать +12V на питание камеры и монитора. А для переключение режима камеры заднего хода нужно подать GND на провод BIT0. У камеры есть три режима работа, но мне оказалось достаточно двух: основной и рыбий глаз для выезда на дорогу с парковки.
Сама функция старт/стоп естественно отключается через несколько секунд после запуска двигателя. Если удерживать кнопку 3 секунды, то можно включить.
Ниже фото видов камеры заднего хода и обгонной



далее код для среды Arduino IDE. Вроде бы все несложно, но так долго возюкался с ним.
#define CH_PD 44 //sinal de controle de CH_PD
#define RST 46 //sinal de controle de RST
#define GPIO0 48 //sinal de controle de GPIO0
#define BTN_PIN 0 // кнопка подключена сюда (BTN_PIN --- КНОПКА --- GND)
#include "GyverButton.h"
GButton butt1(BTN_PIN);
#define interruptPin 0 //GPIO2
#define KeyUp 0
#define KeyDown 1
volatile bool RCam = 0, OvCam = 0, StSt = true;
unsigned long int StStTime = 0;
bool Key;
uint8_t R1On[] = {0xA0, 0x01, 0x01, 0xA2};
uint8_t R1Off[] = {0xA0, 0x01, 0x00, 0xA1};
uint8_t R2On[] = {0xA0, 0x02, 0x01, 0xA3};
uint8_t R2Off[] = {0xA0, 0x02, 0x00, 0xA2};
uint8_t R3On[] = {0xA0, 0x03, 0x01, 0xA4};
uint8_t R3Off[] = {0xA0, 0x03, 0x00, 0xA3};
uint8_t R4On[] = {0xA0, 0x04, 0x01, 0xA5};
uint8_t R4Off[] = {0xA0, 0x04, 0x00, 0xA4};
void setup()
{
pinMode(CH_PD, OUTPUT);
pinMode(RST, OUTPUT);
pinMode(GPIO0, OUTPUT);
digitalWrite(CH_PD, HIGH); //Setado em alto — funcionamento normal
digitalWrite(RST, HIGH); //RST em alto — funcionamento normal
digitalWrite(GPIO0, HIGH); //GPIO0 em alto — funcionamento no rmal
// Inicializa ambas as portas
Serial.begin(115200);
while(!Serial.available());
delay(3000);
StStTime = millis();
Serial.write(R3On, 4); // включить реле старт-стоп
StSt = true;
Key = KeyUp; //кнопка не нажата
}
void loop()
{
butt1.tick();
if (butt1.isSingle())
{
//Serial.println("Single"); // проверка на один клик
if (RCam == false)
Serial.write(R1On, 4);
else
Serial.write(R1Off, 4);
RCam = !RCam;
}
if (butt1.isDouble())
{
//Serial.println("Double");
if (OvCam == false)
Serial.write(R2On, 4);
else
Serial.write(R2Off, 4);
OvCam = !OvCam;
}
if(butt1.isPress() && Key == KeyUp)// если кнопка нажата после отжатого состояния
{
//Serial.print("Press");
Key = KeyDown;
StStTime = millis();
}
if (butt1.isStep() && millis() — StStTime > 3000 && Key == KeyDown) // если кнопка удерживается дольше 3 сек
{
//Serial.print("Step");
StStTime = millis();
Serial.write(R3On, 4);
StSt = true;
Key = KeyUp; //как будто отпустили для следующего нажатия
}
if(StSt == true && millis() — StStTime > 500) // если реле включено уже больше полсекунды
{
Serial.write(R3Off, 4);
StSt = false;
}
}






Комментарии 15
За труды респект!
Блин, есть такой тип людей которые прижимаются в упор к фуре, а потом выскакивают в слепую лоб лоб со встречкой, а чтобы не убится начинают камеры да зеркала обгонные лепить🤣🤣 обгонять надо ходом, либо держать дистанцию для обзора, так и камеры не нужны, и капот с бампером целые.
Я ездил и с камерой и без камеры, поэтому рассказываю, что с камерой удобнее. Ты пробовал ездить с камерой или просто так заявляешь о её ненужности?
С камерой я не ездил, на левом руле у меня было 3 машины, на правом 4. Каких то больших сложностей на правом я не испытываю потому мне эти награможенияиз мониторов, или не дай бог зеркал мне не нужны, дело привычки. Правый руль и с владика гонял, уже несколько раз, и все нормально.
Ожидаемый ответ. Ни разу еще не слышал, чтобы кто-то поездил с камерой, а потом сказал, что снял, потому что не понравилось.
Ну меня как минимум отторгает второй дисплей. И если я купил бу машину с таким, то я бы видимо был первым кто снял))
Земляк) с Братска)
Узкий обзор и парковочные линии в небо на задней камере — это так и задумано ? Да и зачем еще один монитор ровно над родным для обгонной камеры…
Я себе тоже отдельный монитор поставил, в основном чтобы не опускать слишком низко взгляд и не въехать в машину впереди, а допом то что мой гатхерс отключает второй вход при скорости выше 30 км/ч с GPS антенной, а без антенны не показывает правильно время.
Нормально вроде бы видно на мониторе ГУ.
Это какое фокусное расстояние у тебя? Я на 25мм поставил, чтобы видеть задние фонари машины, которую планируешь обгонять.
Именно 25мм.
Gostorito
Узкий обзор и парковочные линии в небо на задней камере — это так и задумано ? Да и зачем еще один монитор ровно над родным для обгонной камеры…
Обзор как бы не узкий, а рыбий. Например, если отруливаешь задним ходом от магазина, а видимость дороги прикрывает припаркованная рядом машина, то включая этот режим на камере достаточно далеко в стороны получается подглядывать. Штатный режим это у камеры родной. Вот картинка ниже. На родной магнитоле можно выбирать вид, предполагаю, что на руле кнопочка для этого бывает.
Ну а монитор отдельный — это чтобы повыше был и взгляд от дороги почти не отрываешь и не перефокусируешь. Лет 15 назад начал ездить с обгонкой и для себя сделал вывод, что удобнее, когда монитор выше стоит.
Это я знаю, у меня тоже 3 режима, хоть и tyes. У вас парковочные линии не настроены. Это показатель, что и весь обзор не без дефектов.
Ок, спасибо. По умолчанию их оставил, попробую понастраивать, не придавал значения