Topic: Машинка на блютузе
Всем привет, только купил себе ардуинку и начал в нее вникать.
Изучение начал с управления джипом.
Функционал очень прост:
-Вперед
-Назад
-Поворот влево, вправо
-Фары вкл\выкл
-Здесь на форуме нашел скетч о стопах что бы включались отключались при движении, позаимствовал его.
-Включение габаритов
-Включение туманок
Нашел светодиодную полосу с красным и синим светодиодами, захотел сделать полицейские мигалка на джип...но не могу дать ума....в приложении вывел выключатель отдельный, подвключил к 12 пину, светодиоды вывел на А5 и А6, как их заставить мигать при включении 12 пина...не знаю. Ай нид хелп.
Скетч вот:
/*
// определение режима соединения и подключение библиотеки RemoteXY
#define REMOTEXY_MODE__HARDSERIAL
#include <RemoteXY.h>
// настройки соединения
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 9600
// конфигурация интерфейса
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
{ 255,8,0,1,0,162,0,8,8,0,
2,0,2,11,22,5,2,26,24,31,
79,78,0,226,152,188,0,1,2,84,
47,11,11,135,24,226,150,188,0,1,
2,84,25,11,11,135,24,226,150,178,
0,1,2,24,37,11,11,135,24,226,
150,186,0,1,2,2,37,11,11,135,
24,226,151,132,0,2,0,26,11,22,
5,2,26,24,31,79,78,0,226,150,
132,226,150,132,226,150,132,0,2,0,
50,11,22,5,2,26,24,31,79,78,
0,80,79,76,73,67,69,0,2,0,
74,11,22,5,2,26,24,31,79,78,
0,226,128,162,32,226,128,162,32,226,
128,162,32,226,128,162,0,66,128,2,
3,94,7,94,26,129,0,31,53,41,
9,16,72,65,77,77,69,82,0 };
// структура определяет все переменные вашего интерфейса управления
struct {
// input variable
uint8_t vkl_fara; // =1 если переключатель включен и =0 если отключен
uint8_t BCKWD; // =1 если кнопка нажата, иначе =0
uint8_t FWD; // =1 если кнопка нажата, иначе =0
uint8_t RIGHT; // =1 если кнопка нажата, иначе =0
uint8_t LEFT; // =1 если кнопка нажата, иначе =0
uint8_t vkl_tuman; // =1 если переключатель включен и =0 если отключен
uint8_t vkl_police; // =1 если переключатель включен и =0 если отключен
uint8_t vkl_gab; // =1 если переключатель включен и =0 если отключен
// output variable
int8_t level_1; // =0..100 положение уровня
// other variable
uint8_t connect_flag; // =1 if wire connected, else =0
} RemoteXY;
#pragma pack(pop)
/////////////////////////////////////////////
// END RemoteXY include //
/////////////////////////////////////////////
#define PIN_VKL_FARA 2
#define PIN_BCKWD 5
#define PIN_FWD 4
#define PIN_RIGHT 7
#define PIN_LEFT 6
#define PIN_VKL_TUMAN 3
#define PIN_VKL_POLICE 12
#define PIN_VKL_GAB 8
#define PIN_STOP_LIGHT 13 //стоп-сигналы
void setup()
{
RemoteXY_Init ();
pinMode (PIN_VKL_FARA, OUTPUT);
pinMode (PIN_BCKWD, OUTPUT);
pinMode (PIN_FWD, OUTPUT);
pinMode (PIN_RIGHT, OUTPUT);
pinMode (PIN_LEFT, OUTPUT);
pinMode (PIN_VKL_TUMAN, OUTPUT);
pinMode (PIN_VKL_POLICE, OUTPUT);
pinMode (PIN_VKL_GAB, OUTPUT);
pinMode (PIN_STOP_LIGHT, OUTPUT);
// TODO you setup code
}
void loop()
{
RemoteXY_Handler ();
digitalWrite(PIN_VKL_FARA, (RemoteXY.vkl_fara==0)?LOW:HIGH);
digitalWrite(PIN_BCKWD, (RemoteXY.BCKWD==0)?LOW:HIGH);
digitalWrite(PIN_FWD, (RemoteXY.FWD==0)?LOW:HIGH);
digitalWrite(PIN_RIGHT, (RemoteXY.RIGHT==0)?LOW:HIGH);
digitalWrite(PIN_LEFT, (RemoteXY.LEFT==0)?LOW:HIGH);
digitalWrite(PIN_VKL_TUMAN, (RemoteXY.vkl_tuman==0)?LOW:HIGH);
digitalWrite(PIN_VKL_POLICE, (RemoteXY.vkl_police==0)?LOW:HIGH);
digitalWrite(PIN_VKL_GAB, (RemoteXY.vkl_gab==0)?LOW:HIGH);
if (RemoteXY.FWD==HIGH||RemoteXY.BCKWD==HIGH) //пришёл сигнал - отключаем стопы
{
digitalWrite(PIN_STOP_LIGHT,LOW); //отключение стопов при движении вперед
}
else digitalWrite(PIN_STOP_LIGHT,HIGH); //стоит машина - включаем стопы
// TODO you loop code
// используйте структуру RemoteXY для передачи данных
}