Страница 13 из 18 ПерваяПервая ... 3789101112131415161718 ПоследняяПоследняя
Показано с 121 по 130 из 178
  1. #121
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Управление при помощи поворотного энкодера (Rotary Encoder)

    Что именно не выходит?

  2. #122
    Пользователь Аватар для WhyMax
    Регистрация
    09.10.2011
    Возраст
    31
    Сообщений
    54
    Вес репутации
    165

    По умолчанию Re: Управление при помощи поворотного энкодера (Rotary Encoder)

    АП: кнопочка тоже заработала, но при повороте энкодера в любую сторону кнопка все равно программно жмется.
    Значение кнопки: 2048.
    Только я понимаю что работает у меня немного кривовато?
    Например при быстром и медленном вращении значения разные.

    А что показывает монитор вобще все отличается (скетч для монитора я кстати не заливал, использовал из первого поста).
    Последний раз редактировалось WhyMax; 21.11.2011 в 03:50.

  3. #123
    Пользователь Аватар для WhyMax
    Регистрация
    09.10.2011
    Возраст
    31
    Сообщений
    54
    Вес репутации
    165

    По умолчанию Re: Управление при помощи поворотного энкодера (Rotary Encoder)

    Короче объясню по другому, проблема такая:
    Крутилки работают, по ним вопросов нет, я даже могу назначить разные действия на быстрое и на медленное вращение (4 разных комбинации клавиш).

    Теперь что касаемо кнопки:
    Назначил действие на кнопку.
    Нажимаю - все работает (например плей/пауза в винампе).
    Затем начинаю крутить энкодер в любую сторону, у меня увеличивается/уменьшается громкость, а так же при вращении нажимается кнопка плей/пауза!
    Вот такая проблема.

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

    По умолчанию Re: Управление при помощи поворотного энкодера (Rotary Encoder)

    Ошибка монтажа, скорее всего на энкодере при прозванивании что то напутал

  5. #125
    Пользователь Аватар для WhyMax
    Регистрация
    09.10.2011
    Возраст
    31
    Сообщений
    54
    Вес репутации
    165

    По умолчанию Re: Управление при помощи поворотного энкодера (Rotary Encoder)

    Цитата Сообщение от Chip Посмотреть сообщение
    Ошибка монтажа, скорее всего на энкодере при прозванивании что то напутал
    При прозванивании почему-то все было как надо:
    http://www.compcar.ru/forum/showpost...&postcount=120

  6. #126
    Пользователь Аватар для WhyMax
    Регистрация
    09.10.2011
    Возраст
    31
    Сообщений
    54
    Вес репутации
    165

    По умолчанию Re: Управление при помощи поворотного энкодера (Rotary Encoder)

    Я победил свой энкодер, все дело было в 2-х резисторах, которые соединяли 2 контакта на плате, их надо выпаять или перерезать дорожки, идущие к ним:


    Все отлично работает!!

    Теперь есть целых 5 кнопок:
    поворот влево
    поворот вправо
    нажатие
    поворот влево + нажатие
    поворот вправо + нажатие

    Надо еще заставить работать второй энкодер.
    Последний раз редактировалось WhyMax; 22.11.2011 в 02:14.

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

    По умолчанию Re: Управление при помощи поворотного энкодера (Rotary Encoder)

    Про второй энкодер поищи на форуме , я выкладывал пример

  8. #128
    Пользователь Аватар для WhyMax
    Регистрация
    09.10.2011
    Возраст
    31
    Сообщений
    54
    Вес репутации
    165

    По умолчанию Re: Управление при помощи поворотного энкодера (Rotary Encoder)

    Цитата Сообщение от Chip Посмотреть сообщение
    Про второй энкодер поищи на форуме , я выкладывал пример
    В данной теме я нашел только это:
    http://www.compcar.ru/forum/showpost...&postcount=383

    И еще:
    http://www.compcar.ru/forum/showpost...&postcount=102
    Оно?
    Последний раз редактировалось WhyMax; 22.11.2011 в 02:25.

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

    По умолчанию Re: Управление при помощи поворотного энкодера (Rotary Encoder)

    Вторая ссылка

  10. #130
    Пользователь Аватар для WhyMax
    Регистрация
    09.10.2011
    Возраст
    31
    Сообщений
    54
    Вес репутации
    165

    По умолчанию Re: Управление при помощи поворотного энкодера (Rotary Encoder)

    Пытаюсь по аналогии заставить работать вторую крутилку.
    Код получился такой:
    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   
      
    attachInterrupt(0doEncoder1AFALLING);  // настроить прерывание interrupt 0 на pin 2   
      
    attachInterrupt(1doEncoder1BFALLING);  // настроить прерывание interrupt 0 на pin 3   
      
    Serial.begin (115200);   
    }    

    void loop()   
    {     
     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]=8
          
    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;     


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

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

    У второго энкодера заработала только кнопка, но эта кнопка дублирует кнопку первого энкодера.
    5, 6 ноги - крутилка, 7 - кнопка.

Страница 13 из 18 ПерваяПервая ... 3789101112131415161718 ПоследняяПоследняя

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

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

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

Метки этой темы

Ваши права

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