Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Автомобиль с ИК-пультом дистанционного управления

Компоненты и расходные материалы

Комплекты модулей беспроводного инфракрасного датчика дистанционного управления WINGONEER нового стиля для Arduino
× 1
Драйвер шагового двигателя с двойным мостом H-мост SainSmart L298N
× 1
Комплект шасси автомобиля для робота с полным приводом
× 1
Arduino UNO
× 1

Необходимые инструменты и машины

Паяльник (общий)

Об этом проекте

Я нашел оригинальный дизайн на Instructables и построил его версию. Первоначально это был гусеничный автомобиль, а этот - 4WD. Корректировка оригинального дизайна происходит при настройке ИК. Первоначальная конструкция страдала от обратной связи, когда двигатели работали, что мешало работе ИК-приемника. Двигатели действовали как генераторы там, где заземляющие провода встречались. Поменял пины и назначения для IR

Соберите автомобильную базу, следуя инструкциям, прилагаемым к комплекту вездехода SAINSMART. Найдено здесь

ИК-приемник:

int Receiver_pin =4; // Подключаем выходной контакт 4 контроллера к ИК-приемнику Y

int vcc =5; // Подключаем выходной контакт 5 на контроллере к ИК-приемнику V

int gnd =6; // Подключаем выходной контакт 4 контроллера к ИК-приемнику G

Модуль моторного привода L298N:

// мотор A

int enA =8;

int in1 =12;

int in2 =11;

// двигатель B

int enB =7;

int in3 =10;

int in4 =9;

GND модуля моторного привода L298N на GND контроллера

Модуль моторного привода L298N к моторам:

// Моторная установка А правая сторона

Подключиться сторона "+" (красная) двигателей к Out 4

Подключите "-" (черный) стороны двигателей к Out 3

// Моторная установка B левая сторона

Подключиться сторона "+" (красная) двигателей к Out 2

Подключите «-» (черный) стороны двигателей к выходу 1

Подключите аккумулятор к приводному модулю L298N «+» (красный) к VCC и «-» (черный) к GND

Полная схема

Код

  • Автомобиль с ИК-пультом дистанционного управления
ИК-пульт дистанционного управления автомобилем C #
 #include  команда char; int Receiver_pin =4; // Подключаем выходной контакт ИК-приемника к контакту 4int vcc =5; // VCC для ИК-датчика int gnd =6; // GND для ИК-датчика int statusled =13; IRrecv irrecv (Receiver_pin); decode_results results; // подключаем контакты контроллера мотора к цифровым контактам Arduino // мотор Aint enA =8; int in1 =12; int in2 =11; // мотор Bint enB =7; int in3 =10; int in4 =9; void setup () {Serial.begin (9600); irrecv.enableIRIn (); pinMode (statusled, OUTPUT); digitalWrite (statusled, LOW); // установить все выводы управления двигателем к выходам pinMode (enA, OUTPUT); pinMode (enB, ВЫХОД); pinMode (in1, ВЫХОД); pinMode (in2, ВЫХОД); pinMode (in3, ВЫХОД); pinMode (in4, ВЫХОД); pinMode (vcc, ВЫХОД); pinMode (земля, ВЫХОД); // Инициализация вывода vcc high digitalWrite (vcc, HIGH);} void loop () {if (irrecv.decode (&results)) {digitalWrite (statusled, LOW); irrecv.resume (); if (results.value ==0xFF18E7 ) {// введите кнопку 2 вперед, управление роботом // эта функция запустит двигатели в обоих направлениях с фиксированной скоростью Serial.println ("Button 2"); // включаем мотор A digitalWrite (in1, HIGH); digitalWrite (in2, LOW); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enA, 100); // включаем двигатель B digitalWrite (in3, HIGH); digitalWrite (in4, LOW); // устанавливаем скорость на 200 из возможного диапазона 0 ~ 255 analogWrite (enB, 100);} else if (results.value ==0xFF10EF) {// нажимаем кнопку 4, повернем налево, управление роботом // эта функция запустит двигатель A в остановка двигателя B прямого направления Serial.println («Кнопка 4»); // включаем мотор A digitalWrite (in1, HIGH); digitalWrite (in2, LOW); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enA, 100); // включаем двигатель B digitalWrite (in3, LOW); digitalWrite (in4, LOW); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enB, 100); } else if (results.value ==0xFF30CF) {// введите кнопку 1, поверните левый элемент управления роботом // эта функция запустит двигатель A в прямом направлении двигатель B в обратном направлении Serial.println ("Button Turn Right"); // включаем мотор A digitalWrite (in1, HIGH); digitalWrite (in2, LOW); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enA, 100); // включаем двигатель B digitalWrite (in3, LOW); digitalWrite (in4, HIGH); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enB, 100); } else if (results.value ==0xFF5AA5) {// введите кнопку 6, поверните вправо, управление роботом // эта функция остановит двигатель A, чтобы запустить двигатель B в прямом направлении Serial.println ("Button Turn Left"); // включаем двигатель A digitalWrite (in1, LOW); digitalWrite (in2, LOW); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enA, 100); // включаем двигатель B digitalWrite (in3, HIGH); digitalWrite (in4, LOW); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enB, 100);} else if (results.value ==0xFF7A85) {// нажимаем кнопку 3, вращаем вправо, управление роботом // эта функция запускает двигатель A в назад двигатель B в прямом направлении // включаем двигатель A digitalWrite (in1, LOW); digitalWrite (дюйм2, ВЫСОКИЙ); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enA, 100); // включаем двигатель B digitalWrite (in3, HIGH); digitalWrite (in4, LOW); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enB, 100);} else if (results.value ==0xFF4AB5) {// вводим кнопку 8 назад управление роботом // эта функция запускает двигатель A и двигатель B в обратном направлении // включаем мотор A digitalWrite (in1, LOW); digitalWrite (дюйм2, ВЫСОКИЙ); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enA, 100); // включаем двигатель B digitalWrite (in3, LOW); digitalWrite (in4, HIGH); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enB, 100);} else if (results.value ==0xFF38C7) {// нажимаем кнопку 5, останавливаем управление роботом // эта функция останавливает как двигатель A, так и мотор B // включаем мотор A digitalWrite (in1, LOW); digitalWrite (in2, LOW); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enA, 100); // включаем двигатель B digitalWrite (in3, LOW); digitalWrite (in4, LOW); // устанавливаем скорость на 200 вне возможного диапазона 0 ~ 255 analogWrite (enB, 100); }}} 

Схема


Производственный процесс

  1. Цепи управления
  2. С# конструктор
  3. Универсальный пульт дистанционного управления Raspberry Pi
  4. Контроль заполнения бассейна
  5. Удаленный монитор сердечного ритма
  6. Повторное использование нежелательного инфракрасного пульта дистанционного управления для выключения и пе…
  7. Атака безопасности ICS позволяет удаленно управлять зданиями
  8. Облачный мониторинг, система удаленного управления
  9. 5 преимуществ дистанционного управления производством
  10. Дистанционное управление мостовым краном:все, что вам нужно знать