Показать сообщение отдельно
Старый 29.11.2015, 01:13   #47
TransF
Старший Пользователь
 
Регистрация: 14.06.2009
Город: Ставрополь
Регион: 26
Машина: AUDI A6 (C5) 2000г.в. V6 2.8L
Сообщений: 131
TransF is on a distinguished road
Question

Закончил с пайкой, и теперь у меня 2 половинки управления моим мультирулём.

скомпоновал скетч, всё кроме второго энкодера для переключения треков
ни как не получается ничего(((

подскажите что как дописать вот в этот рабочий скетч для второго энкодера?

Код HTML:
int analogPin=0;
int data;
void setup() {             
PCICR=1<<PCIE0; 
PCMSK0=(1<<PCINT5)|(1<<PCINT4); 
pinMode (8,INPUT); 
pinMode (9,INPUT); 
Keyboard.begin(); 
Serial.begin(9600);
} 
void loop() {
 data=analogRead(analogPin); //читаем значение нажатой кнопки
  Serial.println(data); //для определения кодов нажатых кнопок на мониторе порта
  /*поддерживаемые коды управляющих клавиш
  [url]http://arduino.cc/en/Reference/KeyboardModifiers*/[/url]
  if (data>=28 && data<=35)  // приглушение звука
    {
      Remote.mute();
      Remote.clear();
    }
  if (data>=58 && data<=65)  // воспроизведение / пауза
    {
      Remote.play_pause();
      Remote.clear();
    }
  if (data>=140 && data<=150)  // домой
    {
Keyboard.press(KEY_ESC);
Keyboard.release(KEY_ESC);
    }
    if (data>=88 && data<=95)  // ALT+TAB
    {
Keyboard.press(KEY_LEFT_ALT);  
Keyboard.press(KEY_TAB);  
Keyboard.release(KEY_TAB);  
Keyboard.press(KEY_TAB);  
Keyboard.releaseAll();
}
  delay(180);
} 
  
ISR (PCINT0_vect){ 
static byte old_n=PINB&B00110000; 
byte new_n=PINB&B00110000; 
if (old_n==32&&new_n==48||old_n==16&&new_n==0) { 
        Remote.increase();  
        delay(10);   
        Remote.clear();} 
if (old_n==16&&new_n==48||old_n==32&&new_n==0) { 
        Remote.decrease(); 
        delay(100);   
        Remote.clear();} 
old_n= new_n; 
}
второй энкодер использую на 6 и 7 ногах ардуины
__________________

AUDI A6 (C5) V6 2.8L

Последний раз редактировалось TransF; 15.03.2016 в 18:13.
TransF вне форума   Ответить с цитированием