Показано с 1 по 5 из 5
  1. #1
    Новичок
    Регистрация
    04.04.2016
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Arduino leonardo не определяестя после перезагрузки ПК

    Здравствуйте!

    Имеется Arduino купленная здесь
    С помощью неё были подключены резистивные кнопки по этой статье
    Всё работает замечательно, есть одно но! после перезагрузки компьютера arduino не определяется.
    Для того чтобы она определилась приходится отключать её от usb и подключать обратно

    Вот скетч
    PHP код:
    //****************** Здесь необходимо указать свои значения ***************

    int analogPin=0// пин для подключения кнопок, по умолчанию A0

    int release_button 619// значение при отпущенных кнопках
    int button_release_range 50// диапазон значения + - при отпущенных кнопках
    int button_range 10// диапазон значения нажатых кнопок + -
    int time_holding 500// время для удержания кнопок в миллисекундах
    int time_tinkling 10// время исключающее дребезг контактов в миллисекундах
    int vol_up 42// значение кнопки увеличить громкость
    int vol_down 14// значение кнопки уменьшить громкость
    int alt_tab 244// значение кнопки которая будет работать как Alt + Tab
    int next 84// значение кнопки которая будет работать как Next при коротком нажатии и Fast Forward при удержании
    int previous 147// значение кнопки которая будет работать как Previous при коротком нажатии и Rewind при удержании
    int play_pause 390// значение кнопки которая будет работать как Play/Pause при коротком нажатии и Mute при удержании

    //**************************************************************************

    int data
    unsigned long flag 0
    unsigned long eventTime 0
    unsigned long pauseMillis 0;

    void setup() 

    Keyboard.begin(); 


    void loop() 

    data=analogRead(analogPin); 
    if(
    data>=release_button button_release_range && data<=release_button button_release_range && flag == 0

    eventTime=millis(); 


    //********************** Громкость ************************************

    if(millis()-time_tinkling && millis()-eventTime<time_holding-&& 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 == || 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-&& 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 == || 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-&& 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 == && 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 == && pauseMillis != 0

    Keyboard.press(KEY_TAB); 
    Keyboard.release(KEY_TAB); 
    flag 0
    pauseMillis millis(); 


    if(
    pauseMillis && millis()-pauseMillis >= 800 && 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-&& 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 == || 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-&& data >= previous button_range && data <= previous button_range
    {  
    flag 4


    if(
    data>=release_button button_release_range && data<=release_button button_release_range && flag == 4

    Remote.previous(); 
    flag 0
    delay(10); 
    Remote.clear(); 


    if(
    millis()-eventTime>time_holding && data >= previous button_range && data <= previous button_range && flag == || 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-&& data >= play_pause button_range && data <= play_pause button_range
    {  
    flag 7


    if(
    data>=release_button button_release_range && data<=release_button button_release_range && flag == 7

    Remote.play_pause();  
    flag 0
    delay(10); 
    Remote.clear(); 


    if(
    millis()-eventTime>time_holding && data >= play_pause button_range && data <= 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 == || data>=release_button button_release_range && data<=release_button button_release_range && flag == || data>=release_button button_release_range && data<=release_button button_release_range && flag == 6

    flag 0
    }  

    На форуме находил похожую проблему, но там сказано "В 3-й версии ардуино нано допущена ошибка"
    Может быть кто нибудь сталкивался с подобной проблемой?
    Буду рад любой помощи.

  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: Arduino leonardo не определяестя после перезагрузки ПК

    На форуме находил похожую проблему, но там сказано "В 3-й версии ардуино нано допущена ошибка"
    У Вас же не arduino Nano V3, а Leonardo и судя по скетчу работает она в режиме HID устройсва(клавиатура)
    Последний раз редактировалось Chip; 07.04.2016 в 12:04.

  3. #3
    Новичок
    Регистрация
    04.04.2016
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Arduino leonardo не определяестя после перезагрузки ПК

    Совершенно верно. Просто после того как компьютер включится, кнопки на руле не работают, приходится постоянно перезагружать леонарно.
    Вот я и подумал что может быть в леонардо тоже есть какой нибудь глюк

    Вопрос в том, как сделать чтобы она определялась после перезагрузки.
    Последний раз редактировалось Jester85; 07.04.2016 в 13:24.

  4. #4
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: Arduino leonardo не определяестя после перезагрузки ПК

    По леонардо не подскажу.
    Последний раз редактировалось Chip; 07.04.2016 в 19:33.

  5. #5
    Новичок
    Регистрация
    28.11.2011
    Возраст
    51
    Сообщений
    9
    Вес репутации
    154

    По умолчанию Re: Arduino leonardo не определяестя после перезагрузки ПК

    У меня такая же фигня с модулем на Attiny85. Может поднятся после перезагрузки , а может нет. Причем в разных портах УСБ и на разных компах статистика меняется. Еще заметил что сам комп (БИОС понимает 100%, что к нему подключена "УСБ клава") , а вот при загрузки Винды теряется.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

Ваши права

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