Здравствуйте! В Ардуино я "дерево", как и в целом в программировании. Решил электрофицировать модель автомобиля и чтобы управление было с пульта. Принцип работы, чтобы при нажатии условно клавиши "1" загорались левые поворотники и при повторном нажатии этой же клавиши выключались, точно так же и правые, при нажатии другой клавиши уже. Столкнулся с проблемой, что я никак не могу правильно вставить часть кода, который отвечает за моргание светодиода в общий скетч. Один раз я только добился результата, нажимаю клавишу, светодиод - включается 0.5 сек. горит, выключается 0.5 сек. не горит, но цикл больше не запускается, а мне нужно, чтобы он бесконечно моргал, пока я сам не подам сигнал с пульта о его выключении. Но скетч я тот потерял, да и он явно неверный, ибо я просто вставил delay между строк о нажатии кнопки. Уже использовал скетч, чтобы с одной кнопки включать, а с другой выключать, думал, что может быть там смогу, что-то намудрить, но ничего. С простыми фарами вроде как разобрался, проблема только в поворотниках, они никак не хотят работать с пульта.
P.s. приложил 2 кода, один просто включает/выключает с клавиши светодиоды, второй код же само моргание светодиода.
Помогите пожалуйста, как-то соединить эти 2 скетча между собой!
P.s. приложил 2 кода, один просто включает/выключает с клавиши светодиоды, второй код же само моргание светодиода.
Помогите пожалуйста, как-то соединить эти 2 скетча между собой!
C++:
#include "IRremote.h"
IRrecv irrecv(9);
decode_results results;
int led1=0;
int led2=0;
void setup() {
pinMode(8,OUTPUT);
pinMode(2,OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if ( irrecv.decode( &results )) {
Serial.println(results.value, HEX);
if (results.value==0xFF30CF&&led1==0){
digitalWrite( 8, HIGH );led1=1;results.value=0;
}
if (results.value==0xFF30CF&&led1==1){
digitalWrite( 8, LOW );led1=0;results.value=0;
}
if (results.value==0xFF18E7&&led2==0){
digitalWrite( 2, HIGH );led2=1;results.value=0;
}
if (results.value==0xFF18E7&&led2==1){
digitalWrite( 2, LOW );led2=0;results.value=0;
}
irrecv.resume();
}
}
C++:
void setup() {
pinMode(2, OUTPUT);
pinMode(3, INPUT);
digitalWrite(3, HIGH);
}
void loop() {
if (digitalRead(3) == 0)
{
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
}
}