Ик приемник + ардуино. подключение

Z- IR receiver. Модуль ИК приемника

Опубликовано 05.05.2014 8:44:00

Модуль ИК Приемника в связке и ИК пультом дистанционного управления позволит легко реализовать дистанционное управление платой Arduino.

Он представляет из себя не что иное, как ИК приемник VS1838B с установленной на плате рекомендуемой производителем обвязкой.

Arduino Start #2. Управление arduino ИК-пультомArduino Start #2. Управление arduino ИК-пультом

Для работы с данным модулем “из коробки” необходим ПДУ с частотой 38 кГц.

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

• Напряжение питания: 2.7 – 5.5В

• Частота модуляции: 38кГц

• Диапазон температур: – 20 … +  80°C

• Интерфейс: Цифровой

Подключение к Arduino

Модуль оборудован трехпиновым разъемом стандарта 2.54мм

 : подключается к выводу GND

 подключается к выводу +5V

 : подключается к цифровому выводу ( в примере D2 )

Пример работы в среде Arduino

Для работы с данным модулем необходимо установить библиотеку IRRemote

Скачиваем, распаковываем и закидываем в папку libraries в папке Arduino. В случае, если на момент добавления библиотеки, Arduino IDE была открытой, перезагружаем среду.

Считывание показаний кнопок ПДУ

Для считывания показаний пульта заливаем нижеприведенный скетч. Он будет выводить в порт кодировки нажатых кнопок.

В качестве примера будем использовать пульт, как на картинке, т.к. пульт такого типа идет в наборе ИК пульт + ИК модуль приемник

Пример программного кода:

// Тестировалось на Arduino IDE 1.0.3
#include 
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN); //Создаем объект получения сигнала с определенного порта
decode_results results; //Переменная, хранящая результат void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Начинаем прием
} void loop() {
  if (irrecv.decode(&results)) //При получении сигнала…
  { 
    Serial.println(results.value); //…выводим его значение в последовательный порт
    irrecv.resume(); // Получаем следующее значение
  }
}

В мониторе порта должны увидеть слудущее:

При почти секундном удержании каждой кнопки, мы получаем около 10 кодов. Первый из них и является кодом кнопки. А после него начинает идти стандартный код, который сообщает о залипании кнопки.

Управление платой Arduino c ПДУ

Заставим светодиод на плате Arduino (D13) загораться при получении кодировки первой кнопки и выключаться при получении кодировки второй.

Пример программного кода:

// Тестировалось на Arduino IDE 1.0.3
#include  int RECV_PIN = 2;
int LED = 13;
IRrecv irrecv(RECV_PIN);
decode_results results; void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Запуск приемника
  pinMode(LED, OUTPUT);
} void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value);
    if (results.value == 16769565) // При получении кодировки 1
    {
      digitalWrite(LED, HIGH); // Включаем светодиод
    }
    if (results.value == 16761405) // При получении кодировки 2
    {
      digitalWrite(LED, LOW); // Выключаем светодиод
    }
    irrecv.resume(); // Получаем следующее значение
  }
}

Купить в России  Z- Модуль ИК приемника

В данный момент еще реализованы не все элементы нашего сообщества. Мы активно работаем над ним и в ближайшее время возможность комментирования статей будет добавлена.

Шаг 1. Тестируем Ардуино

Прежде всего мне пришлось начать с небольшого примера, который позволяет мне протестировать применение идеи. В этом примере я не подключил какой-либо датчик, я использовал только встроенный светодиод на Arduino, чтобы я мог включать и выключать светодиодный индикатор на выводе 13, отправив буквы «I» и «O» на последовательный порт.

int input; //Будет хранить входящий символ из последовательного порта.
int led = 13; // Pin 13
// функция настройки запускается один раз, когда вы нажимаете кнопку сброса или включаете питание
int state;

void setup() {
  // инициализировать цифровой вывод LED_BUILTIN в качестве выхода.
  
  Serial.begin(9600);

  pinMode(led, OUTPUT); // Установите контакт 13 как цифровой выход
  Serial.flush();
  
}

// функция цикла работает снова и снова всегда
void loop() {

    //    String input = "";
    
    //    while (Serial.available() > 0) 
    //    {
    //       input += (char) Serial.read();
    //       delay(5);
    //      }

    state = digitalRead(led);
    
    
   if (Serial.available()) {    

     input = Serial.read(); 
     
    if (input == 'I')
    {
      //digitalWrite(led, !digitalRead(led));
      digitalWrite(led, HIGH);
      Serial.println(1);
      delay(1000);
    }
    else if (input == 'O')
    {
      digitalWrite(led, LOW);
      Serial.println(0);
      delay(1000);
    }
    else if (input == 'T')
    {
      analogRead(led);
      Serial.println(0);
      delay(1000);
    }
   }       
}

Принцип работы системы

Питание Ардуино

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

На плате Ардуино возможно подключение питания 3 способами:

  1. Через внешний адаптер в пин Vin (и GND), который ведет ток через бортовой стабилизатор напряжения Arduino. Рекомендуемое напряжение – 7–12 В. Данный тип подключения подходит для Ардуино проектов с не очень большой нагрузкой.
  2. С помощью порта USB, что удобно при тестировании или программировании через ПК.
  3. Прямая подача на пин 5V. Этот способ обходит стабилизатор входного напряжения, поэтому может вывести плату из строя. Однако для питания больших Ардуино проектов Умный дом – это наиболее подходящий вариант подключения.

Пины питания:

5V – с этого пина подается питание внешним устройствам.

3.3V – на этот пин через внутренний стабилизатор подается напряжение 3.3 В.

GND – вывод на ноль.

VIN – пин для подачи внешнего напряжения.

IREF – пин для передачи информации о напряжении на внешние приборы.

Шаг 11. Код Ардуино

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

// Код ошибки: код 01; Радиус поворота выше скорости; Код 02; Скорость выше 255;
#define in1 5 //L298n Motor Driver pins.
#define in2 6
#define in3 10
#define in4 11
#define LED 13
int command; //Int to store app command state.
int Speed = 204; // 0 - 255.
int Speedsec;
int buttonState = 0;
int lastButtonState = 0;
int Turnradius = 0; //Set the radius of a turn, 0 - 255 Note:the robot will malfunction if this is higher than int Speed.
int brakeTime = 45;
int brkonoff = 1; //1 for the electronic braking system, 0 for normal.
void setup() {
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  pinMode(LED, OUTPUT); //Set the LED pin.
  Serial.begin(9600);  //Set the baud rate to your Bluetooth module.
}

void loop() {
  if (Serial.available() > 0) {
    command = Serial.read();
    Stop(); //Initialize with motors stoped.
    switch (command) {
      case 'F':
        forward();
        break;
      case 'B':
        back();
        break;
      case 'L':
        left();
        break;
      case 'R':
        right();
        break;
      case 'G':
        forwardleft();
        break;
      case 'I':
        forwardright();
        break;
      case 'H':
        backleft();
        break;
      case 'J':
        backright();
        break;
      case '0':
        Speed = 100;
        break;
      case '1':
        Speed = 140;
        break;
      case '2':
        Speed = 153;
        break;
      case '3':
        Speed = 165;
        break;
      case '4':
        Speed = 178;
        break;
      case '5':
        Speed = 191;
        break;
      case '6':
        Speed = 204;
        break;
      case '7':
        Speed = 216;
        break;
      case '8':
        Speed = 229;
        break;
      case '9':
        Speed = 242;
        break;
      case 'q':
        Speed = 255;
        break;
    }
    Speedsec = Turnradius;
    if (brkonoff == 1) {
      brakeOn();
    } else {
      brakeOff();
    }
  }
}

void forward() {
  analogWrite(in1, Speed);
  analogWrite(in3, Speed);
}

void back() {
  analogWrite(in2, Speed);
  analogWrite(in4, Speed);
}

void left() {
  analogWrite(in3, Speed);
  analogWrite(in2, Speed);
}

void right() {
  analogWrite(in4, Speed);
  analogWrite(in1, Speed);
}
void forwardleft() {
  analogWrite(in1, Speedsec);
  analogWrite(in3, Speed);
}
void forwardright() {
  analogWrite(in1, Speed);
  analogWrite(in3, Speedsec);
}
void backright() {
  analogWrite(in2, Speed);
  analogWrite(in4, Speedsec);
}
void backleft() {
  analogWrite(in2, Speedsec);
  analogWrite(in4, Speed);
}

void Stop() {
  analogWrite(in1, 0);
  analogWrite(in2, 0);
  analogWrite(in3, 0);
  analogWrite(in4, 0);
}

void brakeOn() {
  //Here's the future use: an electronic braking system!
  // read the pushbutton input pin:
  buttonState = command;
  // compare the buttonState to its previous state
  if (buttonState != lastButtonState) {
    // if the state has changed, increment the counter
    if (lastButtonState == 'F') {
      if (buttonState == 'S') {
        back();
        delay(brakeTime);
        Stop();
      }
    }
    if (lastButtonState == 'B') {
      if (buttonState == 'S') {
        forward();
        delay(brakeTime);
        Stop();
      }
    }
    if (lastButtonState == 'L') {
      if (buttonState == 'S') {
        right();
        delay(brakeTime);
        Stop();
      }
    }
    if (lastButtonState == 'R') {
      if (buttonState == 'S') {
        left();
        delay(brakeTime);
        Stop();
      }
    }
  }
  // save the current state as the last state,
  //for next time through the loop
  lastButtonState = buttonState;
}
void brakeOff() {

}

На этом всё. Хороших вам проектов.

Устройство ИК приемника. Принцип работы

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

Принцип работы IR ресивера. Обработка сигнала от пульта ДУ

ИК-приемник на Ардуино способен принимать и обрабатывать инфракрасный сигнал, в виде импульсов заданной длительности и частоты. Используется при изготовлении датчика препятствия и дальномера для Arduino. Обычно ИК-приемник имеет три ножки и состоит из следующих элементов: PIN-фотодиод, усилитель, полосовой фильтр, амплитудный детектор, интегрирующий фильтр и выходной транзистор.

Под действием инфракрасного излучения в фотодиоде, у которого между p и n областями создана дополнительная область из полупроводника (i-область), начинает течь ток. Сигнал поступает на усилитель и далее на полосовой фильтр, который настроен на фиксированную частоту: 30; 33; 36; 38; 40 и 56 килогерц и защищает приемник от помех. Помехи могут создавать любые бытовые приборы.

Шаг 8. Электрические соединения

Для реализации соединений нужны перемычки. Соедините красные провода двух двигателей (с каждой стороны) вместе и черные провода вместе. Таким образом у нас теперь есть два терминала с каждой стороны. MOTORA отвечает за два правых двигателя, соответственно два левых двигателя подключены к MOTORB. Следуйте инструкциям ниже, чтобы соединить все.

Соединения двигателей

Out1 -> Красный провод левого бокового мотора (+)

Out2 -> Черный провод левого двигателя (-)

Out3 -> Красный провод правой стороны двигателя (+)

Out4 -> Черный провод правой стороны двигателя (-)

LM298 -> Arduino

IN1 -> D5

IN2-> D6

IN2 -> D9

IN2-> D10

Модуль Bluetooth -> Arduino

Rx-> Tx

Tx -> Rx

GND -> GND

Vcc -> 3,3 В

Питание

12V -> Подключите красный провод аккумулятора

GND -> Подключите черный провод аккумулятора и вывод Arduino GND

5V -> Подключение к контакту Arduino 5V

Радиоуправление на 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». Рекомендую.

Arduino Start #2. Управление arduino ИК-пультомArduino Start #2. Управление 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 очень простой, из-за этого он очень восприимчив к внешним помехам. И даже такой маленький мотор как в серво-машинке способен нарушить его работу.

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

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

Результат

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

Беспроводное управление серводвигателем с помощью nRF24L01

Тестовый макет для проекта

Когда вы будете готовы, загрузите программы передатчика и приемника (приведены ниже) на соответствующие платы Arduino и подайте на них питание через USB порт. Вы также может запустить монитор последовательного порта для обеих плат, чтобы проверить, какое значение передается, и что принимается. Если всё работает должным образом, когда вы поворачиваете ручку потенциометра на стороне передатчика, то сервопривод на другой стороне должен вращаться соответствующим образом.

Работа проекта показана на демонстрационном видео ниже. Вполне нормально, если эти модули не заработают с первой попытки. Если вы столкнулись с какой-либо проблемой, снова проверьте код и разводку и попробуйте приведенные выше рекомендации по устранению неполадок.

Управление Ардуино через компьютер

Функция Serial.available() получает количество байт доступных для чтения из последовательного порта. Это те байты которые отправлены с компьютера и записаны в буфер последовательного порта. Буфер Serial monitor Arduino может хранить максимум до 64 байт. Функция используется также при взаимодействии Bluetooth модуля к Ардуино и полезна при отладке устройства на этапе проектирования.

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

Где купить платформу и запчасти

Все, о чем говорится в этой статье, можно без проблем купить на всем известном сайте. К сожалению, подавляющее большинство предложений основываются на стандартной платформе 4WD автомобиля с двумя несущими планками, не очень надежными двигателями и колесами, любящими ездить в “развалочку”. Но эти варианты относительно не дороги и вполне подойдут для начала работы.


Платформа Ардуино 4WD с двигателями, колесами и рамой без электронных компонентов

4WD платформа для Ардуино с необычным видом крепления элементов

Конструктор машинки Ардуино на платформе 4WD с пультом управления Bluetooth и PS2

Типовой набор 4WD машинки с Ардуино, шилдами и основными датчиками

Добавление опций в схему

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

if (IRCode == 16712445){
digitalWrite(ledb,HIGH);

delay(100);
digitalWrite(ledb,LOW);
digitalWrite(ledg,HIGH);
delay(100);
digitalWrite(ledg,LOW);
digitalWrite(ledr,HIGH);
delay(100);
digitalWrite(ledr,LOW);
digitalWrite(ledy,HIGH);
delay(100);
digitalWrite(ledy,LOW);
digitalWrite(ledw,HIGH);
delay(100);
digitalWrite(ledw,LOW); 
}

Какие решения предлагает Arduino

Датчики и устройства, совместимые с Ардуино, выпускают многие производители, поэтому ассортимент комплектующих для системы Умный дом на Arduino внушительный:

  • Сенсоры для отслеживания температуры, освещенности в разное время суток, влажности, осадков и атмосферного давления.
  • Сенсоры реагирования на движение.
  • Аварийные датчики.
  • Другие устройства и пульты.

В набор Arduino Start (у большинства производителей – StarterKit) включена часть индикаторов и датчиков.

Для исполнения команд, направляемых системой Умный дом на базе Arduino, требуются:

  • реле и переключатели;
  • вентили;
  • электромоторы;
  • 3-ходовые клапаны с сервоприводом;
  • диммеры.

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

Для этого занятия нам потребуется:

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


Управление светодиодом на Arduino UNO с компьютера

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

Скетч. Взаимодействие Ардуино и компьютера

int val; // освобождаем память в контроллере для переменой

void setup() {
   Serial.begin(9600); // подключаем последовательный порт
   pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
    // проверяем, поступают ли какие-то команды
   if (Serial.available()) {

       val = Serial.read(); // переменная val равна полученной команде

       if (val == '1') {digitalWrite(13, HIGH);} // при 1 включаем светодиод
       if (val == '0') {digitalWrite(13, LOW);} // при 0 выключаем светодиод

   }
}
  1. функция проверяет поступление команд с компьютера;
  2. функция читает данные, поступившие в Serial monitor.
  3. в условном операторе стоит знак двойное равенство «соответствие», а в скобках необходимо использовать одинарные кавычки.


Управление сервоприводом на Arduino UNO с компьютера

После сборки схемы загрузите следующий скетч в плату

Скетч. Управление сервоприводом с компьютера

#include <Servo.h> // подключаем библиотеку для сервопривода
Servo servo; // объявляем переменную servo типа "servo"
int val; // освобождаем память в контроллере для переменой

void setup() {
   Serial.begin(9600); // подключаем последовательный порт
   servo.attach(11); // привязываем сервопривод к выходу 11
}

void loop() {
   // проверяем, поступают ли какие-то команды
   if (Serial.available()) {

       val = Serial.read(); // переменная val равна полученной команде

       if (val == '1') { servo.write(10); } // при 1 поворачиваем серво на 10
       if (val == '2') { servo.write(45); } // при 2 поворачиваем серво на 45
       if (val == '3') { servo.write(90); } // при 3 поворачиваем серво на 90

   }
}

Платы дополнения (шилды)

Для расширения вспомогательного функционала используются дополнительные платы – шилды. Ниже приведен список самых интересных:

  • LCD Shield определяет метеорологические показатели в помещениях: влажность, скорость ветра, температуру.
  • Motor Shield обеспечивает управление скоростью и оборотами моторов. Есть модели с поддержкой нескольких приводов.
  • Data Logging Shield предназначена для записи и хранения информации до 32 Gb.
  • Relay Shield самая востребованная в системах Smart Homе, рассчитана на обслуживание приборов мощностью 1 КВт.
  • Ethernet Shield от Ардуино обеспечивает независимость Умного дома от ПК, настраивает интернет-связь.
  • Wi-fi Shield нужен для передачи шифрованных данных между Arduino и устройствами.
  • Energy Shield позволяет разнообразить источники питания для подключения проекта.
  • GPRS Shield используется для связи Умного дома с телефоном владельца.

Принципы работы GSM модуля

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

GSM модуль понимает только AT команды и может на них отвечать. На большинство AT команд модуль отвечает сообщением “OK“ если он выполнил ее успешно, и сообщением “ERROR” если во время выполнения команды произошли какие либо проблемы. Существуют различные AT команды, например, ATA – ответить на звонок, ATD – сделать звонок, AT+CMGR — прочесть сообщение, AT+CMGS – передать SMS сообщение и т.д. AT команды должны заканчиваться символом возврата каретки, то есть \r (0D в шестнадцатеричном формате), например, “AT+CMGS\r”. К примеру, в нашем проекте мы можем использовать следующие AT команды:

ATE0 For echo offAT+CNMI=2,2,0,0,0 <ENTER> режим автоматического открытия принимаемых сообщений ATD<Mobile Number>; <ENTER> осуществить вызов (например, ATD+919610126059;\r\n)AT+CMGF=1 <ENTER> выбор текстового режимаAT+CMGS=”Mobile Number” <ENTER> назначение мобильного номера получателя>>после этого мы можем написать наше сообщение>>после написания сообщенияCtrl+Z команда передачи сообщения (26 в десятичном коде).ENTER=0x0d в шестнадцатеричном формате

SIM900 представляет собой четырех диапазонный GSM/GPRS модуль, способный функционировать в диапазонах 850/900/1800/1900 МГц в режимах передачи/приема голоса, SMS и данных. Отличается низким энергопотреблением. Внешний вид данного модуля показан на следующем рисунке.

Поиск проводки

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

  1. Выключают пробки и выключатель люстры.
  2. Торчащие из потолка провода временно наращивают до пола; стыки изолируют изолентой.
  3. Вместо секций люстры тоже временно подключают патроны под лампы накаливания.
  4. Вворачивают в патроны лампочки не менее чем на 60 Вт, а лучше – на 100-150 Вт.
  5. Включают пробки и выключатель; можно приступать к поиску проводки.

Поиск проводки лучше всего вести электронным индикатором; индикатор с неонкой работает только в непосредственном контакте с токоведущими частями.

Есть специальные приборы – искатели проводки, но стоят они дороже, а точность – не более двух толщин штукатурки. Если проводка еще и упрятана в штробы, то погрешность окажется порядка 5 см, что недостаточно. Индикатор же при любой глубине залегания дает точность в 1-2 см.

Индикатор ведут, положив палец на кнопку, по потолку перпендикулярно предполагаемому направлению проводки. Когда на дисплее появляется значок фазы, делают отметку карандашом и ведут дальше. При пропадании значка делают вторую отметку.

Затем это же место проходят в обратном направлении; получится две пары отметок. Посередине между внутренними и лежит проводка. Далее сдвигаются на 15-20 см по ходу проводки и поиск повторяют до конца рабочей зоны.

Практическое руководство по сбору

Бесспорно, у самостоятельного сбора машинки на пульте имеется масса выигрышных преимуществ, а именно:

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

После того как вы определитесь с моделью, выполните следующий алгоритм действий:

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

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

После того как все детали куплены можно приступать к сборке.

Шаг 3. Схема соединения

Мы можем соединить Ардуино и WiFi модуль двумя способами — первый с резисторами и второй вариант без резисторов. Остановимся на обеих схемах.

Вариант 1

Соединяем контакты, как описано на прилагаемой таблице контактов ниже:

Следуйте этим шагам:

  • подключите красный провод к VIN (3,3 В) к питанию + 3,3 В от микроконтроллера;
  • подключите черный провод к земле;
  • подключите зеленый провод к TX модуля Wifi и микроконтроллера;
  • подключите желтый провод к RX модуля Wi-Fi и микроконтроллера.

Важно! ESP8266 строго питается только до 3,3 В, при больших значениях можно испортить модуль. Не используйте напряжения более 3,3 В!. Подключите VIN к 3,3 В для включения питания, а также контакт ENABLE для включения модуля

Подключите VIN к 3,3 В для включения питания, а также контакт ENABLE для включения модуля.

TX подключен к RX, что означает, что все, что мы хотим передать в ESP8266, получит Arduino UNO. И наоборот для RX в TX. Создав эту схему, мы теперь готовы запустить WiFi с Arduino UNO.

Вариант 2

Соедините контакты, соответственно этой таблице контактов ниже:

Следуй этим шагам:

  • подключите оба контакта ECC VCC / 3.3V / Power Pin и Enable (красные провода) к резистору 10 кОм, а затем к выводу питания Uno + 3.3V;
  • соедините контакт заземления / заземления ESP (черный провод) с выводом заземления / заземления Arduino Uno;
  • подключите TX ESP (зеленый провод) к контакту 3 Uno;
  • подключите RSP (синий провод) ESP к резистору 1 кОм, затем к контакту 2 Uno;
  • подключите RX (синий провод) ESP к резистору 1 кОм, затем к выводу GND заземления Uno.

О схеме

Вывод питания ESP на ESP11 имеет маркировку VIN, однако для некоторых версий это может быть 3,3 В или Power или VCC. Вам также нужно будет включить вывод ESP CH_EN или Enable, чтобы он работал.

Как мы уже обсуждали, — не используйте напряжение на ESP больше чем 3.3 В. ESP8266 строго использует 3,3 В. Более того, это разрушит модуль. Так как Arduino имеет 5 В, нам пришлось поставить делитель напряжения — это резисторы.

TX ESP подключен к RX Arduino Uno, что означает, что все, что мы хотим передать (TX) в ESP, получит (RX) от Uno, и наоборот. Создав эту схему, мы теперь готовы запустить WIFI с Arduino UNO.

Внимание! Если вы подключите последовательный отладчик через USB-кабель или откроете COM-порт, связь между ESP и Arduino будет нарушена и не сможет работать. Поэтому, прежде чем прошивать Uno, сначала удалите Rx / Tx из ESP.

IoT Wi-Fi контроллер

Интерфейс этого приложения показывает все операции ввода и вывода на Ардуино. Переключение GPIO и показания АЦП управляют гаджетом в реальном времени.

Добавить WI-Fi к устройствам возможно с помощью IoT контроллера. Он имеет 8-битный микроконтроллер и IMU (Inertial Measurement Unit). Соединение защищено однокристальным крипто-ускорителем ECC 608.

Уникальный интерфейс IoT Wifi Controller отображает контакты в реальном времени с подробной информацией, благодаря уровню GPIO. Показатели ADC также можно подключать к плате с помощью телефона (Айфона) или маршрутизатора.

 Не реализованные функции:

  • расширенная подсветка анаграмм;
  • автозаполнение;
  • руководства для объединения других приложений.

 Базы Uno R3 и FTDI в данное время поддерживают рабочее состояние платы Arduino. В процессе находится разработка Mega, Due и Nano. Используемые в обучении платы Arduino — USB кабель OTG не влетит в копеечку. Стоимость до 2 долларов.

Программа  «умный дом» работает при помощи платформы Arduino. В данном случае используется данный андроид и сама платформа. Для работы совместили домашние и веб серверы. Результат превзошел ожидания. Теперь при помощи мобильного устройства можно управлять системой целого дома: включать и выключать свет, электрические приборы, закрывать двери, окна и другое.

В статье рассмотрены 10 обзорных приложений — для платы «Ардуино». В процессе работы и изучения не возникнет проблем с программированием Windows и в других. Затруднения решаются подключением к пинам. Те в свою очередь аппаратно запрограммированы UART. Далее используются традиционные библиотеки.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий