Перейти к содержанию

Лодка на Ардуино своими руками с ИК пультом

Ардуино лодка своими руками с ИК пультом

Разберем довольно простой проект на Arduino Nano — лодка с ИК управлением своими руками (схема и программа размещены далее). Для сборки проекта потребуются два мотора постоянного тока, которые будут управляться от микроконтроллера через полевые транзисторы. Также для управления катером на базе платы Ардуино потребуется пульт дистанционного управления и приемник ИК сигнала или модуль ky-022 Arduino.

Необходимые компоненты:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • 2 DC мотора
  • 2 полевых транзистора
  • 2 конденсатора
  • светодиод и резистор
  • аккумулятор
  • библиотека IRremote.h

Дополнительные материалы на эту тему:

  1. Подключение ИК пульта и приемника к Ардуино
  2. Подключение несколько устройств к Ардуино по I2C
  3. Подключение cенсорной кнопки TTP223 к Ардуино

Обратите внимание, что схема подключения транзисторов к Ардуино и моторам может отличаться. Это зависит от того какой тип транзистора вы используете: mosfet, pnp- или npn- транзистор. Перед сборкой схемы посмотрите datasheet от производителя, чтобы компоненты не вышли из строя. Пульт для управления катером может быть использован из стартового набора Ардуино или куплен отдельно в паре с IR-приемником.

Лодка на Ардуино с пультом ДУ своими руками

Ардуино лодка своими руками с ИК пультом

Корпус лодки может быть разный — это зависит только от ваших возможностей. Движение лодки осуществляется за счет гребных колес, установленных по бокам судна, и приводимых в движение с помощью DC моторов. Также в электрической схеме проекта (смотри изображение ниже) используются керамические конденсаторы, подключенные к моторам, они не обязательны, но снижают уровень помех в электрической цепи при пуске.

Схема сборки катера с ИК пультом на Arduino Nano

Схема сборки катером с ИК пультом

После сборки схемы и загрузки программы в микроконтроллер, откройте монитор порта Arduino IDE. Получите уникальные коды от кнопок пульта ДУ, которыми вы планируете управлять моторами катера. Скопируйте эти коды и вставьте их в программу в функциях #define, а затем заново загрузите скетч. Также в программе и схеме катера предусмотрена функция включения светодиода, подключенного через резистор ко 2 пину платы.

Скетч для катера на Ардуино с ИК управлением


#include  // библиотека ик приемника

// замените коды от ик пульта на свои значения
#define start 11111111   // код вперед
#define left 22222222    // код налево
#define right 33333333   // код направо
#define stope 44444444   // код стоп
#define led_on 55555555  // код вкл. светодиод
#define led_off 66666666 // код выкл. светодиод

#define LED 2  // пин подключения светодиода
#define M_L 11 // пин левого мотора
#define M_R 12 // пин правого мотора

int RECV_PIN = A5; // пин подключения ик приемника
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(LED, OUTPUT); // светодиод
  pinMode(M_L, OUTPUT); // левый мотор
  pinMode(M_R, OUTPUT); // правый мотор
}

void loop() {
 
  if (irrecv.decode(&results)) {
    // если пришел сигнал, выводим на монитор
    Serial.println(results.value);

    // вперед
    if (results.value == start) {
      digitalWrite(M_L, HIGH);
      digitalWrite(M_R, HIGH);
    }

    // направо
    if (results.value == right) {
      digitalWrite(M_L, LOW);
      digitalWrite(M_R, HIGH);
    }

    // налево   
    if (results.value == left) {
      digitalWrite(M_L, HIGH);
      digitalWrite(M_R, LOW);
    }

    // остановка
    if (results.value == stope) {
      digitalWrite(M_L, LOW);
      digitalWrite(M_R, LOW);
    }

    // включаем светодиод
    if (results.value == led_on) {
      digitalWrite(LED, HIGH);
    }

    // выключаем светодиод
    if (results.value == led_off) {
      digitalWrite(LED, LOW);
    }
   
  irrecv.resume(); // ждем следующий сигнал от ик пульта
  } 
}

Заключение. Несмотря на то, что мы не предоставили сборку корпуса катера своими руками, надеемся наша электрическая схема и программа для этого проекта будет вам полезна. Также для управления моторами лодки можно использовать MOSFET модуль на базе IRF520 или motor shield L293D для Arduino Uno. Последний вариант с шилдом позволит вам не только плавно запускать двигатели, но и вращать их в обратную сторону.

Комментарии 5

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

newzaym
➜