Автомобиль с ИК-пультом дистанционного управления
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 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); }}}
Схема
Производственный процесс
- Цепи управления
- С# конструктор
- Универсальный пульт дистанционного управления Raspberry Pi
- Контроль заполнения бассейна
- Удаленный монитор сердечного ритма
- Повторное использование нежелательного инфракрасного пульта дистанционного управления для выключения и пе…
- Атака безопасности ICS позволяет удаленно управлять зданиями
- Облачный мониторинг, система удаленного управления
- 5 преимуществ дистанционного управления производством
- Дистанционное управление мостовым краном:все, что вам нужно знать