PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Устройства ввода

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2018, 22:13   #1
maks_oteam
Новый Пользователь
 
Регистрация: 19.10.2018
Возраст: 35
Регион: Беларусь
Сообщений: 2
maks_oteam is on a distinguished road
По умолчанию Управление подрулевым джойстиком

Добрый день. Имеется код управления джойстиком:

#include <Keypad.h>
const byte ROWS = 3; //four rows
const byte COLS = 4; //four columns

char hexaKeys[ROWS][COLS] = {
{'6','x','4','a'},
{'8','1','2','b'},
{'7','3','5','c'}

};
byte colPins[COLS] = {
6, 5, 4, 3}; //connect to the row pinouts of the keypad
byte rowPins[ROWS] = {
9, 8, 7}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup(){
Serial.begin(9600);
}
void loop()
{
char key = customKeypad.getKey();

if (key != NO_KEY)
{
Serial.println(key);
}
char LastJoystickKey;
switch(key){
case 'a':
if(LastJoystickKey=='b'){
Remote.next();
delay(200);
Remote.clear();
}
if(LastJoystickKey=='c'){
Remote.previous();
delay(200);
Remote.clear();
}
break;
case 'b':
if(LastJoystickKey=='a'){
Remote.previous();
delay(200);
Remote.clear();
}
if(LastJoystickKey=='c'){
Remote.next();
delay(200);
Remote.clear();
}
break;
case 'c':
if(LastJoystickKey=='a'){
Remote.next();
delay(200);
Remote.clear();
}
if(LastJoystickKey=='b'){
Remote.previous();
delay(200);
Remote.clear();
}
break;
default:{
}
if(key=='a'||key=='b'||key=='c'){
LastJoystickKey=key;
}
}
if (key == '2'){
Remote.play_pause();
delay(10);
Remote.clear();
}
if (key == '3'){
Remote.decrease();
delay(10);
Remote.clear();
}

if (key == '1'){
Remote.increase();
delay(10);
Remote.clear();
}
}
На джойстике имеется крутелка (не энкодер), которая работает по принципу замыкания контактов как и кнопка. Крутелка имеет 3 положения (3 пары замыкания контактов). Замыкания происходят по схеме 4пин+7пин, 4пин+8пин, 4пин+9пин.
Вопрос в следующем: на крутелке постоянно замкнута одна из пар контактов, из-за этого код не хочет работать, если разомкнуть (физически), то код рабочий и все кнопки кроме крутелки работают.
Помогите решить проблему.
maks_oteam вне форума   Ответить с цитированием
Старый 13.11.2018, 23:14   #2
YAM1966
Гуру
 
Аватар для YAM1966
 
Регистрация: 01.06.2013
Возраст: 58
Регион: Украина
Машина: Toyota Fortuner 4.0 / Chevrolet Bolt EV
Сообщений: 2,006
YAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud of
По умолчанию

С помощью библиотеки поддерживающей матричную клавиатуру никак.
YAM1966 вне форума   Ответить с цитированием
Старый 13.11.2018, 23:28   #3
maks_oteam
Новый Пользователь
 
Регистрация: 19.10.2018
Возраст: 35
Регион: Беларусь
Сообщений: 2
maks_oteam is on a distinguished road
По умолчанию

Цитата:
Сообщение от YAM1966 Посмотреть сообщение
С помощью библиотеки поддерживающей матричную клавиатуру никак.
Подскажите как лучше сделать
maks_oteam вне форума   Ответить с цитированием
Старый 13.11.2018, 23:32   #4
YAM1966
Гуру
 
Аватар для YAM1966
 
Регистрация: 01.06.2013
Возраст: 58
Регион: Украина
Машина: Toyota Fortuner 4.0 / Chevrolet Bolt EV
Сообщений: 2,006
YAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud ofYAM1966 has much to be proud of
По умолчанию

Написать собственное сканирование, ничего же сложного...

Бегающий 0 по горизонтали или вертикали, и читать входы.
YAM1966 вне форума   Ответить с цитированием
Старый 01.11.2019, 00:22   #5
архей
Пользователь
 
Регистрация: 07.12.2018
Город: Люберцы
Регион: 50, 90, 150
Машина: пятерочка
Сообщений: 36
архей is on a distinguished road
По умолчанию ?

получилось решить вопрос?
архей вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 19:51.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot