Показать сообщение отдельно
Старый 10.08.2017, 20:50   #89
Las42kuz
Пользователь
 
Регистрация: 11.02.2017
Возраст: 37
Город: Новокузнецк
Регион: 42
Машина: FordFocus 2
Сообщений: 68
Las42kuz is on a distinguished road
По умолчанию

Здравствуйте делаю планшет в машину! Остановился на подключении кнопок на руле точнее я подключил ардуйно про микро и кнопки но сейчас решил добавить энкодер и теперь не знаю как объединить два сетча помогите пожалуйста , сам не осилю! По отдельности все работает! Заранее спасибо

это для энкодера
[PHP]#define BTN_pin 8 // pin 8 кнопка энкодера SW
const int pin_A = 10; // pin 10 нога энкодера CLK
const int pin_B = 9; // pin 9 нога энкодера DT
unsigned char encoder_A; //переменная
unsigned char encoder_B; //переменная
unsigned char encoder_A_prev=0; //переменная
uint32_t vibor = 0; //Здесь будем хранть время
int perek = 0; //переменная переключатель

void setup() {
digitalWrite(BTN_pin, 1); //подтяжка кнопки энкодера
pinMode(pin_A, INPUT); //пины энкодера объявляем входами
pinMode(pin_B, INPUT); //пины энкодера объявляем входами
Keyboard.begin(); //подключим как клава
}
void loop()
{

{ encoder_A = digitalRead(pin_A); // считываем состояние выхода А энкодера
encoder_B = digitalRead(pin_B); // считываем состояние выхода B энкодера
if((!encoder_A) && (encoder_A_prev)){ // если состояние изменилось с положительного к нулю
if(encoder_B)
{
Remote.increase(); //отправляем команду громкость выше
Remote.clear(); //очищаем команду
}
else {
Remote.decrease(); //отправляем команду громкость ниже
Remote.clear(); //очищаем команду
}
}
encoder_A_prev = encoder_A; // сохраняем значение А для следующего цикла
}
if(digitalRead(BTN_pin)==LOW) //Если кнопка нажата то делаем то что ниже.
{
Keyboard.press(KEY_LEFT_ALT); //нажмем кнопку ALT
Keyboard.press(KEY_TAB); //нажмем кнопку TAB
Keyboard.release(KEY_TAB); //отпустим кнопку TAB
delay(150); //ждем 150мс чтоб не скакало по окошкам
vibor = millis(); //запускаем отсчет времени
perek=1; //переменной переключателя присваиваем 1
}
if((vibor && millis()-vibor > 1000) && perek==1) //если прошло больше 1 секунды и перемменая переключателя = 1
{
Keyboard.releaseAll(); //отпускаем все кнопки
perek = 0; //переменной переключателя присваиваем 0 чтоб сюда больше не заходил
}
}
/PHP]
для кнопок на руль

[PHP]int rknop; // это переменная которая хранит значения наших кнопок.
void setup()
{
Serial.begin(9600); //это скорость соединения с компьютером (для сериал монитора в нашем случае)

pinMode(rknop,INPUT);
}

void loop()
{
rknop=analogRead(A0); //Считываем значения на порту A0 и записываем значения в переменную rknop
Serial.println(rknop); //Отправляем данные переменной rknop на компьютер
delay(200); //небольшая задержка в пол секунды, её можно удалить но значения в сериал мониторе будет меняться очень быстро

///////////////////////////////////////////
if(rknop < 969 && rknop > 966) //здесь мы делаем условие. Т.е если у наз значение переменной rknop больше 900 и меньше 960 то делаем какоето действие которая ниже. На сколько мы помним при нажатии кнопки S1 у нас значения были ~930 так вот мы могли написать просто if(rknop == 930) что означает если rknop равно 930 то делем дейсвие которое ниже, но наши значения немного игрют поэтому мы задаем никий промежуток от 900 до 960
{
Remote.next(); //отправляем команду следующая песня
delay(200); //делаем небольшую задержу чтоб устройство успело отправить необходимые команды на планшет или компьютер и не засыпать его командами
Remote.clear();//очищаем команду
}

////////////////////////////////////////////
if(rknop < 994 && rknop > 992)
{
Remote.previous(); //предыдущая песня
delay(200);
Remote.clear();
}

////////////////////////////////////////////
if(rknop < 927 && rknop > 925)
{
Remote.play_pause(); //плей и паузу
delay(200);
Remote.clear();
}

////////////////////////////////////////////
if(rknop < 1009 && rknop > 1007)
{
Remote.increase(); //громкость прибавить
delay(000);
Remote.clear();
}

////////////////////////////////////////////
if(rknop < 1019 && rknop > 1015)
{
Remote.decrease(); //громкость убавить
delay(000);
Remote.clear();
}/PHP]

Последний раз редактировалось admin; 15.10.2018 в 23:11.
Las42kuz вне форума   Ответить с цитированием