Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Однажды я нашел интересное видео по адресу: https://arduinotr.com/cisim/?fbclid=IwAR22rYmiRQQJ0nqAusOLhBj_778gROseej6TUonvbOnAd65A-sl_wnyqrJQ&tdsourcetag=s_pcqq_aiomsg, но это действительно читерство.
На первый взгляд, это действительно странно, а потом ноги обманули, не знаю, в чем основная причина, по которой этот дизайнер сделал такую вводящую в заблуждение историю … Это невозможно с помощью простого ИК-датчика или даже без какого-либо контроллера, а только с простыми триодами.
Я не знаю этого парня и всей истории, я просто пытаюсь сделать это сама. Я только что создал свой собственный дизайн с очень простыми модулями:
- Любой совместимый с Arduino контроллер, например Maduino
- Драйвер двигателя L298N
- 3x ИК-датчик
- Некоторые распространенные перемычки
Шаг 1: Обнаружение препятствий
Для обнаружения препятствия используются 3 ИК-датчика, и левый / правый датчик обнаружил препятствие, он должен вращаться в направлении часов / против часовой стрелки, в то время как средний датчик обнаруживает, все в порядке.
Датчик 3 определяет, есть ли впереди препятствия. Подключает сигнальный контакт к входным контактам Maduino, таким как Pin2 / 3/4;
В качестве программного обеспечения просто проверьте состояние выхода датчика, чтобы решить, что двигатель должен делать:
if (IR1_STA == HIGH & IR2_STA == LOW & IR3_STA == HIGH) // Если средний датчик обнаруживает препятствие, двигатель останавливается
{
analogWrite (EN, 0);
Стоп();
}
if (IR1_STA == LOW & IR2_STA == HIGH & IR3_STA == HIGH) // если правый датчик обнаруживает препятствие, двигатель реверсирует с высокой скоростью;
{
analogWrite (EN, высокая скорость);
Задний ход();
}
if (IR1_STA == LOW & IR2_STA == LOW & IR3_STA == HIGH) // если
правый и средний датчик обнаруживают препятствие, двигатель реверсирует с низкой скоростью;
{
analogWrite (EN, низкая скорость);
Задний ход();
}
……
Шаг 2: Управление двигателем
И драйвер двигателя для управления двигателем с высокой / низкой скоростью зависит от состояния датчика.
Использование модуля L298N для управления двигателем с выводом Maduino pin5 / 6 и выводом PWM (Maduino Pin9) на вывод L298N, включение и питание модуля напряжением 9В:
int EN = 9; // ШИМ-контроль
int highspeed = 80; // определяем высокую скорость
int lowspeed = 60; // определяем низкую скорость
а затем скорость двигателя можно контролировать с помощью:
analogWrite (EN, высокая скорость);
Шаг 3. Установите что-нибудь туда, такую собаку…
Установите датчики и моторы, и сделайте что-нибудь, для меня я люблю собаку, чтобы играть с моей 1,5-летней дочерью. Загрузите код Arduino здесь … Если у вас возникнут вопросы, свяжитесь со мной: [email protected]