Громкость(+) - 175
Громкость(-) - 174
Вид для печати
Громкость(+) - 175
Громкость(-) - 174
Подскажите как назначить в HotKey сочетание клавиш (пусть это будет Alt+D3 ... след. трек с CF) на ту же кнопку энкодера!? с однозначными 175, 174, 173 понятно.. назначаются, работают. HKey_config видимо не понимает что я от него хочу :( Как правильно вбивать последовательность?
А что за клавиши такая D3?
Нужно сначала коротко нажать Alt потом D далее 3, нажимать нужно по очереди
Спасибо за оперативные ответы :) Так вводил, только почему то нажатие буквы D игнорируется и получается строка вида "key1=18 key2=68", т.е. alt и цифра ... при повторном нажатии буквы D кнопка перехватывается получается строка "key1=18 key2=56 key3=68" (цифры тут вписал наугад) , но CF никак не реагирует :( Кто не прав?
Вот так должно быть
Цитата:
<57>Key1=18 Key2=68 Key3=51 />
Ещё раз спасибо, не понятно почему не работало в тот раз, сейчас всё ОК :)
Стал обладателем энкодера ALPS , 5ть ног!!!
http://img-fotki.yandex.ru/get/4514/...c3ddae62_L.jpg
ПОДСКАЖИТЕ ПОЖАЛУЙСТА
1. При прокрутке Энкодера звук прибавляется с задержкой на секунду,а то и больше? (использовал конденсаторы)-ниже
http://neoviservis.narod.ru/images/cap_k10_17_475.jpg
2. Как подключить к Ардуине в цепь что бы работала кнопка?
Конденсатор очень большой емкости , будет тормозить. Нужно максимум 0,1мкф, минимум 0,01мкф
http://www.compcar.ru/forum/attachme...5&d=1306146070
Спасибо Chip. Работает отлично, а что можно сделать с задержкой?
Конденсаторы поменять
не могу скачать прогу с шапки (
Попробуй сейчас
работает спасибо
прерывания только на 2 и 3 пинах доступны? Как 2 энкодер цеплять?
Можно в главном цикле опрашивать порты
:o а можно как-нить для того кто первый день ваще видит арудину?)))
господа нужна помощь....
Loop{ это и есть главный цикл }
например мы садим энкодеры на каналы 2,3 и 4,5
поправьте плз
PHP код:
void loop()
{
if(digitalRead(2)==HIGH){
bytes[0]=25;
Serial.write( bytes,2);
bytes[0]=0;
}else{
bytes[0]=5;
Serial.write( bytes,2);
bytes[0]=0;
}
if(digitalRead(3)==HIGH){
bytes[0]=5;
Serial.write( bytes,2);
bytes[0]=0;
}else{
bytes[0]=25;
Serial.write( bytes,2);
bytes[0]=0;
}
if(digitalRead(4)==HIGH){
bytes[0]=35;
Serial.write( bytes,2);
bytes[0]=0;
}else{
bytes[0]=15;
Serial.write( bytes,2);
bytes[0]=0;
}
if(digitalRead5)==HIGH){
bytes[0]=15;
Serial.write( bytes,2);
bytes[0]=0;
}else{
bytes[0]=35;
Serial.write( bytes,2);
bytes[0]=0;
}
Все гораздо сложнее, изучайте Код Грея
энкодера под рукой нет , так что код проверить не могу.
PHP код:
#define encoder0PinA 2
#define encoder0PinB 3
#define encoder1PinA 4
#define encoder1PinB 5
byte bytes[2]={0,7} ;
void setup()
{
pinMode(encoder0PinA, INPUT);
digitalWrite(encoder0PinA, HIGH); // подключить подтягивающий резистор
pinMode(encoder0PinB, INPUT);
digitalWrite(encoder0PinB, HIGH); // подключить подтягивающий резистор
pinMode(encoder1PinA, INPUT);
digitalWrite(encoder1PinA, HIGH); // подключить подтягивающий резистор
pinMode(encoder1PinB, INPUT);
digitalWrite(encoder1PinB, HIGH); // подключить подтягивающий резистор
attachInterrupt(0, doEncoderA, FALLING); // настроить прерывание interrupt 0 на pin 2
attachInterrupt(1, doEncoderB, FALLING); // настроить прерывание interrupt 0 на pin 3
Serial.begin (115200);
}
unsigned graydecode(unsigned gray)
{
unsigned bin;
for (bin = 0; gray; gray >>= 1)
bin ^= gray;
return bin;
}
void loop()
{
static uint8_t tmp_code = 0;
uint8_t gray_code = digitalRead(encoder1PinA) | (digitalRead(encoder1PinB) << 1),
code = graydecode(gray_code);
if (code == 0)
{
if (tmp_code == 3)
{
bytes[0]=8;
bytes[1]=7;
Serial.write( bytes,2);
bytes[0]=0;
} else if (tmp_code == 1)
{
bytes[0]=9;
bytes[1]=7;
Serial.write( bytes,2);
bytes[0]=0;
}
}
tmp_code = code;
delay(2);
}
// обработка прерывания
void doEncoderA()
{
if(digitalRead(encoder0PinB)==HIGH){bytes[0]=25;}else{bytes[0]=5;}
Serial.write( bytes,2);
bytes[0]=0;
}
// обработка прерывания
void doEncoderB()
{
if(digitalRead(encoder0PinA)==HIGH){bytes[0]=5;}else{bytes[0]=25;}
Serial.write( bytes,2);
bytes[0]=0;
}
отлично работает!!!!
довольно большой дребезг.. кондеры по 9 нФ
Дребезг на каких входах? Кондеры можно до 0,1мкф увеличить или подобрать компромиссный вариант, с 0,1 мкф могут быть пропуски при резком вращении
на 2 и 3 субъективно сильнее.. и бывает что за 1 щелчек по 2 посылки. правда грешу на энкодер...один работает менее стабильно. перегрел я его походу
Пробуй кондерами пофиксить, можно конечно и программно, но это сложнее будет для тебя
спасибо попытаюсь
У менявот такой энкодер:
http://i008.radikal.ru/1111/dd/a01f32c1adf6t.jpg http://s017.radikal.ru/i420/1111/fb/eacd2bd9b3f5t.jpg
GND и D4 - к этим контактам подключается кнопка?
Они замыкаются при нажатии.
А вот оставшиеся 3 контакта почему-то прозваниваются между собой, сопротивления никакого нет, это нормально?
А вот если включить режим пищалки на тестере, то прозванивается только земля на кнопке и средний контакт, все остальные между собой не звонятся.
Может быть схему в таком случае можно упростить?
Убрать то, что я выделил красным?
Все равно они между собой уже соединены общей землей.
На этой плате куча резисторов и еще чего-то (может быть конденсаторов), они мешать не будут или их стоит выпаять?
На 2-х таких платах хочу задействовать:
2 энкодера, по одному на каждой;
6 кнопок (по 3 на каждой), соединить все через разные резисторы;
и подсветку, на разъеме магнитолы есть провод, при включении габарит на котором появляется +12В
Еще как бы понять где контакт А, а где контакт В.
Или не важно, потом если что поменял местами или все равно буду назначать где какая кнопка?)
Как-то странно он работает, вот данные из монитора:
Вращение против часовой стрелки, 1 оборот:
25 7 25 7 0 8
По часовой стрелке, 1 оборот:
7 5 7 0 8
Нажатие на кнопку:
0 8 5 8
Все время эти значения.
http://i011.radikal.ru/1111/c0/873155b136c0.jpg
Так нужно еще программы в винде настроить например на регулировку громкости
А это нормально что программа выдает сразу много разных значений?
А не так, как тут: http://www.compcar.ru/forum/showpost...6&postcount=19
Припаяно так:
http://i011.radikal.ru/1111/c0/873155b136c0.jpg
А ты этот монитор использовал?
Тогда вообще не понятно откуда такие значения, возможно с подключением что то напутал
Припаяно и подключено вот так:
http://s58.radikal.ru/i162/1111/90/84e5fdc904c6t.jpg
Скетч из первого поста.
Клавиши кстати назначил, регулировка громкости работает.
Но с нажатием ничего не выходит - при нажатии программка HKey_config.exe ничего не видит.
Настройки сейчас такие:
<1817>Key1=18 Key2=17 Key3=38 />
<1797>Key1=18 Key2=17 Key3=40 />
Заметил, если крутить энкодер быстрее, то значения равны 2053 в одну сторону и 2073 в другую.
Конденсаторы на 0,01 мкф.