Сделал самодельный автозапуск авто на ардуино

Всем привет, пикабушники!

Краткая аннотация: как я сделал самодельный автозапуск на своей ладе самаре на ардуино нано.

P.S. Это мой первый длинный пост, сильно не пинайте.

Все началось с того, что я резко увлекся микроконтроллерами на базе ардуино, а именно ардуино нано. Естественно, чтобы все это освоить я пошел изучать как и с чем его едят. Благо информации в интернете много и проникнуться изучить было не сложно. Сразу наткнулся на канал Алекса Гайвера(блогер электронщик, самодельщик, ардуинщик). Очень много самоделок сделал на платформах ардуино и не только! В итоге всю информацию брал с его статей и информацию с его роликов. Очень толковый парень!

Раз такая пьянка пошла нужно было раздобыть эту заветную плату. Ну долго не думая, пошел на наш с вами любимый АлиЭкспресс. Заказал сразу несколько, думаю пока буду изучать, все равно по ошибке могу что-то спалить или еще что. В итоге заказал ардуино на платформе нано и еще пару мелочей, которые вы увидите ниже в статье. Кстати выглядит это ардуино так:

Сделал самодельный автозапуск авто на ардуино Авто, Arduino, Самоделки, Автозапуск, Пайка, Электрика, АвтоВАЗ, Лада, Ваз-2114, AliExpress, Китайские товары, Электроника, Двигатель, Видео, Вертикальное видео, Длиннопост

Кроме самой платы еще нужно как-то передавать сигнал на расстоянии. Тут было несколько вариантов как это можно сделать. Есть радиомодули на частотах 433 МГц (как выяснилось позже, радиус действия их мал, ну либо мне попались какие-то бракованные, ну либо у меня руки кривые). Еще был вариант на GSM-модулях, но что-то мне не хотелось покупать сим карту, так как все взаимодействия были бы через СМС, а тратить деньги за каждую СМСку не наш вариант. Поэтому от этого варианта я тоже отказался. Ну и третий вариант (наверное и еще другие варианты), которым я воспользовался это радиомодули беспроводной связи nRF24L01 которые работают на частоте 2,4 ГГц. Дополнительно приобрел модуль питания под него, так как ему необходимо подавать 3,3 В.

Сделал самодельный автозапуск авто на ардуино Авто, Arduino, Самоделки, Автозапуск, Пайка, Электрика, АвтоВАЗ, Лада, Ваз-2114, AliExpress, Китайские товары, Электроника, Двигатель, Видео, Вертикальное видео, Длиннопост

Так же нам необходим релейный блок для того, чтобы имитировать 1-ое положение ключа и 2-ое.

Сделал самодельный автозапуск авто на ардуино Авто, Arduino, Самоделки, Автозапуск, Пайка, Электрика, АвтоВАЗ, Лада, Ваз-2114, AliExpress, Китайские товары, Электроника, Двигатель, Видео, Вертикальное видео, Длиннопост

Первым делом решил сразу начать с пайки, нашел все необходимые схемы что куда как подключается. В этом мне помог GitHub. Собрал схему и начал тестировать данные модули. Благо повторюсь в интернете вся информация по ним уже имеется, есть и готовые скетчи (это код который заливается в микроконтроллер ардуино) просто берешь загружаешь и смотришь реакцию работают или нет. Естественно иногда приходиться узнавать методом тыка, так проще всего:)

Сделал самодельный автозапуск авто на ардуино Авто, Arduino, Самоделки, Автозапуск, Пайка, Электрика, АвтоВАЗ, Лада, Ваз-2114, AliExpress, Китайские товары, Электроника, Двигатель, Видео, Вертикальное видео, Длиннопост

После того как понял, как работают данные модули принялся дописывать скетч своим кодом под свои нужды. Задача была завести машину удаленно, не затрагивая родную сигнализацию. На машине при покупке стояла сигнализация Pantera (и по сей день стоит она), в которой не было системы автозапуска. Все-таки хочется зимой сесть в теплую машину и сразу поехать по своим делам, а не сидеть и мерзнуть, ждать пока она согреется. Вы наверное скажете, зачем тебе такой сложный путь, купи сигнализацию с автозапуском и радуйся! Ну отвечу так, полностью менять сигнализацию не очень хотелось, надо было бы возиться с большим количеством проводов, правильно все соединить, ну по сути это не сложно, но сигнализация хорошая стоит не мало, а самоделка была намного дешевле и требовала взаимодействия лишь трех проводов (общий плюс, 1-ое положение ключа, 2-ое положение ключа).

Так вот, немного отвлекся, вернемся к скетчу. Само собой пробовал писать по разному, но пока остановился на самом простом варианте. Начнем с того, как происходит запуск двигателя, чтобы понять, что нам нужно от микроконтроллера. Для того, чтобы завести машину мы садимся, вставляем ключ в замок зажигания, поворачиваем его один раз, включается приборка и подсветка некоторых кнопок, затем поворачиваем дальше и у нас начинает крутить стартер, как только движок схватится мы отпускаем поворот ключа и ключ возвращается в первое положение и машина работает. В принципе не сложно, изучив операторы, действия с переменными и структуру написания накидал следующий скетч:

Сделал самодельный автозапуск авто на ардуино Авто, Arduino, Самоделки, Автозапуск, Пайка, Электрика, АвтоВАЗ, Лада, Ваз-2114, AliExpress, Китайские товары, Электроника, Двигатель, Видео, Вертикальное видео, Длиннопост

Суть скетча такая, если пришел сигнал №1, то начать запуск двигателя, если пришел сигнал №2 то заглушить, ну и последнее условие: если пришел сигнал №3, то включить аварийку (это сделано для понимания, чтобы не запуская авто видеть приходит ли вообще сигнал). Команда delay выступает в роли секундомера, digitalWrite - команда которая дает сигнал для замыкания реле, двойной слэш это просто комментарии к строкам кода. При написании скетча был момент, когда я не знал, как ограничить время, в течение которого крутился бы стартер.Думал, что нужно будет брать сигнал например с тахометра для того, чтобы понять, что машина завелась и уже потом размыкать реле. Но выяснился интересный момент, которого я не знал. Оказывается, когда ключ поворачиваешь на второе положение и двигатель запускается ЭБУ (а может и не он вовсе) сам прекращает подавать питание стартеру, есть конечно какие-то секунды, когда стартер еще крутится а движок уже запущен, но это происходит быстро. За рулем около 5 лет, и узнал это только сейчас.

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

Первый тест. На черновую все накинул и попробовал запустить авто без выдержки времени.

Убедившись в работоспособности, полностью снял замок и пошел домой для того, чтобы все аккуратно спаять. В процессе эксплуатации скетч я планировал допиливать и вносить корректировки. Чтобы это спокойно делать дома, а не в машине решил купить разъем папка мамка и сделать это дело разъемным.

Сделал самодельный автозапуск авто на ардуино Авто, Arduino, Самоделки, Автозапуск, Пайка, Электрика, АвтоВАЗ, Лада, Ваз-2114, AliExpress, Китайские товары, Электроника, Двигатель, Видео, Вертикальное видео, Длиннопост
Сделал самодельный автозапуск авто на ардуино Авто, Arduino, Самоделки, Автозапуск, Пайка, Электрика, АвтоВАЗ, Лада, Ваз-2114, AliExpress, Китайские товары, Электроника, Двигатель, Видео, Вертикальное видео, Длиннопост

Второй дополнительный разъем появился чуть позже, на нем я задействовал организацию питания для самой ардуино.

Ну и самое важное с чего отправлять тот самый заветный сигнал, чтобы запустить сердце нашей ласточки-это еще одна ардуинка с точно таким же радиомодулем и антенкой. Для пульта нужно было организовать свой источник питания с возможностью его заряжать от обычного микро-usb разъема. Естественно сам пульт получился не малым, похожим на рацию. В качестве источника питания взял аккумулятор от nokia модель АКБ bl-5c, он как раз был тех габаритов, чтобы все уместить в небольшую распределительную коробку.

Сделал самодельный автозапуск авто на ардуино Авто, Arduino, Самоделки, Автозапуск, Пайка, Электрика, АвтоВАЗ, Лада, Ваз-2114, AliExpress, Китайские товары, Электроника, Двигатель, Видео, Вертикальное видео, Длиннопост
Сделал самодельный автозапуск авто на ардуино Авто, Arduino, Самоделки, Автозапуск, Пайка, Электрика, АвтоВАЗ, Лада, Ваз-2114, AliExpress, Китайские товары, Электроника, Двигатель, Видео, Вертикальное видео, Длиннопост
Сделал самодельный автозапуск авто на ардуино Авто, Arduino, Самоделки, Автозапуск, Пайка, Электрика, АвтоВАЗ, Лада, Ваз-2114, AliExpress, Китайские товары, Электроника, Двигатель, Видео, Вертикальное видео, Длиннопост

Ну и финальный ролик как собственно это все работает. Единственное не знаю на какое максимальное расстояние может доходить сигнал. Но машину оставленную во дворе спокойно заводит метров 30-70 ловит спокойно.

Запуск авто с пульта

Итог:
Из преимуществ, простая понятная система, которую ты можешь настроить сам как тебе нужно. При желании даже можно отдельно через какое-то время запускать печку (или обогрев сиденья), а не оставлять ее включенной как все обычно делают. Для включения системы достаточно нажать кнопку та, что на распред коробке в машине.
Из недостатков для того, чтобы завести машину необходимо сначала открыть ее через обычную сигнализацию, иначе она начинает орать и после запуска ее спокойной можно закрыть. Так же есть момент, что я не могу знать завелась ли машина через самодельный пульт. Это можно сделать, но как я пока не смог разобраться и возможно расскажу в следующем посте или мне кто поможет в комментариях. Есть нюанс, что я в скетче не учел положение ручника и вставлена ли передача, это сделать по сути не сложно, но если ты сам знаешь в каком положении необходимо все поставить то это и не нужно, главное самому не забыть.

Всем спасибо за внимание. Надеюсь мой пост был интересным и полезным :)

Лига Радиолюбителей

1.1K постов9.3K подписчик

Добавить пост

Правила сообщества

Соблюдайте правила Пикабу. Посты выкладывать лишь касаемо нашей тематики. Приветствуется грамотное изложение. Старайтесь не использовать мат.

Постарайтесь не быть снобами в отношении новичков. Все мы когда-то ничего не знали и ничего не умели.

За попытку приплести политику или религию - предупреждение. 2 предупреждения - бан.

31
Автор поста оценил этот комментарий

1) Жрет дохуя

2) Места занимает дохуя

3) Стартером крутит дохуя.

4) Слежения за нейтралью нет нихуя. Обязательно уедет.

5) Пульт охуенный. Ну, чисто брелок))) И наверное тоже жрет дохуя?

6) Безопасности по радио тоже нет нихуя. Ок, чепырку угонять никому не обосралось, но оно от помех ложных срабатываний не наделает?

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
1.Ток потребления очень мал
2. Да место занимает, но не мешает
3. Пару секунд ещё крутить, с движком ничего не случится
4. Сам за этим слежу
5. Нее, говорю же ток потребления мал, да и я через кнопку полностью отрубаю питание на пульте, так что зарядка хватить на очень долго
6. Сигнал цифровой и повторить такой же, на том же радио канале, да и так как я задал ооочень маловероятно
показать ответы
Автор поста оценил этот комментарий

Там шестерня бендикса будет изнашиваться, нужно как то отслеживать состояние "машина заведена". А вот "хз как" это недопустимое состояние, примерно как кот Шредингера, сегодня есть, а завтра нет. Нужно понимать, что происходит

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Я наверное дальше уже доробатывать пока не буду. Тут в комментах один за бутылку пива предложил сигналку б/у с автозапуском, вообщем она пришла ко мне почтой вот буду летом ее ставить, а это самоделка останется хорошим опытом для меня)
показать ответы
139
Автор поста оценил этот комментарий

Бля, чувак, давай я тебе старлайн за пиво отдам, пока не натворил дел

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Какое пиво предпочитаешь?)
показать ответы
12
Автор поста оценил этот комментарий

это сделать по сути не сложно, но если ты сам знаешь в каком положении необходимо все поставить то это и не нужно, главное самому не забыть.

До первого случая, когда кто-то переставил твою машин, а ты забыл, или ночью залезли школьники, ретроградный меркурий столкнул кулису всплеском электромагнитной ненависти, сонный копался в машине и забыл с утра про это, итд
Проходили, рано или поздно выстрелит.
Обязательно делайте батарею оптронов на вход:
1-концевик ручника
2-педаль тормоза
3-импульсы тахометра/лампочка давления (не очень метод).
4-вход сирены со штатной сигнализации.
И напряжение батареи на ацп (делитель считайте килоом на 40 и более, где-то на 1/5.

Крутите стартер, пока обороты не станут нужными (или интервал в мс между импульсами, если не хотите писать тахометр), или по лимиту секунд, или по критической просадке, или по сработке сирены.

После запуска глушите по нажатию педали тормоза, или сработке сирены

А обратная связь - nfr же, возвращайте результат и всё

Есть вопрос по питанию, сколько жрёт поделка?)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Если честно не проверял сколько жрет, но очень мало. Насчёт обратной связи да это в библиотеке к nrf есть, но я не смог разобраться как ее задействовать ибо у меня не получилось. Насчёт концевика ручника то да планирую позже внедрить.
показать ответы
Автор поста оценил этот комментарий

Хорошо), (тогда папку в облаке сношу)если заметил, приемопередача сделана через прерывания. Кстати ещё вопрос, стартер крутит 6 секунд, это не много? Так ведь можно и механику ушатать.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Да можешь сносить. Вроде заметил) насчёт 6 секунд, я как раз писал в статье что когда машина завелась то он размыкает цепь хз как и стартер перестает крутиться. А если машина не заводится то 6 секунд не так уж много чтобы навредить машине я так думаю
показать ответы
Автор поста оценил этот комментарий

Посмотри мои портянки, может че найдешь для себя https://cloud.mail.ru/public/hvaN/5yz8yVSY4

По коду замечания:

у тебя стоит radio.setPALevel (RF24_PA_MAX);  , подключи radio.print details и посмотри, что фактически пишет в терминал про мощность, если max, то хорошо, у меня при такой настройке писал min, я выставлял hight и тогда в терминале было hight. зачем тебе пакет размером 32 байта, урезай его по размеру отправляемого массива. set retries с 0, ну такое себе, поставь хотя бы 3. количество повторов тоже можно убавить, когда урежешь размер пакета станет чутка лучше. если не получится - пиши, постараюсь помочь

раскрыть ветку (1)
Автор поста оценил этот комментарий

Спасибо за советы, конечно не все понял, но получилось сделать, конечно до конца не понимаю как но получилось))

показать ответы
Автор поста оценил этот комментарий
radio.writeAckPayload(1,ack,sizeof(ack))
взял отсюда https://arduino.stackexchange.com/questions/3095/auto-acknow...
когда то заряжал эту функцию, очень удобно, приемник получая пакет тут же отправляет на него ответ передатчику, притом в ответ можно положить все , что нужно
раскрыть ветку (1)
Автор поста оценил этот комментарий

Если не трудно можешь подсказать куда в код это вставить? код скинул ниже

Автор поста оценил этот комментарий

#include <SPI.h>          // библиотека для работы с шиной SPI

#include "nRF24L01.h"     // библиотека радиомодуля

#include "RF24.h"         // ещё библиотека радиомодуля

#include "GyverTM1637.h" // библиотека дисплея


GyverTM1637 disp(4, 5);


RF24 radio(9, 10); // "создать" модуль на пинах 9 и 10 Для Уно

//RF24 radio(9,53); // для Меги


byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб

int zapusk;

int rec[1] = {0};


void setup() {

disp.clear(); // запустить дисплей

disp.brightness(1);  // яркость дисплея, 0 - 7 (минимум - максимум)


pinMode(6, INPUT_PULLUP);

pinMode(7, INPUT_PULLUP);

pinMode(8, INPUT_PULLUP);


  Serial.begin(9600);         // открываем порт для связи с ПК


  radio.begin();              // активировать модуль

  radio.setAutoAck(1);        // режим подтверждения приёма, 1 вкл 0 выкл

  radio.setRetries(0, 15);    // (время между попыткой достучаться, число попыток)

  radio.enableAckPayload();   // разрешить отсылку данных в ответ на входящий сигнал

  radio.setPayloadSize(32);   // размер пакета, в байтах


  radio.setChannel(0x70);             // выбираем канал (в котором нет шумов!)


  radio.setPALevel (RF24_PA_MAX);   // уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX

  radio.setDataRate (RF24_250KBPS); // скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS

  //должна быть одинакова на приёмнике и передатчике!

  //при самой низкой скорости имеем самую высокую чувствительность и дальность!!

radio.stopListening();  // не слушаем радиоэфир, мы передатчик

radio.openWritingPipe(address[4]);  // мы - труба 0, открываем канал для передачи данных

radio.powerUp();        // начать работу

Serial.println("START");

}


void loop() {

bool g1a = !digitalRead(8);

bool g2a = !digitalRead(7);

bool g3a = !digitalRead(6);

int g1;

int g2;

int g3;


if (g1a==1) {

g1 = 1;

radio.write(&g1, sizeof(g1));

delay(10);

Serial.print("Transmitted:");

disp.display(3 ,g1);

Serial.println(g1);


}

else if (g2a==1) {

g2 = 2;

radio.write(&g2, sizeof(g2));

delay(10);

Serial.print("Transmitted:");

disp.display(3 ,g2);

Serial.println(g2);

}

else if (g3a==1){

g3 = 3;

radio.write(&g3, sizeof(g3));

delay(10);

//disp.display(3 ,g3);

Serial.print("Transmitted:");

Serial.println(g3);

}

else{

disp.clear();

}

}

раскрыть ветку (1)
Автор поста оценил этот комментарий

#define rele1 2 //питание всей системы 1-ое положение замка зажигания

#define rele2 3 //питание всей системы 2-ое положение замка зажигания

#define rele3 4 //питание имитация ключа

#define rele4 5 //на аварийку

#define a1 A0

#define a2 A1

#define a3 A2

int zapusk;

char zap;

static char b = 1;

unsigned long time;

int ack[1] = {1};


#include <SPI.h>

#include "nRF24L01.h"

#include "RF24.h"


RF24 radio(9, 10);  // "создать" модуль на пинах 9 и 10 Для Уно

//RF24 radio(9,53); // для Меги


byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб


void setup() {

  Serial.begin(9600);         // открываем порт для связи с ПК

  radio.begin();              // активировать модуль

  radio.setAutoAck(1);        // режим подтверждения приёма, 1 вкл 0 выкл

  radio.setRetries(0, 15);    // (время между попыткой достучаться, число попыток)

  radio.enableAckPayload();   // разрешить отсылку данных в ответ на входящий сигнал

  radio.setPayloadSize(32);   // размер пакета, в байтах


  radio.setChannel(0x70);     // выбираем канал (в котором нет шумов!)


  radio.setPALevel (RF24_PA_MAX);   // уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX

  radio.setDataRate (RF24_250KBPS); // скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS

  //должна быть одинакова на приёмнике и передатчике!

  //при самой низкой скорости имеем самую высокую чувствительность и дальность!!

radio.startListening(); // начинаем слушать эфир, мы приёмный модуль

radio.openReadingPipe(1, address[4]);   // хотим слушать трубу 0

  radio.powerUp();        // начать работу


Serial.println("START");

pinMode(a1, INPUT_PULLUP);

pinMode(a2, INPUT_PULLUP);

pinMode(a3, INPUT_PULLUP);

pinMode(rele1, OUTPUT);

pinMode(rele2, OUTPUT);

pinMode(rele3, OUTPUT);

pinMode(rele4, OUTPUT);

digitalWrite(rele1,1);

digitalWrite(rele2,1);

digitalWrite(rele3,1);

digitalWrite(rele4,1);

}


void loop() {

zap = 0;

  byte pipeNo, gotByte;

  while (radio.available(&pipeNo)) {        // слушаем эфир со всех труб

    radio.read(&gotByte, 1);  // чиатем входящий сигнал

    Serial.print("Recieved: ");

    Serial.println(gotByte);

zapusk = gotByte;

}


if (zapusk==1){

  zap=1;

}

if (zapusk==2){

  zap=2;

}

if (zapusk==3){

  zap=3;

}


bool a11 = !digitalRead(a1); //ручник

bool a22 = !digitalRead(a2); //доп. сигнал

bool a33 = !digitalRead(a3); //доп. сигнал


if (zap==1 && b==1) {

//if (a11==1 && a22==1)

b = 0;

digitalWrite(rele3,b); //имитация ключа зажигания

delay(500); //7 секунд качает бензонасос

digitalWrite(rele1,b);

Serial.println("Запуск двигателя");

delay(7000); //7 секунд качает бензонасос

digitalWrite(rele2,b);

delay(6000); //6 секунд крутим стартер

digitalWrite(rele2,1);

Serial.println("Запуск завершен");

}

if ( b==0 ){

if (millis() - time > 6000){

digitalWrite(rele4,0); //мигание аварийки

if (millis() - time > 6500){

digitalWrite(rele4,1); //мигание аварийки

time = millis();

}

}

}

if (zap==2) {

  b = 1;

digitalWrite(rele1,b);

digitalWrite(rele2,b);

digitalWrite(rele3,b);

digitalWrite(rele4,b);

}

if (zap==3 && b==1) {

digitalWrite(rele4,0);

delay(10);

}

}

показать ответы
Автор поста оценил этот комментарий

Я походу чего то не понимаю, пытался добавить данный код, но все без успешно(

раскрыть ветку (1)
Автор поста оценил этот комментарий

#include <SPI.h>          // библиотека для работы с шиной SPI

#include "nRF24L01.h"     // библиотека радиомодуля

#include "RF24.h"         // ещё библиотека радиомодуля

#include "GyverTM1637.h" // библиотека дисплея


GyverTM1637 disp(4, 5);


RF24 radio(9, 10); // "создать" модуль на пинах 9 и 10 Для Уно

//RF24 radio(9,53); // для Меги


byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб

int zapusk;

int rec[1] = {0};


void setup() {

disp.clear(); // запустить дисплей

disp.brightness(1);  // яркость дисплея, 0 - 7 (минимум - максимум)


pinMode(6, INPUT_PULLUP);

pinMode(7, INPUT_PULLUP);

pinMode(8, INPUT_PULLUP);


  Serial.begin(9600);         // открываем порт для связи с ПК


  radio.begin();              // активировать модуль

  radio.setAutoAck(1);        // режим подтверждения приёма, 1 вкл 0 выкл

  radio.setRetries(0, 15);    // (время между попыткой достучаться, число попыток)

  radio.enableAckPayload();   // разрешить отсылку данных в ответ на входящий сигнал

  radio.setPayloadSize(32);   // размер пакета, в байтах


  radio.setChannel(0x70);             // выбираем канал (в котором нет шумов!)


  radio.setPALevel (RF24_PA_MAX);   // уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX

  radio.setDataRate (RF24_250KBPS); // скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS

  //должна быть одинакова на приёмнике и передатчике!

  //при самой низкой скорости имеем самую высокую чувствительность и дальность!!

radio.stopListening();  // не слушаем радиоэфир, мы передатчик

radio.openWritingPipe(address[4]);  // мы - труба 0, открываем канал для передачи данных

radio.powerUp();        // начать работу

Serial.println("START");

}


void loop() {

bool g1a = !digitalRead(8);

bool g2a = !digitalRead(7);

bool g3a = !digitalRead(6);

int g1;

int g2;

int g3;


if (g1a==1) {

g1 = 1;

radio.write(&g1, sizeof(g1));

delay(10);

Serial.print("Transmitted:");

disp.display(3 ,g1);

Serial.println(g1);


}

else if (g2a==1) {

g2 = 2;

radio.write(&g2, sizeof(g2));

delay(10);

Serial.print("Transmitted:");

disp.display(3 ,g2);

Serial.println(g2);

}

else if (g3a==1){

g3 = 3;

radio.write(&g3, sizeof(g3));

delay(10);

//disp.display(3 ,g3);

Serial.print("Transmitted:");

Serial.println(g3);

}

else{

disp.clear();

}

}

показать ответы
Автор поста оценил этот комментарий
radio.writeAckPayload(1,ack,sizeof(ack))
взял отсюда https://arduino.stackexchange.com/questions/3095/auto-acknow...
когда то заряжал эту функцию, очень удобно, приемник получая пакет тут же отправляет на него ответ передатчику, притом в ответ можно положить все , что нужно
раскрыть ветку (1)
Автор поста оценил этот комментарий

Я походу чего то не понимаю, пытался добавить данный код, но все без успешно(

показать ответы
Автор поста оценил этот комментарий

бро, у меня на nRF24L01 частенько залипали пакеты, то есть кнопка отпущена, но приемник это не видит, я конечно решил это дублированием пакетов, но это костыль. еще эти чипы очень чувствительны к питанию,( нужно прям на самой nRF24L01 припаивать небольшой электролит и керамику), и могут тупо зависнуть. у меня их 15 штук валяется теперь, ушел от них на есп32. ну и с развязкой тебе правильно сказали, импульс от генератора и вся твоя поделка превратится в кирпич. а по обратной связи у них есть специальная функция, которая шлет ответ на принятый пакет, если не найдешь, потом подскажу

раскрыть ветку (1)
Автор поста оценил этот комментарий
Ну у меня пока все работает, по поводу импульсов от генератора, по факту сигнал я отправляю до того как генератор начинает работать, а вот насчёт как отправлят обратно сигнал с удовольствием бы послушал, потому что так и не смог разобраться как это сделать. Я как раз хотел экранчик на пульте задействовать что туда выводит инфу о том что сигнал пришел
показать ответы
Автор поста оценил этот комментарий
А 6 секунд на стартер не много? У меня в настройках сигнализации максимум 2 или 3 секунды стоит. Понятно что машина у вас может не разу заводится, но с пол оборота если то 6 секунд дохрена!
раскрыть ветку (1)
Автор поста оценил этот комментарий
Зимой, когда будет -25, тогда 3 секунд точно будет не достаточно
показать ответы
Автор поста оценил этот комментарий

Напиши, как связаться. На Драйв2 есть?

раскрыть ветку (1)
Автор поста оценил этот комментарий
На Драйв2 меня нет. Есть телега @Azatey_n
Автор поста оценил этот комментарий

С каких пор nRF24L01 на 4.3 ГГц? Всегда было 2.4 ГГц.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Да ошибся, поправил