Показать сообщение отдельно
Старый 06.04.2020, 18:59   #141
Святослав
Пользователь
 
Регистрация: 07.05.2015
Город: Челябинск
Регион: 74
Машина: AUDI A6 (C5)
Сообщений: 35
Святослав is on a distinguished road
По умолчанию

Цитата:
Сообщение от dk-fsb Посмотреть сообщение
а поподробней схему сборки и прошивку. если не трудно я думаю многим бы пригодилось
это скетч поправленный вместо сворачиваний по ссылке

PHP код:
//GENMC.ru управление мультимедиа при помощи энкодера
#define BTN_pin  8             // pin 8 кнопка энкодера SW
const int pin_A 10;          // pin 10 нога энкодера CLK
const int pin_B 9;           // pin 9 нога энкодера DT
unsigned char encoder_A;        //переменная
unsigned char encoder_B;        //переменная
unsigned char encoder_A_prev=0//переменная
#define BTN_pin1  5             // pin 5 кнопка энкодера SW1
const int pin_A1 6;           // pin 6 нога энкодера DT1
const int pin_B1 7;           // pin 7 нога энкодера CLK1
unsigned char encoder_A1;        //переменная1
unsigned char encoder_B1;        //переменная1
unsigned char encoder_A_prev1=0//переменная1
 
uint32_t vibor 0;             //Здесь будем хранть время
int perek 0;                  //переменная переключатель
 
void setup()  {
  
digitalWrite(BTN_pin1);     //подтяжка кнопки энкодера
  
pinMode(pin_AINPUT);        //пины энкодера объявляем входами
  
pinMode(pin_BINPUT);        //пины энкодера объявляем входами
  
digitalWrite(BTN_pin11);     //подтяжка кнопки энкодера1
  
pinMode(pin_A1INPUT);        //пины энкодера объявляем входами1
  
pinMode(pin_B1INPUT);        //пины энкодера объявляем входами1 
               

 
void loop()  
{
    
//////////////ЭНКОДЕР 1///////////
  
encoder_A digitalRead(pin_A);          // считываем состояние выхода А энкодера 
    
encoder_B digitalRead(pin_B);          // считываем состояние выхода B энкодера    
    
if((!encoder_A) && (encoder_A_prev)){    // если состояние изменилось с положительного к нулю
      
if(encoder_B
           {
            
Remote.increase(); //отправляем команду громкость выше
            
Remote.clear();    //очищаем команду
            
}
              else  {
                     
Remote.decrease(); //отправляем команду громкость ниже
                     
Remote.clear();    //очищаем команду              
                     
}   
                                      } 
       
encoder_A_prev encoder_A;     // сохраняем значение А для следующего цикла 
   

       
   if(
digitalRead(BTN_pin)==LOW//Если кнопка нажата то делаем то что ниже.
   
{
    
Remote.mute();   //отправляем команду убрать звук
    
Remote.clear();      //очищаем команд   
    
delay(500);          //Делаем небольшую задержку чтоб не засыпало командами.
   
}
   
   
//////////ЭНКОДЕР 2//////////////
   
 
encoder_A1 digitalRead(pin_A1);          // считываем состояние выхода А энкодера 
    
encoder_B1 digitalRead(pin_B1);          // считываем состояние выхода B энкодера    
    
if((!encoder_A1) && (encoder_A_prev1)){    // если состояние изменилось с положительного к нулю
      
if(encoder_B1
           {
           
Remote.next(); //отправляем команду слудующая песня
            
Remote.clear();    //очищаем команду
            
}
              else  {
                     
Remote.previous(); //отправляем команду предыдущая песня
                     
Remote.clear();    //очищаем команду              
                     
}   
                                      } 
       
encoder_A_prev1 encoder_A1;     // сохраняем значение А для следующего цикла 
   

    if(
digitalRead(BTN_pin1)==LOW)      //Если кнопка нажата то делаем то что ниже.
         
{
    
Remote.play_pause(); //отправляем команду плей пауза
    
Remote.clear();      //очищаем команд   
    
delay(500);          //Делаем небольшую задержку чтоб не засыпало командами.
   
}
 } 
Святослав вне форума   Ответить с цитированием