Нет, отключил вообще обвязку - сразу появляется 0 после запуска конфига.
Вот так выглядит всё: http://youtu.be/kIB3uzoJcxc
Нет, отключил вообще обвязку - сразу появляется 0 после запуска конфига.
Вот так выглядит всё: http://youtu.be/kIB3uzoJcxc
Без резистора смещения на входе A5 будет 0
Прошу простить мою упрямость ) Но оч хочу разобраться, что всё-таки делаю не так.
Вот, напаял всё прямо на плату. Сопротивление из двух (прямо 3.3 не было, из пары получилось 3.18кОм). Через переключатель подключено сопротивление около 200 Ом.
Ничего не меняется. Всегда "0".
https://www.youtube.com/watch?featur...&v=KiEItNSZz84
Админы на форумах, для того что бы помогатьПрошу простить мою упрямость
Судя по морганию синего светодиода, у тебя не залит скетч
Последний раз редактировалось Chip; 15.11.2012 в 03:08.
Спасибо за помощь! Да, делал по инстре, про скетч соотв забыл.
Теперь перехват работает + диапазон сопротивлений мне вполне подходит, супер.
Но теперь затык такой. В конфиге ловлю сопротивление, фиксирую нажатие на клавиатуре, получаю строку вида <895>Key1=17 Key2=18 Key3=18 />, сохраняю.
Запускаю Hotkey.exe, он ловит сопротивление, показывает 895, но нажатия в винде не эмулирует ( Пробовал разные символы задавать.
И ещё вопросик: а после отключения ардуино скетч придётся снова заливать? как сделать, чтобы он там был постоянно прописан?
Достаточно прошить 1 раз и он там будет находится, пока не прошьешь новый скетча после отключения ардуино скетч придётся снова заливать? как сделать, чтобы он там был постоянно прописан?
Что за комбинация горячих клавиш такая?Но теперь затык такой. В конфиге ловлю сопротивление, фиксирую нажатие на клавиатуре, получаю строку вида <895>Key1=17 Key2=18 Key3=18 />, сохраняю.
Попробуй курсор эмулировать
Я пробую эмулировать любые клавиши, не получается. Не жмёт оно их.
Хоть сочетания, хоть просто "1". (
Hotkey.exe показывает (если его развернуть) пойманный код, но больше ничего не происходит
В веду в курс дел.
У меня Adroino nano 3.0 c замкнутыми ножками 25 и 26 (спасибо Chip за внятное объяснение где и куда)
сделано по схеме
только без кон 0.01мфр.
Кнопки руля подключены все как надо рабочие, сняты данные всех кнопок.
скетч от Hamster единственный который работал
(у него как и у меня тоже хондовские кнопки руля может из за этого).
Код:/// Для рулевых кнопок // Задержки между нажатиями конкретных кнопок, миллисекунды #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 (175) #define KEY_CH_PLUS (330) #define KEY_VOL_MINUS (0) #define KEY_VOL_PLUS (73) #define KEY_MODE (530) // Погрешность при чтении кнопок #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(9600); } void loop() { ReadSteering(); delay(50); } // Читает рулевые кнопки и пишет в порт код нажатой кнопки void ReadSteering() { unsigned long TimeKeyPressed; int KeyPressed = NONE; int dt1 = analogRead(5); delay(50); int dt2 = analogRead(5); 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); } }
все работало стабильно на XP и на Win 7, установил Win 8 Pro и после этого тишина.
Сам ардионо находит и опознан я даже с машины заново закачивал скеч все проходило без проблем, обновлял драйвера для Win8 на всякий случай нечего не изменилось.
В Serial Monitor смотрел при нажатии кнопок нет реакции, по идее вроде проблема в дровах, но они последние которые я нашел для Win8 Pro может нужны какие то другие? я ставил CDM 2.08.24 WHQL Certified, и закачивал через Ardoino 1.0.1.
Завтра попробую подключить к лептопу проверить работает все на XP Pro SP3 но это все ровно не помогает найти причину, есть ли у кого то идеи в чем может быть проблема?
Кроме идей перейти на Win7.
Причина по которой я перешел на Win 8 Pro это то что она выходит из Гибернацим очень быстро 30 сек, со временем приобрету SSD и будет за 5-10 сек.
Вытащил его с машины начал экспериментировать заметил что у меня стояло сопротивление 4.5 кило ом заменил на 3.28Ком припаял 1 кнопку залил скеч вижу сколько выдает при нажатии, решил вернуть в машину и записать новые значения кнопок но тут он взбесился и начал выдавать в Serial Monitor всякую хрень без остановки в виде
&&&&&&&&&&&&&&&&&&
0
&&&&&&&&&&&&&&&&&
0
&&&&&&&&&&&&&&&&&
там конечно были немножко другие символы.
Раньше помню тоже как то было такое вроде, но решили как то.
В чем может быть проблема проверял кнопки руля работают и через тестер дают сопротивление.
Это нормально.
Serial Monitor пытается отображать бинарные значения в кодировке ASC-II
А Вы что хотели в нем увидеть, реальные обозначения или сопротивления нажатых кнопок?
Последний раз редактировалось Chip; 23.11.2012 в 04:16.
Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)