Страница 41 из 55 ПерваяПервая ... 313536373839404142434445464751 ... ПоследняяПоследняя
Показано с 401 по 410 из 561

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    243

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

    Работает!!!
    Что бы я делал без этого форума и его Админа, на котором все держится.

    Chip
    Поясни строки кода:

    PHP код:
            bytes[0] = res_d 255;          // преобразовать в 2-байта   
            
    bytes[1] = (res_d 768) >> 8
    зачем второй байт?
    Последний раз редактировалось kadushkin; 12.03.2012 в 00:06.

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

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

    Потому что значение 1023 в один байт не укладывается
    А вообще рекомендую более свежую версию скетча и софта

  3. #3
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    243

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

    Учту, спасибо!

    Вот финальная схема, которую я (в кавычках) наконец реализовал:


  4. #4
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    243

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

    Код для этой схемы, передрал отсюда http://www.compcar.ru/forum/showpost...&postcount=227 и адаптировал под свою задачу
    Код:
    // Функция проверки нажатия рулевой кнопки
    // Возвращает false если кнопка не была нажата 
    // и true если нажата
    // ButtonName принимает значения в зависимости от нажатой кнопки +, -, >, R=>>|, L=|<<, S=SRC, X=None
    boolean WheelButonPush_IsPushed()    
    {    
    bool result; 
    result=false;
    unsigned long buttonVal;
    buttonVal=0; 
    ButtonName='X';
     res_d = analogRead(WheelButtonsPin);  
      if( res_d < LIMIT) res_d = LIMIT; 
      delay(10);   
      res_dt1 = analogRead(WheelButtonsPin);   
            old_time = millis();    
            math_time = 0;     
            while(math_time < 200)    
              {    
                 real_time = millis();                 
                 math_time = real_time - old_time;   
                res_dt1 = analogRead(WheelButtonsPin);  
                if(res_dt1 < res_d-LIMIT || res_dt1 > res_d+LIMIT)break; 
              }    
           
        if( math_time > 70)  
          {   
      buttonVal=res_d;
      ButtonName='X';
       //   Serial.println (res_d);
                  
            if ((buttonVal>25) && (buttonVal<45))
           {
    ButtonName='-'; //35-36
    result=true;
            }
        
            if ((buttonVal>60) && (buttonVal<85))
           {
    ButtonName='+'; //72-73
    result=true;
            }
    
            if ((buttonVal>110) && (buttonVal<135))
           {
    ButtonName='S'; //122
    result=true;
            }
    
            if ((buttonVal>175) && (buttonVal<200))
           {
    ButtonName='R'; //187
    result=true;
            }
    
            if ((buttonVal>275) && (buttonVal<295))
           {
    ButtonName='L'; //285
    result=true;
            }
    
            if ((buttonVal>415) && (buttonVal<440))
           {
    ButtonName='>'; //429
    result=true;
            }
            
            if ((buttonVal>645) && (buttonVal<670))
           {
    ButtonName='X'; //658-659
    result=false;
            }          
    
     buttonVal=0;    
        }  
           return result;
    }
    Последний раз редактировалось kadushkin; 14.03.2012 в 18:01.

  5. #5
    Новичок
    Регистрация
    05.05.2012
    Сообщений
    1
    Вес репутации
    0

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

    Подскажите плз, собрал также, работает нормально, но где-то через минут 20 толи подвисает, толи еще чтото потом через пол минуты отпускает и опять нормально работает. куда нужно копать?
    собрал на ардуине нано v3

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

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

    Возможно ардуиной проблемы? попробуй другие скетчи

  7. #7
    Новичок
    Регистрация
    08.07.2012
    Возраст
    42
    Сообщений
    9
    Вес репутации
    170

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

    дома на 7ке работает. в машине на XP пишет FT_Open - Device not found

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

    и еще в 7ке определяется как carmonitor joystik
    а в ХР просто USB serial port (COM15)
    Последний раз редактировалось DEL4ik; 23.08.2012 в 19:04.

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

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

    Попробуй драйвер переустановить

  9. #9
    Новичок
    Регистрация
    30.04.2011
    Возраст
    48
    Сообщений
    7
    Вес репутации
    185

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

    kadushkin

    не компилица твой код

  10. #10
    Продвинутый
    Регистрация
    19.02.2010
    Возраст
    48
    Сообщений
    244
    Вес репутации
    246

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

    Небольшой "трикс" для владельцев ардуин без специального "кнопочного" входа.
    PORTC - это очень хитрый порт
    В часть его встроены внутренние "подтяжки". Что открывает чуть больший простор для творчества.Конкретно, ноги A0-A5.
    Ниже схема и код, который без проблем снимает значения рулевых кнопок Киа Соренто с ноги А1.



    PHP код:
    //v_down=167
    //v_up=124
    //preset=235
    //seek=25
    //mode=67

    void setup() {                
      
    Serial.begin(9600);
      
    PORTC |= B00000010//вот это самая главная строчка для корректной работы АЦП (нога А1) для А2 это будет выглядеть так PORTC |= B00000100; 
    }

    void loop() {
      
    Serial.print(analogRead(1));
      
    Serial.print('\n');
      
    delay(100);

    Если где было, прошу сильно не пинать
    Также, имейте в виду, что внутренней подтяжки может не хватить для конкретной резистивной матрицы, тогда придется подбирать делитель самостоятельно и ставить внешние резисторы.
    Последний раз редактировалось BlkDem; 31.10.2012 в 13:20.

Страница 41 из 55 ПерваяПервая ... 313536373839404142434445464751 ... ПоследняяПоследняя

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

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

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

Ваши права

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