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

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Пользователь
    Регистрация
    07.12.2009
    Сообщений
    29
    Вес репутации
    198

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

    Дорогие друзья! Помогите решить следующую проблему.

    Имеем штатные рулевые кнопки на резистивной матрице, которая подключена к арудуине. Имеем скетч:

    define PIN 7 //номер аналогового порта
    #define LIMIT 6 //предел погрешности сопротивления
    int knopka_trg=0;

    byte bytes[2];
    int res_dt1;
    unsigned long math_time,old_time,real_time;
    void setup()
    {

    pinMode(2,OUTPUT);
    pinMode(3,OUTPUT);
    pinMode(4,OUTPUT);
    pinMode(5,OUTPUT);
    pinMode(6,OUTPUT);
    pinMode(7,OUTPUT);
    pinMode(8,OUTPUT);
    pinMode(9,OUTPUT);

    Serial.begin(115200); // настроить скорость com порта
    }

    void loop()
    {
    old_time = real_time;
    math_time = 0;
    res_dt1 = analogRead(PIN); // прочитать данные АЦП
    while(math_time < 300 && (analogRead(PIN)>res_dt1-LIMIT && analogRead(PIN) < res_dt1+LIMIT ))
    {
    real_time = millis(); //получить реальное время
    math_time = real_time - old_time; //считаем длительность паузы
    }

    if( math_time > 80 ) //если нет дребезга
    {

    if (res_dt1>965 && res_dt1<975) digitalWrite(6,HIGH );// увеличиваем громкость
    else { digitalWrite(6, LOW); }

    if (res_dt1>980 && res_dt1<990) digitalWrite(5,HIGH ); // уменьшаем громкость
    else { digitalWrite(5, LOW); }

    if (res_dt1>1000 && res_dt1<1010) {
    knopka_trg=1-knopka_trg;
    digitalWrite(2, knopka_trg); // вкл_выкл
    }


    bytes[0] = res_dt1 & 255; // преобразовать в 2-байта
    bytes[1] = (res_dt1 & 768) >> 8;
    Serial.write( bytes,2); // отправить прочитаное значение компьютеру

    }
    }


    Всё рабоает.

    Появилась необходимость паралельного подключения джойстика СОНИ , он тоже на резистивной матрице. Значения в АЦП ардуино он даёт ес-но другие.

    Вопрос - как обеденить два значения АЦП для решения одной задачи ?

    Пример:

    if (res_dt1>111 && res_dt1<112) digitalWrite(6,HIGH );// увеличиваем громкость
    else { digitalWrite(6, LOW); }

    Это при нажатии штатки.

    А это при нажатии джойстика:

    if (res_dt1>221 && res_dt1<222) digitalWrite(6,HIGH );// увеличиваем громкость
    else { digitalWrite(6, LOW); }



    Как объеденить в скетче, а то у меня не выходит ничего, работает или то, или другое, вместе не хотят
    Последний раз редактировалось Rover 176; 17.05.2011 в 16:02.

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

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

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

Ваши права

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