Недорогая инвалидная коляска с распознаванием жестов пальцев на основе ИК-датчика

Я делаю проект, в котором три ИК-датчика используются для получения жеста тремя пальцами для управления движениями (влево, вправо, вперед, назад) двух двигателей.

Пороговое значение выходного сигнала ИК-датчика составляет 450 мВ для прохождения сигнала.

Я не понимаю, как проектировать разные условия для разных движений двигателей

int firstanalogPin = 1;     // Инфракрасный датчик (правый провод), подключенный к аналоговому контакту 1

int val1 = 0;           // переменная для хранения прочитанного значения

int enablePin = 1;
int LeftMotorForward = 10; // К контакту 10 подключен левый двигатель на платах Arduino.
int LeftMotorReverse = 9; // К контакту 9 подключен левый двигатель на платах Arduino.

int RightMotorForward = 12; // К контакту 12 подключен правый двигатель на платах Arduino.
int RightMotorReverse = 13; // К контакту 13 подключен правый двигатель на платах Arduino

void setup()
{
    pinMode(LeftMotorForward, OUTPUT);  // инициализируем пин как выход.
    pinMode(RightMotorForward, OUTPUT);  // инициализируем пин как выход.
    pinMode(LeftMotorReverse, OUTPUT);  // инициализируем пин как выход.
    pinMode(RightMotorReverse, OUTPUT);  // инициализируем пин как выход.
    Serial.begin(9600);          // установить последовательный порт
}

void loop()
{
    val1 = analogRead(firstanalogPin);    // читаем входной пин
    Serial.println(val1);                           // значение отладки


    if (val1 >700) // вперед
        digitalWrite(LeftMotorForward, HIGH);
    else
        digitalWrite(LeftMotorForward, LOW);   // включаем левый мотор
    if (val1 >700)
        digitalWrite(RightMotorForward, HIGH);// включаем правый мотор
    else
        digitalWrite(RightMotorForward, LOW);// включаем правый мотор
}

, 👍-1

Обсуждение

вам нужен только один блок if-else .... просто включите оба мотора в первом блоке if, @jsotola


1 ответ


0

С чем у вас возникла проблема? Вы заставили двигатели двигаться вперед. Так что, если вы хотите всего 3 разных эксклюзивных движения вперед, влево, вправо.

Вы можете сделать так, чтобы 1 палец управлял направлением, 1 пальцем — влево и 1 — вправо.

   OFF       ON
F1 Forwards  Backward
F2 Left Off  Left On
F3 Right Off Right On

Чтобы сразу перейти к F2 & F3 должен быть больше 700.

Для поворота налево F3 > 700 && F2 < 700 (правый двигатель заставит кресло повернуться влево)

Чтобы реверсировать, вам нужно F1 > 700.

и т. д.

Убедитесь, что заданы условия if/else ifs, иначе будет неразбериха.

,