Андрей Смирнов
Время чтения: ~20 мин.
Просмотров: 111

Простой ик-бот на arduino uno и iskra js

Кнопка 4 контактная схема подключения

Дополнительно “-” от АКБ проложен на “корпус” авто 16 мм2.

Все работает.Где и как доставать + от зажигания или еще откуда я подскажу, т.к. не знаю.

Реализовав такое подключение отдельными проводами я раз и на всегда избавил себя от поисков. чего и вам советую

Тактовая кнопка — простой, всем известный механизм, замыкающий цепь пока есть давление на толкатель.

Кнопки с 4 контактами стоит рассматривать, как 2 пары рельс, которые соединяются при нажатии.

Эффект дребезга

При замыкании и размыкании между пластинами кнопки возникают микроискры, провоцирующие до десятка переключений за несколько миллисекунд. Явление называется дребезгом (англ. bounce). Это нужно учитывать, если необходимо фиксировать «клики».

Схема подключения

Напрашивается подключение напрямую. Но это наивный, неверный способ.

Пока кнопка нажата, выходное напряжение Vout = Vcc, но пока она отпущена, Vout ≠ 0. Кнопка и провода в этом случае работают как антенна, и Vout будет «шуметь», принимая случайные значения «из воздуха».

Пока соединения нет, необходимо дать резервный, слабый путь, делающий напряжение определённым. Для этого используют один из двух вариантов.

В магазинах часто можно встретить выключатели, в которые уже встроена подсветка. Однако просто так менять установленный выключатель вряд ли кто-то захочет. Но искать в темноте клавишу на ощупь тоже не всегда удобно.

Практичность выключателей с подсветкой

Выключатель с подсветкой, схема подключения которого практически такая же, как и у обычных выключателей, стал очень популярен. Любой, кому надоело искать выключатель в ночной темноте, может внести в это устройство небольшие изменения, даже если у него нет специальных знаний в электрике.

В любой выключатель можно вставить светодиод, используя довольно простые схемы. Между собой доступные схемы различаются своими характеристиками, а не только комплектацией.

Если лампы энергосберегающие, то они могут светиться в темноте или мерцать, что тоже не является правильным результатом.

Схемы подключения выключателей

Существует много приемлемых схем, каждая из которых имеет свои плюсы и свои минусы. Разобраться в существующих схемах подключения светодиодной подсветки в выключатель не сложно.

Например, выключатель с подсветкой, схема подключения которого представлена ниже.

Когда выключатель находится в положении “Выключено”, то ток проходит через сопротивление (R1-любое, в диапазоне от 100 до 150 кОм). После сопротивления он проходит через VD2 (светодиод, который при этом светится). Для того чтобы защитить светодиод от напряжения, ставим диод VD1.

Особенно хорошо светит при такой схеме подключения резистор с током 3 мА. Если же окажется, что светодиод светится слабовато, то следует уменьшить номинал сопротивления. Светодиод и диод в этой схеме подойдут любые. Можно и самому рассчитать необходимые параметры резистора.

Достаточно всего лишь вспомнить классический закон силы тока.

Рассмотрим еще один выключатель с подсветкой, схема подключения которого крайне проста, но с небольшим недостатком. Дело в том, что она потребляет около 1 киловатта в месяц.

Направленные вниз концы подключаем к клеммам. Если в доме нет паяльника, или по какой-то причине нет желания возиться с этим, то эта схема подходит идеально. Она выполнена на скрутках. Хотя, из соображений безопасности и долговечности прибора, места соединения все же лучше пропаять, а резистор хорошенько заизолировать.

Схема светодиодной подсветки выключателя с конденсатором

Чтобы на порядок повысить уровень свечения, можно использовать конденсатор. А резисторный ток, наоборот сократить до 90-100 Ом. Можно использовать выключатель с подсветкой, схема подключения которого отличается от предыдущей тем, что вместо резистора используется конденсатор. А резистор (R1) играет роль ограничителя зарядного тока.

Правда, собранная по этой схеме подсветка отличается большими габаритами, но зато отличается крайне низким энергопотреблением — около 0,05 ватт в месяц.

Подключение проходного выключателя

Если рассматривать выключатель Legrand с подсветкой, схема подключения которого находится выше, то необходимо отметить, что он отличается безопасностью использования этой продукции, которая изготовлена из материалов, значительно увеличивающих срок эксплуатации. А о простоте подключения выключателей этой компании и говорить не приходится, настолько все продумано и легко осуществляется.

Introduction: How to Use IR Remotes With Arduino

By HavocRCYoutubeFollow

More by the author:

About: 19 year old hobbyiest and future EE.

More About HavocRC »

I’m tired of these complicated tutorials on how to use certain things. I like simple, easy to understand, step by step instructions. My biggest problem was with IR and POV*. I’ve finally mastered how to control my project with any TV remote in a few minutes. In this i’ble I’m going to show you simple, step by step instructions on how to control just about anything with your IR remote. By the way this tutorial is new and updated and works! Last update [ 10/12/2015 ]

IMPORTANT NOTICE:

With the latest release of the Arduino IDE there is a conflicting library that renders this tutorial void. If you’d still like to use this tutorial delete the library called «RobotIRemote». This file will be in the Arduino program. Instructions for deleting this file is in step 3.

This library is for a specific robot that Arduino/venders sell. Unless you intend on buying that shield you can delete that folder and continue with this set of instructions. You can always download it again later!

Step 5: Installing the IR Library

The very first thing that we need to do associating with Arduino is to download the IR library. To make things simpler, I have included a .zip of the IR library. Download it to your computer, unzip it, then place it in your Arduino libraries folder. Don’t know where it is?

Open up the Arduino IDE and on the menu select Sketch>IncludeLibrary>Add Library and select the ‘IRremote’ folder. If you are on a PC you need to delete the mac content within the IRremote folder.

For manual placement go to

Mac: Applications/Arduino (right mouse click —>show package contents) /Contents/Java/libraries/Windows: C:\Program Files (x86)\Arduino\libraries\

Here is the IR remote folder

Инструкция по изготовлению лодки с пультом

Проверку работы ИК-приемника и сервомотора на Ардуино лучше проводить с отключенным электромоторчиком, поскольку он будет создавать сильные вибрации при работе. На этом этапе тестирования проекта следует лишь оценить подвижность киля и отцентровать рычаг привода на сервомоторе. Необходимо сделать так, чтобы при нажатии кнопки «вперед» или «стоп» на пульте, киль вставал по центру.

1. Изготовление корпуса лодки из пеноплекса


Изготовление корпуса лодки на Ардуино своими руками

Размеры и форма лодки могут быть абсолютно разными — все зависит лишь от фантазии. Что касается прорезей, то они должны соответствовать размерам деталей. На трафарете (слева-направо) размечены прорези для: платы Ардуино UNO, сервомотора, привода киля и микромоторчика. Учтите, что привод от сервомотора к килю должен свободно ходить в прорези, для этого надо точно рассчитать радиус.

2. Изготовление деталей для привода и управления


Изготовление деталей для привода и управления лодкой

Киль можно изготовить из любого материала — пластик, дерево и т.д. Стержень от ручки, прикрепленный к килю служит осью, на котором он поворачивается. Скрепка на киле обеспечивает подвижное соединение киля и рычага сервомотора из проволоки. Размер и конструкция привода сервомотора будет зависеть от конструкции лодки. Винт изготавливается из стержня шариковой ручки и куска пластиковой баночки.


Сборка деталей для привода радиоуправляемой лодки

3. Сборка лодки на Ардуино с управлением


Для начала следует установить плату, сервопривод и двигатель

В этом проекте мы обошлись без использования макетной платы. Если вспомнить схему подключения ИК приемника к Ардуино, то она очень проста (слева-направо): A0 — GND — 5V  и не требует расходов на приобретение макетной платы. Транзистор мы использовали в этой схеме для включения советского электромоторчика от 3,3 V.


Сборка электрической схемы лодки на ИК управлении

Транзистор размещен на пинах 12, 11 и 10. На Pin11 (средняя ножка транзистора — это база) мы подаем напряжение для включения электродвигателя. Pin12 и Pin10 в скетче не используются, поэтому служат нам эмиттером и коллектором. К Pin12 подключен выход 3,3 V, а к Pin10 подключен электромоторчик (красный плюсовой провод).

4. Крепление привода винта на валу двигателя


Разогрейте стержень от ручки над паяльником и он зайдет на вал двигателя

Винт для судна изготавливается из любой пластиковой баночки или корпуса с небольшим закруглением, например, баночка от витаминок или корпус от  клея-карандаша. Для начала необходимо вырезать из пластика винт в форме восьмерки, а затем выпрямить противоположные края винта, используя высокую температуру для размягчения пластика. Смотрите фото винта для лодки Ардуино выше.

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

#include <IRremote.h> // библиотека для IR-приемника
#include <Servo.h>      // библиотека для сервомотора

// Замените коды команд от пульта ДУ на свои значения
#define forward 16736925
#define left 16769565
#define right 16754775
#define turm_left 16712445
#define turm_right 16711935
#define stope 16755285

Servo servo; // присваиваем имя сервомотору

int RECV_PIN = A0;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  Serial.begin(9600); // подключаем монитор, чтобы узнать коды кнопок пульта
  irrecv.enableIRIn();
  pinMode(11, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(A0, INPUT);
  servo.attach (7);
}

void loop() {
  
    if (irrecv.decode(&results)) {
    
    Serial.println(results.value); // выводим на монитор порта коды с пульта ДУ

    if (results.value == left) {
    servo.write(60);
    digitalWrite(11, HIGH);
   }
   
    if (results.value == right) {
    servo.write(120);
    digitalWrite(11, HIGH);
   }
   
    if (results.value == turm_left) {
    servo.write(10);
    digitalWrite(11, HIGH);
   }
   
    if (results.value == turm_right) {
    servo.write(170);
    digitalWrite(11, HIGH);  
   }
   
    if (results.value == forward) {
    servo.write(90);
    digitalWrite(11, HIGH);
   }
   
    if (results.value == stope) {
    servo.write(90);
    digitalWrite(11, LOW);
   }
   
    irrecv.resume(); // Ждем следующий сигнал от пульта
  }  
}

Собираем передатчик IR сигнала.

Подключение IR передатчика к Arduino производится следующим образом: минус передатчика подключаем к пину GND. Плюс подключаем к 3 пину (цифровой выход). Причем, номер пина указан в самой библиотеке IRremote, и выставить другой пин в самом скетче нельзя. Поэтому внимательно удостоверьтесь в том, что плюс передатчика подключен правильно. Так же, желательно, плюс к пину подключать через резистор 180 Ом, чтобы не спалить передатчик (я не использовал).
Открываем скетч для примеров IRsendRawDemo, библиотеки IRremote, находим обьявление одномерного массива irSignal[], где указан код сигнала у формате Raw, и заменяем на свой. Например: .
Проверяем скетч на ошибки, и загружаем его в контроллер. После загрузки, каждые 5 секунд, arduino будет отправлять сигнал. Если поднести его к управляющему устройству, должно произойти какие-то изменение (в моем случае – включение кондиционера). Если нет изменений, проверьте, работает ли сам передатчик: включите камеру на телефоне, и наведите на передатчик. Каждые 5 секунд, передатчик должен засветиться. Если передатчик работает – проверяйте правильность ввода Raw кода сигнала в скетч передатчика. Если передатчик не светится, проверьте подключение и работоспособность передатчика (возможно, Вы подключили передатчик без резистора, и он сгорел, или подключили слишком большой резистор). Переходим к третьему шагу.

Как подключить датчик KY-039 к Ардуино

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • KY-039 датчик для измерения пульса в пальце;
  • макетная плата;
  • светодиод и резистор 220 Ом;
  • провода «папа-папа», «папа-мама».

Следующий скетч для KY-039 приводится на всех форумах и сайтах в качестве общепринятого примера. Данные работы программы оставляют желать лучшего, датчик просто отправляет, рандомные значения немного похожие на правду. Код можно использовать лишь в качестве тестирования правильности подключения сенсора к микроконтроллеру, поэтому комментировать код смысла не имеет.

Счетч для датчика сердцебиения KY-039


Как подключить датчик сердцебиения KY-039 к Ардуино

double alpha = 0.75;
int period = 100;
double change = 0.0;
double minval = 0.0;

void setup() {
    Serial.begin(9600);
    pinMode(A1, INPUT);
}

void loop() {
     static double oldValue = 0;
     static double oldChange = 0;
     int rawValue = analogRead(A1);
     double value = alpha * oldValue + (1 - alpha) * rawValue;
     Serial.print (rawValue);
     Serial.print (",");
     Serial.println (value);
     oldValue = value;
     delay(period);
}

Пояснения к коду:

  1. код имеет много лишних строчек и глобальных переменных Ардуино.

Счетч измерения пульса датчиком KY-039

Следующий код выводит на монитор порта пульс (количество ударов сердца в минуту). Данные намного достовернее, чем в предыдущем примере, кроме того мы добавили светодиод в схему. Напоминаем, что на датчик влияет внешнее излучение (солнечный свет, лампа и т.д.), а данные выводятся на монитор порта Arduino IDE с небольшой задержкой. Подключите датчик и загрузите следующий скетч в Ардуино.


Схема подключения датчика KY-039 к плате Ардуино Уно

#define samp_siz 4 // количество расчетов - можно увеличить до 20
#define rise_threshold 5

void setup() {
    Serial.begin(9600);
    pinMode(A1, INPUT);
    pinMode(A1, OUTPUT);
}

void loop() {

  float reads, sum;
  long int now, ptr;
  float last, reader, start;
  float first, second, third, before, print_value;
  bool rising;
  int rise_count;
  int n;
  long int last_beat;

  for (int i=0; i<samp_siz; i++)
    reads = 0;
  sum = 0;
  ptr = 0;

  // в течение 20 мс вычисляем среднее значение датчика
  while (1) {
    n = 0;
    start = millis();
    reader = 0.;
    do {
      reader += analogRead(A1);
      n++;
      now = millis();
    }

    // записываем полученное среднее значение в массив
    while (now // проверяем, появляется ли увеличение среднего значения
    if (last > before) {
      rise_count++;

      // если значение увеличивается, что подразумевает сердцебиение
      // включаем светодиод и записываем время с последнего удара
      // отслеживаем два предыдущих удара, чтобы получить взвешенное среднее
      if (!rising && rise_count > rise_threshold) {
        digitalWrite(10, HIGH);
        rising = true;
        first = millis() - last_beat;
        last_beat = millis();

        // рассчитываем средневзвешенную частоту сердечных сокращений
        print_value = 60000. / (0.4 * first + 0.3 * second + 0.3 * third);
        Serial.println(print_value);
        third = second;
        second = first;
      }
    }
    else {
      rising = false;
      rise_count = 0;
      digitalWrite(10, LOW);
    }
    before = last;
    ptr++;
    ptr %= samp_siz;
  }
}

IR технология

Самый дешевый способ для удаленного управления устройством в видимой доступности с помощью инфракрасного излучения. Почти всей аудио и видео техникой можно управлять таким образом. Благодаря широкому распространению необходимые компоненты довольно дешевы, что делает эту технологию идеальной для нас, любителей использовать ИК-пульта для наших собственных проектов.

Инфракрасное излучение на самом деле нормальный свет с определенным цветом. Мы, люди, не можем видеть этот цвет, потому что его длина волны 950 нм, что ниже видимого спектра. Это одна из причин, почему ИК выбран для нужд телемеханики, мы хотим использовать его, но мы не заинтересованы его видеть. Хотя мы не можем видеть инфракрасный свет, излучаемый от пульта дистанционного управления, но это не означает, что мы не можем сделать его видимым.

Видеокамера или цифровой фотоаппарат «видит» инфракрасный свет, как вы можете видеть на видео ниже. Даже самые дешевые сотовые телефоны имеют встроенные камеры. Просто наведите пульт на такую ??камеру, нажмите любую кнопку, и вы увидите светодиодные мерцания.

Print Keys to an LCD

Instead of printing the key values to the serial monitor, you can also display the information on an LCD. Check out our article on setting up and programming an LCD on the Arduino for more information on programming the LCD, but the basic setup looks like this:

The resistor sets the LCD’s backlight brightness. It can be anything from 200 ohms to about 2K ohms. The potentiometer sets the character contrast. I normally use a 10K ohm potentiometer for this one.

Once everything is connected, upload this code to the Arduino:

Again, if the hex codes don’t match the codes output by your remote, just replace them for each character where it says .

PIR sensor: устройство, характеристики

Сегодня уже никто не удивляется при автоматическом включении освещения в подъездах многоквартирных домов, которые срабатывают при прохождении человека. В большинстве приборов установлены пассивные датчики движения (PIR). Рассмотрим в этой статье устройство датчика движения, схему его подключения к Arduino UNO и соберем на его основе автоматический включатель освещения.

Линза Френеля концентрирует инфракрасное излучение

Модуль с ПИР датчиком состоит из пироэлектрического элемента под пластиковой линзой Френеля — цилиндрическая деталь с прямоугольным кристаллом в центре, который улавливает уровень инфракрасного излучения и пропускает его через себя. При подключении IR к Arduino мы уже выяснили, что все предметы имеют инфракрасное излучение и чем выше температура, тем интенсивнее излучение.

Устройство и распиновка пироэлектрического датчика движения

PIR датчики движения практически одинаковы по устройству. Диапазон чувствительности PIR сенсоров для Ардуино до 6 метров, угол обзора 110° x 70°. Питание — 5 Вольт, а выходной цифровой сигнал имеет значение 0, когда движения нет и значение 1 при наличии движения. Чувствительные элементы устанавливается в герметический корпус, который защищает от влажности и перепадов температур.

Настройка приложения для Android для создания инфракрасного передатчика

В качестве приложения Android для нашего универсального инфракрасного пульта мы будем использовать приложение MIT’s APP inventor-2, но вы можете использовать любое другое подобное приложение. А если вы еще и профессионал в программировании на Android, то вы можете достигнуть гораздо лучших результатов чем рассмотренные в нашем проекте. Все, что нам понадобится, это создать несколько кнопок в приложении.

При создании кнопок в этом приложении старайтесь давать кнопкам осмысленные названия, чтобы они по смыслу соответствовали кнопкам пультов ДУ, которые вы будете замещать своим пультом. Также следите за тем текстом (набором символов), который будет передаваться при нажатии каждой кнопки. Также удостоверьтесь в тем, что вы обеспечиваете правильный адрес для своего модуля Bluetooth HC-05. На следующем рисунке показан примерный вид экрана приложения, который вы должны создать.

Вам целесообразно выполнить следующую последовательность шагов.

Шаг 2. После того как вы залогинитесь в ai2.appinventor.mit.edu с помощью своего аккаунта Google, вас перебросит на рабочую веб-страницу AI2, которая будет выглядеть примерно следующим образом:

Начните новый проект при помощи нажатия вкладки “Projects” вверху экрана и выберете там “Start New Project”. После этого вы увидите пустой экран, на котором вы можете разместить нужные вам кнопки и текст.
Для использования пакета с кнопками выберите вкладку “Button” в левом крае экрана под секцией “User Interface”. Просто перетащите любой пакет из меню слева и поместите его на рабочий экран. Аналогично текст можно поместить на рабочий экран с помощью пакета “Label”.

Шаг 3. После того как вы разместите на экране все необходимые вам кнопки и текстовые метки (labels) можно заняться кодом для этого приложения. Но перед этим необходимо выбрать пакет Bluetooth поскольку именно с помощью этой технологии вы будете связываться с Arduino.

Этот пакет не показывается сразу на экране потому что он расположен под “Non-visible Components” – это компоненты, которые не отображаются в графическом интерфейсе пользователя.

Шаг 4. На этом шаге вам предстоит формирование программного кода, в котором вы должны определить функции для всех компонентов, которые вы выбрали, и каким образом вы будете работать с ними.

Слева экрана вы увидите все пакеты, которые вы выбрали в графической секции (GUI section). Картинки сверху показывают все компоненты, которые содержатся в каждом использованном вами пакете. Также учтите, что адрес Bluetooth модуля будет нужен в текстовом формате.

Шаг 5. После того как вы завершите конфигурирование вашего приложения, нажмите на вкладку “Build” как показано выше и выберите вторую опцию. Это позволит скачать созданное вами приложение на компьютере в “.apk” формате. Затем просто передайте этот .apk файл на ваш телефон с Android и установите приложение там.

Принцип работы универсального пульта

Многие из вас для управления телевизором вынуждены использовать 2 пульта ДУ: один для управления телевизором и один для управления телевизионной приставкой. В этом проекте мы объединим эти 2 пульта на основе смартфона чтобы с его помощью можно было управлять телевизором в полной мере, не задействуя дополнительные пульты.

Используя плату Arduino Uno достаточно просто в этом универсальном пульте ДУ реализовать процессы кодирования и декодирования нужных сигналов. Для удобства изготовления подобного устройства целесообразно сконструировать самодельный шилд (плату расширения) для платы Arduino как показано на следующем рисунке. Шилд будет состоять из приемника (ресивера) TSOP IR 1838T, инфракрасного светодиода и Bluetooth модуля (HC-05).

Вы можете либо изготовить приведенный шилд, либо просто соединить эти компоненты с платой Arduino Uno как показано на приведенной ниже схеме устройства.

Большинство инфракрасных устройств работают на частоте 38 кГц, поэтому мы и выбрали для нашего проекта 1838T. При этом рассматривая принципы работы устройств с инфракрасной связью следует помнить о том, что в них нет логических единиц и нулей в прямом понимании этих понятий. И единица, и ноль в этих устройствах кодируются набором специальных импульсов как показано на следующем рисунке. Сущность этих процессов кодирования описана в NEC протоколе.

Принцип работы проектируемого нами универсального пульта ДУ будет заключаться в следующем. Сначала смартфон с помощью приложения для Android передает сигнал плате Arduino при помощи технологии Bluetooth, далее Arduino принимает его при помощи приемника TSOP-IR (1838T) и анализирует его. Затем Arduino передает команду инфракрасному светодиоду чтобы он мигал по определенному алгоритму (шаблону), зависящему от того, какая кнопка нажата в приложении для Android в смартфоне. Этот сигнал принимается телевизором или телевизионной приставкой, которые выполняют закодированную в сигнале команду.

Но перед осуществлением этого проекта мы должны декодировать сигналы с пультов ДУ, которые мы хотим заменить. Этот процесс рассмотрен далее в статье.

Напряжение без нагрузки

После включения аппарата, до момента поджига дуги напряжение на кончике электрода существенно выше, чем во время работы. И чем оно выше, тем легче поджечь дугу. Но стандарты запрещают уровень напряжения холостого хода на аппаратах, выдающих прямой ток, свыше 100В.

Для еще большего сокращения рисков используют т.н. блоки VRD. Аппарат, снабженный VRD, имеет на кончике электрода до начала поджига дуги всего несколько вольт. И лишь при прикосновении к металлу напряжение холостого хода восстанавливается до уровня, необходимого для поджига дуги.

На всех электродах всегда указывается полярность подключения, тип сварочного тока (постоянный или переменный) и минимально требуемый для поджига уровень напряжения холостого хода. Для абсолютного большинства широко распространенных электродов он не превышает 60В.

Напряжение холостого хода, также как и сварочный ток, зависит от уровня входного напряжения. Чем ниже напряжение в источнике питания, тем ниже напряжение холостого хода. Поэтому по мере снижения напряжения питания поджиг электрода становится все сложнее.

Радиоуправление на Arduino

Соберем радиоуправление на основе Arduino Uno и радиомодуля MX-05v. Этот модуль работает на частоте 443 МГц, что позволяет использовать его под водой (волны в диапазоне 2.4 ГГц не проникают под воду). Потом поставим его на модель Радиоуправляемой Подводной Лодки.

Радиомодуль MX-05V + MX-FS-03V подкупает своей низкой ценой – около 60 рублей за пару. Заявленной дальности связи 20-200 метров хватает для небольших моделей машин или лодок.

Сделаем одноканальную аппаратуду. Для этого нам понадобятся:

  • 2 платы Ардуино для приемника и передатчика
  • комплект радиомодуля MX-05V + MX-FS-03V
  • переменный резистор или джойстик для передатчика
  • рулевая машинка (серва) для приемника

Суть работы программы заключается в следующем:

  • считываем значение с переменного резистора (число от 0 до 1023)
  • переводим это число в 2 байта (16 бит, т.к. 1023 занимает 10 бит и не поместится в один байт)
  • передаем по радио-каналу
  • приемник принимает 2 байта по радио каналу
  • переводит их обратно в число от 0 до 1023
  • передает команду серво-машинке

Принцип работы Arduino доступно описан на разных веб-ресурсах. Мне понравился бесплатный обучающий онлайн курс «Строим роботов и другие устройства на Arduino». Рекомендую.

Загружаем текс программы (скетч) для передатчика и приемников. Кстати, программы надо хранить в разных папках, иначе во время компиляции они будут сливаться в один файл и конфликтовать из-за дублирования функций setup и loop. Как подключить сторонние библиотеки к Arduino описано например тут.

Передатчик

// Библиотека передатчика
#include void setup() { // Запуск передатчика vw_set_ptt_inverted(true); vw_setup(1000); // Bits per sec } void loop() { // чтение показаний с переменного резистора int sensorValue = analogRead(A0); // отправляем значение send(sensorValue); } void send(int param) { // конвертируем int в массив из 2 байт uint8_t msg; int len = 2; msg = highByte(param); msg = lowByte(param); // отправляем непосредственно в радиоканал vw_send(msg, len); // ждем пока сообщение не уйдет целиком vw_wait_tx(); }

Приемник

// Библиотека для приемника
#include // Библиотека для серво машинки. В отличии от обычной Servo.h не конфликтует с VirtualWire.h
// Скачать библиотеку можно тут. // http://en.osdn.jp/projects/sfnet_pgahtow/downloads/Arduino%20(v1.0)%20libaries/ServoTimer2.zip/
// Надо закомментировать 41 строчку в файле ServoTimer2.

h в случае ошибки компиляции
// ‘typedef uint8_t boolean;’
#include // Создаем объект серво-машинки
ServoTimer2 myservo; void setup() { // для отладки // Serial.begin(9600); // Запуск приемника vw_set_ptt_inverted(true); vw_setup(1000); // бит в секунду vw_rx_start(); // запуск приемника // подключаем серво к 6 пину myservo.

attach(6);
} void loop() { uint8_t msg; uint8_t len = 2; if (vw_get_message(msg, &len)) { // переводим байты в int int value = word(msg, msg); // подгоняем под диапазон входных данных сервы int sValue = map(value, 0, 1023, 600, 2400); myservo.write(sValue); // Serial.

println(sValue); }
}

И в итоге – ничего не работает! Почему?

Питание

Радиомодуль MX-05V очень простой, из-за этого он очень восприимчив к внешним помехам. И даже такой маленький мотор как в серво-машинке способен нарушить его работу.

Для того, чтобы минимизировать влияние электромотора (это касается только колекторных моторов), нужно разделить питание силовой части от приемника. При этом «минус» у них должен быть общий.

Итоговая схема подключения приемника выглядит так.

Результат

Данные радиомодуль слишком восприимчив к помехам, и управлять летательной техникой на нем нельзя. Но для игрушечной машинки или лодки вполне подойдет.

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации