Страница 39 из 57 ПерваяПервая ... 293334353637383940414243444549 ... ПоследняяПоследняя
Показано с 381 по 390 из 561
  1. #381
    Местный
    Регистрация
    11.11.2009
    Возраст
    36
    Сообщений
    114
    Вес репутации
    201

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

    В чем может быть проблема?

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

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

    2832 такого значения быть не должно, максимальное значение это 1023

  3. #383
    Местный
    Регистрация
    11.11.2009
    Возраст
    36
    Сообщений
    114
    Вес репутации
    201

    По умолчанию 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 
Просмотров:	625 
Размер:	83.0 Кб 
ID:	13241  

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

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

    Ты не подключил внутренние подтягивающие резисторы как на энкодере, и вообще лучше опрашивать порты в цикле for , код будет компактнее

  5. #385
    Местный
    Регистрация
    11.11.2009
    Возраст
    36
    Сообщений
    114
    Вес репутации
    201

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

    digitalWrite(7, 1);

    Как это не подключил....

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

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

    while(digitalRead(10)==LOW){delay(50);}
    bytes[1]=20;
    Это для чего?
    еще нужно бороться с дребезгом, для твоего скетча предел погрешности нужно сделать равным =0, вести опрос портов в цикле
    for(перебор всех портов i) digitalRead(i)
    Последний раз редактировалось Chip; 26.10.2011 в 15:26.

  7. #387
    Местный
    Регистрация
    11.11.2009
    Возраст
    36
    Сообщений
    114
    Вес репутации
    201

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

    Цитата Сообщение от Chip Посмотреть сообщение
    Это для чего?
    Ты в своем скетче так кнопку энкодера описал, я просто по наналогии повторил.
    PHP код:
     if(digitalRead(encoder0PinC)==LOW)  
       { 
         
    bytes[1]=8
          
    Serial.writebytes,2);   
          while(
    digitalRead(encoder0PinC)==LOW){delay(50);} 
           
    bytes[1]=7;  
       } 
    Я так понимаю это у тебя для сочетания нажатия с поворотом? Правда я не понял зачем задержка нужна.Чтоб во время поворота энкодара дребезг на кнопке не мешал?
    Цитата Сообщение от Chip Посмотреть сообщение
    еще нужно бороться с дребезгом, для твоего скетча предел погрешности нужно сделать равным =0, вести опрос портов в цикле
    Погрешность в autohotkey?
    В цикле попробую сделать.
    Последний раз редактировалось SiMuS; 26.10.2011 в 15:34.

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

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

    У тебя нет погрешности , так как ты отправляешь фиксированные значения

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

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

    Обновление, выпущена бета версия программы упраления рулевыми кнопками
    Пробуем и отписываемся
    Последний раз редактировалось Chip; 02.11.2011 в 16:26.

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

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

    Из сервиса мануала моего авто:
    Remote audio control switch resistance

    All switches released (OFF): 5119 – 5223 Ом
    Switch “1” pushing on (ON): 55 – 57 Ом
    Switch “2” pushing on (ON): 129 – 133 Ом
    Switch “3” pushing on (ON): 238 – 244 Ом
    Switch “4” pushing on (ON): 416 – 426 Ом
    Switch “5” pushing on (ON): 743 – 759 Ом
    Switch “6” pushing on (ON): 1555 – 1587 Ом


    Посоветуйте пожалуйста, какого номинала лучше воткнуть резистор между разъемами +5V и A5?

Страница 39 из 57 ПерваяПервая ... 293334353637383940414243444549 ... ПоследняяПоследняя

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

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

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

Ваши права

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