PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Вопросы и ответы

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2012, 20:09   #1
Alex-pet
Старший Пользователь
 
Аватар для Alex-pet
 
Регистрация: 28.08.2011
Город: Минск
Регион: Беларусь
Машина: Mazda 6
Сообщений: 150
Alex-pet is on a distinguished road
По умолчанию Можно ли подключить энкодер магнитолы к контроллеру мышки?

Добрый день!
Подскажите, пожалуйста, может кто сталкивался: можно ли подключить поворотный энкодер от магнитолы к контроллеру мышки? Разобрал мышку, там стоит оптический энкодер. В магнитоле всего 2 поворотных энкодера, первый удалось подключить через Ардуино на регулировку громкости, а второй хотелось бы сделать в качестве прокрутки, как колесо прокрутки в мышке. Вот фото энкодера магнитолы и разобранной мышки (успел удалить из мышки оптический приёмник):

Нажмите на изображение для увеличения
Название: encoder1.jpg
Просмотров: 2218
Размер:	112.1 Кб
ID:	28401
Нажмите на изображение для увеличения
Название: encoder2.jpg
Просмотров: 2392
Размер:	103.5 Кб
ID:	28402
Нажмите на изображение для увеличения
Название: мышка.jpg
Просмотров: 1052
Размер:	241.3 Кб
ID:	28403

Спасибо!
Alex-pet вне форума   Ответить с цитированием
Старый 06.11.2012, 22:31   #2
Gorynch
Старший Пользователь
 
Аватар для Gorynch
 
Регистрация: 22.04.2009
Возраст: 42
Город: Москва
Регион: 77, 97, 99, 177
Машина: 2005\Nissan\X-Trail
Сообщений: 775
Gorynch has a reputation beyond reputeGorynch has a reputation beyond reputeGorynch has a reputation beyond reputeGorynch has a reputation beyond reputeGorynch has a reputation beyond reputeGorynch has a reputation beyond reputeGorynch has a reputation beyond reputeGorynch has a reputation beyond repute
По умолчанию

Почему второй тоже через адруины не сделать?

К этой мышке не подключишь - энкодер резистивный, а в мышке смещённые оптопары
__________________
В детстве, чтобы маленький Змей Горыныч был как все, мама заплетала его в косичку
Gorynch вне форума   Ответить с цитированием
Старый 06.11.2012, 23:01   #3
Alex-pet
Старший Пользователь
 
Аватар для Alex-pet
 
Регистрация: 28.08.2011
Город: Минск
Регион: Беларусь
Машина: Mazda 6
Сообщений: 150
Alex-pet is on a distinguished road
По умолчанию

Дело в том, что я не очень дружу с Ардуино и первый я подключил просто залив готовый скетч и посмотрев схему подключения на соседнем форуме. Может, Вы хорошо с ним дружите? Может, подскажете, как правильно подключить второй энкодер к Ардуино?

Вот скетч на подключение двух енкодеров (взят с http://www.compcar.ru/forum/showthread.php?p=98884):

PHP код:
#define encoder0PinA  2 
#define encoder0PinB  3
#define encoder0PinC  4
#define encoder1PinA  5
#define encoder1PinB  6
#define encoder1PinC  7
byte bytes[2]={0,7} ;     

void setup()     
{       
  
pinMode(encoder0PinAINPUT);     
  
digitalWrite(encoder0PinAHIGH);     // подключить подтягивающий резистор    
  
pinMode(encoder0PinBINPUT);     
  
digitalWrite(encoder0PinBHIGH);    // подключить подтягивающий резистор   
  
pinMode(encoder0PinCINPUT);     
  
digitalWrite(encoder0PinCHIGH);    // подключить подтягивающий резистор  
  
pinMode(encoder1PinAINPUT);     
  
digitalWrite(encoder1PinAHIGH);    // подключить подтягивающий резистор    
  
pinMode(encoder1PinBINPUT);     
  
digitalWrite(encoder1PinBHIGH);    // подключить подтягивающий резистор  
  
pinMode(encoder1PinCINPUT);     
  
digitalWrite(encoder1PinCHIGH);    // подключить подтягивающий резистор  
    
  
attachInterrupt(0doEncoderAFALLING);  // настроить прерывание interrupt 0 на pin 2    
  
attachInterrupt(1doEncoderBFALLING);  // настроить прерывание interrupt 0 на pin 3    
  
Serial.begin (115200);    
}    

unsigned graydecode(unsigned gray

 
unsigned bin

 for (
bin 0graygray >>= 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]=9
       
bytes[1]=6;    
      
Serial.writebytes,2);   
      
bytes[0]=0;   
     } else if (
tmp_code == 1
               { 
                  
bytes[0]=9
                 
bytes[1]=7;    
                  
Serial.writebytes,2);   
                  
bytes[0]=0;  
               } 
  } 
 
tmp_code code
 
delay(2); 
 
  if(
digitalRead(encoder0PinC)==LOW)  
   { 
     
bytes[1]=8
      
Serial.writebytes,2);   
      while(
digitalRead(encoder0PinC)==LOW){delay(50);} 
       
bytes[1]=7;  
   }
    if(
digitalRead(encoder1PinC)==LOW)  
   { 
     
bytes[1]=6
      
Serial.writebytes,2);   
      while(
digitalRead(encoder1PinC)==LOW){delay(50);} 
       
bytes[1]=7;  
   }
}    

// обработка прерывания    
void doEncoderA()    
{    
  if(
digitalRead(encoder0PinB)==HIGH){bytes[0]=25;}else{bytes[0]=5;}     
  
Serial.writebytes,2);   
  
bytes[0]=0;  
}      

// обработка прерывания    
void doEncoderB()    
{    
    if(
digitalRead(encoder0PinA)==HIGH){bytes[0]=5;}else{bytes[0]=25;}    
    
Serial.writebytes,2);   
    
bytes[0]=0;    

Понимаю что задействованы контакты 2, 3, 4, 5, 6, 7, но для подключения первого понадобилось 4 контакта.
Первый подключался по такой схеме:

Нажмите на изображение для увеличения
Название: enc.jpg
Просмотров: 1595
Размер:	46.1 Кб
ID:	28428

И использовался соответствующий скетч, а вот как два подключить не знаю

Заранее большое большое спасибо!
Alex-pet вне форума   Ответить с цитированием
Старый 06.11.2012, 23:26   #4
Alex-pet
Старший Пользователь
 
Аватар для Alex-pet
 
Регистрация: 28.08.2011
Город: Минск
Регион: Беларусь
Машина: Mazda 6
Сообщений: 150
Alex-pet is on a distinguished road
По умолчанию

Или, может кто-нибудь знает в каких мышках стоят резистивные энкодеры, чтобы можно было подключить энкодер от магнитолы?
Alex-pet вне форума   Ответить с цитированием
Старый 07.11.2012, 10:01   #5
Gorynch
Старший Пользователь
 
Аватар для Gorynch
 
Регистрация: 22.04.2009
Возраст: 42
Город: Москва
Регион: 77, 97, 99, 177
Машина: 2005\Nissan\X-Trail
Сообщений: 775
Gorynch has a reputation beyond reputeGorynch has a reputation beyond reputeGorynch has a reputation beyond reputeGorynch has a reputation beyond reputeGorynch has a reputation beyond reputeGorynch has a reputation beyond reputeGorynch has a reputation beyond reputeGorynch has a reputation beyond repute
По умолчанию

Цитата:
attachInterrupt(0, doEncoderA, FALLING); // настроить прерывание interrupt 0 на pin 2
attachInterrupt(1, doEncoderB, FALLING); // настроить прерывание interrupt 0 на pin 3
это настройка прерываний по спадающему фронту на соответствующих ножках контроллера - к ним подключены две ножки энкодера, на которых напряжения из "1" падает в "0", соответственно прерывание срабатывает от той, на которой раньше это произошло - это определяет направление поворота

Чтобы подключить ещё один энкодер нужно добавить ещё два аналогичных прерывания - с ардуиной не сильно знаком, как сделать сходу не подскажу

первый подключался 3 контактами + земля, поэтому и 4 точки подключения
3 контакта - один на нажатие, два для определения направления поворота
__________________
В детстве, чтобы маленький Змей Горыныч был как все, мама заплетала его в косичку
Gorynch вне форума   Ответить с цитированием
Старый 07.11.2012, 17:36   #6
Hamster
Больной. Диагноз "Car PC"
 
Аватар для Hamster
 
Регистрация: 01.09.2005
Возраст: 50
Город: Москва
Регион: 77, 97, 99, 177
Машина: 08\Acura\MDX •••• 07\Honda\Civic 4D
Сообщений: 4,379
Hamster is a splendid one to beholdHamster is a splendid one to beholdHamster is a splendid one to beholdHamster is a splendid one to beholdHamster is a splendid one to beholdHamster is a splendid one to beholdHamster is a splendid one to behold
По умолчанию

Цитата:
Сообщение от Gorynch Посмотреть сообщение
Чтобы подключить ещё один энкодер нужно добавить ещё два аналогичных прерывания - с ардуиной не сильно знаком, как сделать сходу не подскажу
Не, не получится. У ардуины только 2 внешних прерывания, которые в этом скетче заняты. Придется цикл городить.
__________________
Старый проект Honda Accord RHD
Теперь будет Acura MDX 2008 и Honda Civic 4D 2007 и Mitsubishi Outlander XL 2011
Hamster вне форума   Ответить с цитированием
Старый 07.11.2012, 18:30   #7
Alex-pet
Старший Пользователь
 
Аватар для Alex-pet
 
Регистрация: 28.08.2011
Город: Минск
Регион: Беларусь
Машина: Mazda 6
Сообщений: 150
Alex-pet is on a distinguished road
По умолчанию

Hamster, а может Вы знаете в каких мышках стоит механический энкодер, подключился бы к контроллеру мышки, мне бы этого хватило. Google ничего конкретного не выдаёт, а вот тут человек сделал примерно то, что мне нужно, осталось подобрать донор.
Спасибо!
Alex-pet вне форума   Ответить с цитированием
Старый 07.11.2012, 18:36   #8
Hamster
Больной. Диагноз "Car PC"
 
Аватар для Hamster
 
Регистрация: 01.09.2005
Возраст: 50
Город: Москва
Регион: 77, 97, 99, 177
Машина: 08\Acura\MDX •••• 07\Honda\Civic 4D
Сообщений: 4,379
Hamster is a splendid one to beholdHamster is a splendid one to beholdHamster is a splendid one to beholdHamster is a splendid one to beholdHamster is a splendid one to beholdHamster is a splendid one to beholdHamster is a splendid one to behold
По умолчанию

Не, не знаю. И лучше на "ты"
Попробуй на компкаре в теме про энкодеры народ поспрашать, у тебя же есть все что нужно для подключения (я про ардуино), надо только скетч поправить.
__________________
Старый проект Honda Accord RHD
Теперь будет Acura MDX 2008 и Honda Civic 4D 2007 и Mitsubishi Outlander XL 2011
Hamster вне форума   Ответить с цитированием
Старый 07.11.2012, 18:47   #9
Alex-pet
Старший Пользователь
 
Аватар для Alex-pet
 
Регистрация: 28.08.2011
Город: Минск
Регион: Беларусь
Машина: Mazda 6
Сообщений: 150
Alex-pet is on a distinguished road
По умолчанию

Договорились Я написал автору работающего скетча для двух энкодеров (тот, который несколькими постами выше, он как раз для двух энкодеров). Пока он не ответил, его несколько дней не было уже. Проблема в том что я не знаю как правильно подключить, т.е. к каким контактам подключать второй энкодер.
Alex-pet вне форума   Ответить с цитированием
Старый 08.11.2012, 20:19   #10
Alex-pet
Старший Пользователь
 
Аватар для Alex-pet
 
Регистрация: 28.08.2011
Город: Минск
Регион: Беларусь
Машина: Mazda 6
Сообщений: 150
Alex-pet is on a distinguished road
По умолчанию

Ура! Получилось!
Если кому вдруг интересно: контроллер от китайской no name мышки с механическим энкодером на ура подцепился к энкодеру магнитолы и всё заработало!
Alex-pet вне форума   Ответить с цитированием
Ответ


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

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 04:10.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot