Страница 45 из 55 ПерваяПервая ... 3539404142434445464748495051 ... ПоследняяПоследняя
Показано с 441 по 450 из 561

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    56
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Реакция должна быть такой же как и при нажатии на клавиатуре.
    Последний раз редактировалось Chip; 09.02.2013 в 17:33.

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

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Проверить можно тестером. Нажимать кнопки и записать какие при этом будут на тестере показания

  3. #3
    Пользователь Аватар для Les1at
    Регистрация
    04.06.2010
    Возраст
    36
    Сообщений
    86
    Вес репутации
    212

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Chip

    а есть исходники HotKey? если можно, хотел бы их получить, хочу прикрутить ещё rotary encoder.
    Хонда Клуб Пермский край Пермь
    Инструкции по ремонту и эксплуатации Honda
    - http://honda-59.ru/books

  4. #4
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    39
    Сообщений
    229
    Вес репутации
    416

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Les1at, +1
    Тоже энкодер прикручиваю.

    Chip,
    расскажи, пожалуйста, как в Hotkey реализована функция нажатия клавиш. здесь я что-то написал, но кривовато получилось. кнопки работают, но не отображаются при настройке клавиш в центрифуге например.

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

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от manu_245 Посмотреть сообщение
    Chip,
    расскажи, пожалуйста, как в Hotkey реализована функция нажатия клавиш. здесь я что-то написал, но кривовато получилось. кнопки работают, но не отображаются при настройке клавиш в центрифуге например.
    В key1 код клавиши
    key1 : LongWord;
    keybd_event((key1), 0,0,0); // нажать на клавишу
    keybd_event((key1), 0,KEYEVENTF_KEYUP,0); //отпустить клавишу
    Последний раз редактировалось Chip; 12.04.2013 в 12:32.

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

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от Les1at Посмотреть сообщение
    Chip

    а есть исходники HotKey? если можно, хотел бы их получить, хочу прикрутить ещё rotary encoder.
    Для подключения энкодера не нужно править программу, достаточно прописать функцию работы с энкодером в коде Arduino

  7. #7
    Пользователь Аватар для Les1at
    Регистрация
    04.06.2010
    Возраст
    36
    Сообщений
    86
    Вес репутации
    212

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от Chip Посмотреть сообщение
    Для подключения энкодера не нужно править программу, достаточно прописать функцию работы с энкодером в коде Arduino
    так и сделал, на примере

    http://www.compcar.ru/forum/showthre...?t=4640&page=8

    // Для рулевых кнопок
    // Задержки между нажатиями конкретных кнопок, миллисекунды
    #define KEY_CH_MINUS_DELAY (200)
    #define KEY_CH_PLUS_DELAY (200)
    #define KEY_VOL_MINUS_DELAY (150)
    #define KEY_VOL_PLUS_DELAY (150)
    #define KEY_MODE_DELAY (300)

    // Значения кнопок
    #define KEY_CH_MINUS (445)
    #define KEY_CH_PLUS (640)
    #define KEY_VOL_MINUS (90)
    #define KEY_VOL_PLUS (270)
    #define KEY_MODE (805)

    // Погрешность при чтении кнопок
    #define KEY_DELTA (30)

    // Коды кнопок, что отсылаем в порт внешней проге
    #define CH_MINUS (1)
    #define CH_PLUS (2)
    #define VOL_MINUS (3)
    #define VOL_PLUS (4)
    #define MODE (5)
    #define NONE (0)


    unsigned long LastTimeKeyPressed = millis();
    int LastKeyPressed = NONE;

    void setup()
    {
    Serial.begin(57600);
    }

    void loop()
    {
    ReadSteering();
    delay(50);
    }

    // Читает рулевые кнопки и пишет в порт код нажатой кнопки
    void ReadSteering()
    {
    unsigned long TimeKeyPressed;
    int KeyPressed = NONE;
    int dt1 = analogRead(0);
    delay(50);
    int dt2 = analogRead(0);
    if (abs(dt1-dt2)<=5 and dt1<900 ) //если нет дребезга и что-то есть
    {
    // Регистрируем время нажатия кнопки
    TimeKeyPressed = millis();

    //CH_MINUS
    if ( (dt1-KEY_DELTA <= KEY_CH_MINUS) and (dt1+KEY_DELTA >= KEY_CH_MINUS) )
    {
    if ( (LastKeyPressed != CH_MINUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_MINUS_DELAY) )
    {
    LastKeyPressed = CH_MINUS;
    KeyPressed = CH_MINUS;
    LastTimeKeyPressed = TimeKeyPressed;
    }
    }
    //CH_PLUS
    else if ( (dt1-KEY_DELTA <= KEY_CH_PLUS) and (dt1+KEY_DELTA >=KEY_CH_PLUS) )
    {
    if ( (LastKeyPressed != CH_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_PLUS_DELAY) )
    {
    LastKeyPressed = CH_PLUS;
    KeyPressed = CH_PLUS;
    LastTimeKeyPressed = TimeKeyPressed;
    }
    }
    //VOL_MINUS
    else if ( (dt1-KEY_DELTA <= KEY_VOL_MINUS) and (dt1+KEY_DELTA >=KEY_VOL_MINUS) )
    {
    if ( (LastKeyPressed != VOL_MINUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_VOL_MINUS_DELAY) )
    {
    LastKeyPressed = VOL_MINUS;
    KeyPressed = VOL_MINUS;
    LastTimeKeyPressed = TimeKeyPressed;
    }
    }
    //VOL_PLUS
    else if ( (dt1-KEY_DELTA <= KEY_VOL_PLUS) and (dt1+KEY_DELTA >=KEY_VOL_PLUS) )
    {
    if ( (LastKeyPressed != VOL_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_VOL_PLUS_DELAY) )
    {
    LastKeyPressed = VOL_PLUS;
    KeyPressed = VOL_PLUS;
    LastTimeKeyPressed = TimeKeyPressed;
    }
    }
    //MODE
    else if ( (dt1-KEY_DELTA <= KEY_MODE) and (dt1+KEY_DELTA >=KEY_MODE) )
    {
    if ( (LastKeyPressed != MODE) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_MODE_DELAY) )
    {
    LastKeyPressed = MODE;
    KeyPressed = MODE;
    LastTimeKeyPressed = TimeKeyPressed;
    }
    }

    if (KeyPressed != NONE)
    {
    Serial.print(char(255));
    Serial.print(KeyPressed,DEC);
    }

    //Serial.print(dt1,DEC);
    //Serial.print(" ");
    //Serial.println(dt2,DEC);
    }
    }
    Хонда Клуб Пермский край Пермь
    Инструкции по ремонту и эксплуатации Honda
    - http://honda-59.ru/books

  8. #8
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    39
    Сообщений
    229
    Вес репутации
    416

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Chip, спасибо. Все получилось

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

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Еще забыл написать, нужно паузу между нажатием и отпусканием выдержать 10-30 мс

  10. #10
    Новичок
    Регистрация
    23.05.2013
    Сообщений
    5
    Вес репутации
    160

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Добрый день. Подскажите возможно ли параллельная работа рулевых кнопок со штатной магнитолой и carduino?

Страница 45 из 55 ПерваяПервая ... 3539404142434445464748495051 ... ПоследняяПоследняя

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

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

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

Ваши права

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