Оглавление:

Робот, следящий за светом и избегающий его на основе Arduino: 5 шагов
Робот, следящий за светом и избегающий его на основе Arduino: 5 шагов

Видео: Робот, следящий за светом и избегающий его на основе Arduino: 5 шагов

Видео: Робот, следящий за светом и избегающий его на основе Arduino: 5 шагов
Видео: BEAM роботы своими руками. Часть 3 2024, Ноябрь
Anonim
Робот, следящий за светом и избегающий этого, на базе Arduino
Робот, следящий за светом и избегающий этого, на базе Arduino

Это простой проект, который следует за Светом или Избегайте его.

Я сделал это моделирование в Proteus 8.6 pro. Необходимые компоненты: -1) Arduino uno.

2) 3 LDR.

3) 2 мотор-редуктора постоянного тока. 4) Один сервопривод. 5) Три резистора 1 кОм. 6) Один H-мост l290D 7) Один переключатель включения и выключения [для изменения состояния программы]

8) 9в и 5в Battry

Шаг 1: Код Ардунио

Код Arduino изменен немного назад, 23 февраля 2016 г.]

Этот код очень комментируется, я не хочу объяснять, но если вам нужна помощь, не стесняйтесь обращаться ко мне по адресу ([email protected])

Примечание: -Я использую два условия в этой программе: первое - для следования за светом, второе - для избегания света.

При выполнении этих условий робот будет следовать за светом или избегать его. [Это минимальное значение LDR, которое я выбираю. В нормальном свете его диапазон составляет от 80 до 95, но по мере того, как его интенсивность увеличивается, на него наводится все больше и больше напряжений, поскольку он работает по принципу делителя напряжения int a = 400; // Допустимое значение]

Шаг 2: файлы Proteus

Для библиотеки Arduino загрузите по этой ссылке

Шаг 3: Как работает ваш H-мост

Как работает ваш H-мост
Как работает ваш H-мост
Как работает ваш H-мост
Как работает ваш H-мост

L293NE / SN754410 - очень простой H-мост. Он имеет два моста, один с левой стороны чипа, а другой с правой, и может управлять 2 двигателями. Он может управлять током до 1 А и работать в диапазоне от 4,5 В до 36 В. Маленький двигатель постоянного тока, который вы используете в этой лаборатории, может безопасно работать от низкого напряжения, поэтому этот H-мост будет работать нормально. Н-мост имеет следующие контакты и особенности: Контакт 1 (1, 2EN) включает и отключает наш двигатель независимо от того, является ли он ВЫСОКОМ или НИЗКИМ, Контакт 2 (1A) является логическим контактом для нашего двигателя (вход может быть ВЫСОКИЙ или НИЗКИЙ). 3 (1Y) - для одного из выводов двигателя, выводы 4-5 - для заземления, вывод 6 (2Y) - для другого вывода двигателя, вывод 7 (2A) - это логический вывод для нашего двигателя (вход HIGH или LOW), вывод 8 (VCC2)) является источником питания для нашего двигателя, это должно соответствовать номинальному напряжению вашего двигателя. Контакты 9-11 не подключены, так как в этой лаборатории вы используете только один двигатель. Контакты 12-13 предназначены для заземления. Контакты 14-15 не подключены. подключен к 5 В. Выше представлена схема H-моста и какие контакты выполняют то, что в нашем примере. К диаграмме прилагается таблица истинности, показывающая, как двигатель будет работать в соответствии с состоянием логических выводов (которые установлены нашей Arduino).

В этом проекте контакт включения подключается к цифровому контакту на вашем Arduino, поэтому вы можете отправить его либо ВЫСОКИЙ, либо НИЗКИЙ и включить или выключить двигатель. Логические выводы двигателя также подключены к назначенным цифровым выводам на вашем Arduino, поэтому вы можете отправить его HIGH и LOW, чтобы двигатель вращался в одном направлении, или LOW и HIGH, чтобы он вращался в другом направлении. Напряжение питания двигателя подключается к источнику напряжения двигателя, которым обычно является внешний источник питания. Если ваш двигатель может работать от 5 В и менее 500 мА, вы можете использовать выход 5 В. Для большинства двигателей требуется более высокое напряжение и более высокий ток потребления, поэтому вам понадобится внешний источник питания.

Подсоедините двигатель к Н-мосту. Подключите двигатель к Н-мосту, как показано на 2-м рисунке.

Или, если вы используете внешний источник питания для Arduino, вы можете использовать вывод Vin.

Шаг 4: Как работает LDR

Теперь первое, что может потребовать дальнейшего объяснения, - это использование светозависимых резисторов. Светозависимые резисторы (или LDR) - это резисторы, значение которых изменяется в зависимости от количества окружающего света, но как мы можем определить сопротивление с помощью Arduino? На самом деле вы не можете, однако вы можете определять уровни напряжения с помощью аналоговых выводов, которые могут измерять (при базовом использовании) в диапазоне 0-5 В. Теперь вы можете спросить: «А как нам преобразовать значения сопротивления в изменения напряжения?», Это просто, мы делаем делитель напряжения. Делитель напряжения принимает напряжение, а затем выдает часть этого напряжения, пропорциональную входному напряжению и соотношению двух номиналов используемых резисторов. Уравнение для которого:

Выходное напряжение = Входное напряжение * (R2 / (R1 + R2)), где R1 - значение первого резистора, а R2 - значение второго.

Теперь все еще возникает вопрос: «Но какие значения сопротивления у LDR?» - хороший вопрос. Чем меньше количество окружающего света, тем выше сопротивление, больше окружающего света означает меньшее сопротивление. Теперь для конкретных LDR, которые я использовал, их диапазон сопротивления составлял от 200 до 10 кОм, но это меняется для других, поэтому обязательно посмотрите, где вы их купили, и попробуйте найти техническое описание или что-то в этом роде. Случай R1 на самом деле является нашим LDR, поэтому давайте вернем это уравнение и сделаем немного математики-электронной магии (математической электрической магии). Теперь сначала нам нужно преобразовать эти значения килоомов в омы: 200 килоом = 200000 Ом 10 килоом = 10 000 Ом Итак, чтобы определить выходное напряжение, когда мы находимся в кромешной тьме, мы подставляем следующие числа: 5 * (10000 / (200000 + 10000)) Входное напряжение 5 В, так как это то, что мы получаем. от Arduino. Вышеупомянутое дает 0,24 В (с округлением). Теперь мы определяем выходное напряжение при максимальной яркости, используя следующие числа: 5 * (10000 / (10000 + 10000)) И это дает нам ровно 2,5 В. Итак, это значения напряжения, которые мы собираемся получить на аналоговых выводах Arduino, но это не те значения, которые будут отображаться в программе: «Но почему?» вы можете спросить. Arduino использует аналогово-цифровой чип, который преобразует аналоговое напряжение в пригодные для использования цифровые данные. В отличие от цифровых выводов на Arduino, которые могут читать только ВЫСОКОЕ или НИЗКОЕ состояние, равное 0 и 5 В, аналоговые выводы могут считывать значения от 0 до 5 В и преобразовывать их в диапазон чисел от 0 до 1023.. мы можем фактически вычислить, какие значения на самом деле будет читать Arduino.

Поскольку это будет линейная функция, мы можем использовать следующую формулу: Y = mX + C Где; Y = Цифровое значение Где; m = наклон, (подъем / ход), (цифровое значение / аналоговое значение) Где; C = Y-точка пересечения Y равна 0, что дает нам: Y = mXm = 1023/5 = 204,6 Следовательно: Цифровое значение = 204,6 * Аналоговое значение Таким образом, в черном как смоль цифровое значение будет: 204,6 * 0,24, что дает приблизительно 49. И при максимальной яркости это будет: 204,6 * 2,5, что дает примерно 511. Теперь, когда две из них установлены на двух аналоговых выводах, мы можем создать две целочисленные переменные для хранения их значений двух и выполнить операторы сравнения, чтобы увидеть, какая из них имеет наименьшее значение, поворачивая робота в этом направлении.

Рекомендуемые: