|  | 
|  13.11.2018, 22:13 | #1 | 
| Новый Пользователь Регистрация: 19.10.2018 Возраст: 36 Регион: Беларусь 
					Сообщений: 2
				  |  Управление подрулевым джойстиком Добрый день. Имеется код управления джойстиком: #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пин. Вопрос в следующем: на крутелке постоянно замкнута одна из пар контактов, из-за этого код не хочет работать, если разомкнуть (физически), то код рабочий и все кнопки кроме крутелки работают. Помогите решить проблему. | 
|   |   | 
|  13.11.2018, 23:14 | #2 | 
| Гуру  Регистрация: 01.06.2013 Возраст: 59 Регион: Украина Машина: Toyota Fortuner 4.0 / Chevrolet Bolt EV 
					Сообщений: 2,006
				            |   С помощью библиотеки поддерживающей матричную клавиатуру никак. | 
|   |   | 
|  13.11.2018, 23:28 | #3 | 
| Новый Пользователь Регистрация: 19.10.2018 Возраст: 36 Регион: Беларусь 
					Сообщений: 2
				  |   | 
|   |   | 
|  13.11.2018, 23:32 | #4 | 
| Гуру  Регистрация: 01.06.2013 Возраст: 59 Регион: Украина Машина: Toyota Fortuner 4.0 / Chevrolet Bolt EV 
					Сообщений: 2,006
				            |   Написать собственное сканирование, ничего же сложного...  Бегающий 0 по горизонтали или вертикали, и читать входы. | 
|   |   | 
|  01.11.2019, 00:22 | #5 | 
| Пользователь  Регистрация: 07.12.2018 Город: Люберцы Регион: 50, 90, 150 Машина: пятерочка 
					Сообщений: 36
				  |  ? получилось решить вопрос? | 
|   |   | 
|  | 
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
| 
 |  |