29.05.2016, 06:55 | #1 |
Старший Пользователь
Регистрация: 07.04.2015
Возраст: 44
Регион: 56
Сообщений: 114
|
Скетч для двухпроводных кнопок руля
Прошу помощи.
Нужно подправить скетч . Рулевые кнопки двухпроводные. Скетч сделан для входов А0 и А1 , сейчас А0 на плате не работает. Нужно подправить под А2 вход. Плата Леонардо. //****************** Здесь необходимо указать свои значения *************** int analogPin=0; // пин для подключения кнопок A0 int analogPin1=1; // пин для подключения кнопок A1 int release_button = 931; // значение при отпущенных кнопках int button_release_range = 20; // диапазон значения + - при отпущенных кнопках int button_range = 5; // диапазон значения нажатых кнопок + - int time_holding = 500; // время для удержания кнопок в миллисекундах int time_tinkling = 10; // время исключающее дребезг контактов в миллисекундах int vol_up = 91; // значение кнопки увеличить громкость int vol_down = 242; // значение кнопки уменьшить громкость int alt_tab = 0; // значение кнопки которая будет работать как Alt + Tab int next = 0; // значение кнопки которая будет работать как Next при коротком нажатии и Fast Forward при удержании int previous = 31; // значение кнопки которая будет работать как Previous при коротком нажатии и Rewind при удержании int play_pause = 0; // значение кнопки которая будет работать как Play/Pause при коротком нажатии и Mute при удержании data1 //************************************************** ************************ int data; int data1; unsigned long flag = 0; unsigned long eventTime = 0; unsigned long pauseMillis = 0; void setup() { Keyboard.begin(); } void loop() { data=analogRead(analogPin); data1=analogRead(analogPin1); if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 0) { eventTime=millis(); } if(data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 0) { eventTime=millis(); } //********************** Громкость ************************************ if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= vol_up - button_range && data <= vol_up + button_range && flag == 0) { Remote.increase(); flag = 5; delay(10); Remote.clear(); } if(millis()-eventTime>time_holding && data >= vol_up - button_range && data <= vol_up + button_range && flag == 5 || data >= vol_up - button_range && data <= vol_up + button_range && flag && flag == 3) { Remote.increase(); flag = 3; Remote.clear(); delay(100); } if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= vol_down - button_range && data <= vol_down + button_range && flag == 0) { Remote.decrease(); flag = 6; delay(10); Remote.clear(); } if(millis()-eventTime>time_holding && data >= vol_down - button_range && data <= vol_down + button_range && flag == 6 || data >= vol_down - button_range && data <= vol_down + button_range && flag == 3) { Remote.decrease(); flag = 3; Remote.clear(); delay(100); } //********************** AltTab + Ещё что то ************************************ if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= alt_tab - button_range && data <= alt_tab + button_range) { flag = 1; } if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 1 && pauseMillis == 0) { Keyboard.press(KEY_LEFT_ALT); Keyboard.press(KEY_TAB); Keyboard.release(KEY_TAB); Keyboard.press(KEY_TAB); Keyboard.release(KEY_TAB); flag = 0; pauseMillis = millis(); } if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 1 && pauseMillis != 0) { Keyboard.press(KEY_TAB); Keyboard.release(KEY_TAB); flag = 0; pauseMillis = millis(); } if(pauseMillis && millis()-pauseMillis >= 1500 && data>=release_button - button_release_range && data<=release_button + button_release_range) { flag = 0; pauseMillis = 0; Keyboard.releaseAll(); } if(millis()-eventTime>time_holding && data >= alt_tab - button_range && data <= alt_tab + button_range && flag == 1) { flag = 0; } //********************** Next и Fast Forward ************************************ if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= next - button_range && data <= next + button_range) { flag = 2; } if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 2) { Remote.next(); flag = 0; delay(10); Remote.clear(); } if(millis()-eventTime>time_holding && data >= next - button_range && data <= next + button_range && flag == 2 || data >= next - button_range && data <= next + button_range && flag == 3) { Remote.forward(); flag = 3; Remote.clear(); delay(100); } //********************** Previous и Rewind ************************************ if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= previous - button_range && data <= previous + button_range) { flag = 4; } if(data>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 4) { Remote.previous(); flag = 0; delay(10); Remote.clear(); } if(millis()-eventTime>time_holding && data1 >= previous - button_range && data <= previous + button_range && flag == 4 || data >= previous - button_range && data <= previous + button_range && flag == 3) { Remote.rewind(); flag = 3; Remote.clear(); delay(100); } //********************** Play/pause + Mute ************************************ if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data1 >= play_pause - button_range && data1 <= play_pause + button_range) { flag = 7; } if(data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 7) { Remote.play_pause(); flag = 0; delay(10); Remote.clear(); } if(millis()-eventTime>time_holding && data1 >= play_pause - button_range && data1 <= play_pause + button_range && flag == 7) { Remote.mute(); flag = 0; delay(10); Remote.clear(); } if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 3 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 5 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 6) if(data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 3 || data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 5 || data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 6) { flag = 0; } |
29.05.2016, 09:11 | #2 |
Старший Пользователь
Регистрация: 21.06.2014
Возраст: 47
Регион: 05
Машина: Hyundai Accent II
Сообщений: 556
|
PHP код:
|
29.05.2016, 09:45 | #3 | |
Старший Пользователь
Регистрация: 07.04.2015
Возраст: 44
Регион: 56
Сообщений: 114
|
Цитата:
При таком раскладе не работает кнопка плай пауза , которая на втором проводе. Монитор порта второй провод показывает чётко 1023 и при замыкании на землю -0. |
|
29.05.2016, 09:51 | #4 |
Старший Пользователь
Регистрация: 21.06.2014
Возраст: 47
Регион: 05
Машина: Hyundai Accent II
Сообщений: 556
|
Как Вам сказать... Мне с моего дивана Вашей схемы не видно, может в ней ошибка. Может в подключении ошибка. Этот скетч, скорее всего, писался под определенные резистивные кнопки со своими сопротивлениями. Вы уверены, что у Вас такие же?
|
29.05.2016, 09:57 | #5 |
Старший Пользователь
Регистрация: 07.04.2015
Возраст: 44
Регион: 56
Сообщений: 114
|
Подключение пока такое .
Комп лежит на столе . Из него выведены два провода упраления от ардуины. При замыкании одного провода на землю , в соответсвии с написанным скетчем включается следующий трек. С замыквнием второго провода , должна включится пауза , но никакой реакции не происходит. Повторюсь монитор порта показывает адекватную работу обоих пинов. Дело в неправильном скетче , который я и прошу подкоректировать. |
29.05.2016, 10:05 | #6 | ||
Старший Пользователь
Регистрация: 07.04.2015
Возраст: 44
Регион: 56
Сообщений: 114
|
Цитата:
Цитата:
Теперь пипа Х8 умерла и ей на смену пришёл мощный системник в который и была интегрирована ардуина , в которой в последствии и отказал аналог пин А0. |
||
29.05.2016, 10:18 | #7 |
Старший Пользователь
Регистрация: 21.06.2014
Возраст: 47
Регион: 05
Машина: Hyundai Accent II
Сообщений: 556
|
PHP код:
|
29.05.2016, 17:50 | #8 |
Старший Пользователь
Регистрация: 07.04.2015
Возраст: 44
Регион: 56
Сообщений: 114
|
Не работает.
|
30.05.2016, 06:02 | #9 |
Старший Пользователь
Регистрация: 07.04.2015
Возраст: 44
Регион: 56
Сообщений: 114
|
В отпусках все ?
|
31.05.2016, 10:22 | #10 |
Старший Пользователь
Регистрация: 07.04.2015
Возраст: 44
Регион: 56
Сообщений: 114
|
Прошу знающих помоч.
Вопрос стоит очень остро. |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|