Недорогая инвалидная коляска с распознаванием жестов пальцев на основе ИК-датчика
Я делаю проект, в котором три ИК-датчика используются для получения жеста тремя пальцами для управления движениями (влево, вправо, вперед, назад) двух двигателей.
Пороговое значение выходного сигнала ИК-датчика составляет 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);// включаем правый мотор
}
@mohit kumar, 👍-1
Обсуждение1 ответ
С чем у вас возникла проблема? Вы заставили двигатели двигаться вперед. Так что, если вы хотите всего 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, иначе будет неразбериха.
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
вам нужен только один блок
if-else
.... просто включите оба мотора в первом блокеif
, @jsotola