Показано с 1 по 10 из 561

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Местный
    Регистрация
    11.11.2009
    Возраст
    37
    Сообщений
    114
    Вес репутации
    214

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Из-за чего тогда у меня могут быть такие значения?

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

    void setup()     
    {       
      
    pinMode(encoder0PinAINPUT);     
      
    digitalWrite(encoder0PinAHIGH);     // подключить подтягивающий резистор    
      
    pinMode(encoder0PinBINPUT);     
      
    digitalWrite(encoder0PinBHIGH);    // подключить подтягивающий резистор   
      
    pinMode(encoder1PinAINPUT);     
      
    digitalWrite(encoder1PinAHIGH);    // подключить подтягивающий резистор    
      
    pinMode(encoder1PinBINPUT);     
      
    digitalWrite(encoder1PinBHIGH);    // подключить подтягивающий резистор  
     
      //10 кнопок. 2 на энкодере, 8 на панели.
       
    pinMode(7INPUT);   
      
    digitalWrite(71);  
      
    pinMode(8INPUT);  
      
    digitalWrite(81); 
      
    pinMode(9INPUT);  
      
    digitalWrite(91); 
      
    pinMode(10INPUT);   
      
    digitalWrite(101); 
      
    pinMode(11INPUT);   
      
    digitalWrite(111); 
      
    pinMode(12INPUT); 
      
    digitalWrite(121);
       
    pinMode(14INPUT);
      
    digitalWrite(141);
      
    pinMode(15INPUT); 
      
    digitalWrite(151); 
      
    pinMode(16INPUT); 
      
    digitalWrite(161);  
      
    pinMode(17INPUT); 
      
    digitalWrite(171);  
     
      
    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()    
    {      
           if(
    digitalRead(7)==LOW
       {
         
    bytes[1]=7;
          
    Serial.writebytes,2);  
          while(
    digitalRead(7)==LOW){delay(50);}
           
    bytes[1]=20
       }
          if(
    digitalRead(8)==LOW
       {
         
    bytes[1]=8;
          
    Serial.writebytes,2);  
          while(
    digitalRead(8)==LOW){delay(50);}
           
    bytes[1]=20
       }
       if(
    digitalRead(9)==LOW
       {
         
    bytes[1]=9;
          
    Serial.writebytes,2);  
          while(
    digitalRead(9)==LOW){delay(50);}
           
    bytes[1]=20
       }
          if(
    digitalRead(10)==LOW
       {
         
    bytes[1]=10;
          
    Serial.writebytes,2);  
          while(
    digitalRead(10)==LOW){delay(50);}
           
    bytes[1]=20
       }
          if(
    digitalRead(11)==LOW
       {
         
    bytes[1]=11;
          
    Serial.writebytes,2);  
          while(
    digitalRead(11)==LOW){delay(50);}
           
    bytes[1]=20
       }
          if(
    digitalRead(12)==LOW
       {
         
    bytes[1]=12;
          
    Serial.writebytes,2);  
          while(
    digitalRead(12)==LOW){delay(50);}
           
    bytes[1]=20
       }
       if(
    digitalRead(14)==LOW
       {
         
    bytes[1]=14;
          
    Serial.writebytes,2);  
          while(
    digitalRead(14)==LOW){delay(50);}
           
    bytes[1]=20
       }
          if(
    digitalRead(15)==LOW
       {
         
    bytes[1]=15;
          
    Serial.writebytes,2);  
          while(
    digitalRead(15)==LOW){delay(50);}
           
    bytes[1]=20
       }
          if(
    digitalRead(16)==LOW
       {
         
    bytes[1]=16;
          
    Serial.writebytes,2);  
          while(
    digitalRead(16)==LOW){delay(50);}
           
    bytes[1]=20
       }
          if(
    digitalRead(17)==LOW
       {
         
    bytes[1]=17;
          
    Serial.writebytes,2);  
          while(
    digitalRead(17)==LOW){delay(50);}
           
    bytes[1]=20
       }


     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]=3
           
    bytes[1]=20;    
          
    Serial.writebytes,2);   
          
    bytes[0]=0;   
         } else if (
    tmp_code == 1
                   { 
                      
    bytes[0]=4
                     
    bytes[1]=20;    
                      
    Serial.writebytes,2);   
                      
    bytes[0]=0;  
                   } 
      } 
     
    tmp_code code
     
    delay(2); 
     
    }    

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

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

    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Untitled-2.jpg 
Просмотров:	640 
Размер:	83.0 Кб 
ID:	13241  

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

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

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

Ваши права

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