четверг, 6 августа 2015 г.

Простое управление приборами с компьютера.

Имея плату Arduino (можно заказать по этой ссылке), компьютер, некоторые детали, инструменты любой желающий сможет организовать простое управление бытовыми приборами с этого компьютера. Множество приборов используемых в быту имеют множество функций, например большинство современных телевизоров могут показывать некоторое количество разных каналов, у вентилятора м.б. некоторое количество разных режимов работы и т.д. Для того чтобы сделать такое сложное управление как например переключение каналов или режимов работы, помимо перечисленного выше понадобятся дополнительные знания, детали и инструменты но сделать простое включение и выключение под силу каждому кто это перечисленное имеет. Arduino связывается с компьютером через USB порт, передачу информации с компьютера на Arduino можно осуществлять через среду разработки для Arduino (называется Arduino IDE) которую можно скачать с страницы на официальном сайте Arduino. Существует множество разнообразных модулей для взаимодействия Arduino с внешним миром, например специальный модуль с блоком реле для коммутации нагрузок, при использовании таких модулей работа сильно упрощается, здесь же мы рассмотрим самостоятельное изготовление модуля с одним реле для включение/выключения бытовых приборов, при необходимости можно изготовить более одного такого модуля и использовать их с одним Arduino тем самым сделав возможным простое управление множеством бытовых приборов. Arduino (любое) имеет некоторое количество выводов общего назначения которые обозначаются, на плате, просто цифрами или цифрами с волнистым знаком "~". Подключив Arduino к компьютеру и записав в него (в Ардуино) специальный скетч (программа для Arduino) можно с этого компьютера через программу "Arduino IDE" управлять этими выводами делая на них высокое напряжение (примерно +5В (HIGH)) или низкое (примерно 0В (LOW)). Также на Arduino есть вывод "GND" (на плате так и обозначен). Если на одном из выводов общего назначения высокое напряжение то подключив что либо проводящее ток между этим выводом и выводом "GND" через то что подключено потечёт электрический ток и величина этого тока будет зависеть от сопротивления этого предмета и рассчитать её можно по закону Ома, т.е. чем меньше сопротивление том больше ток, но если сопротивление будет слишком низким то через Arduino потечёт слишком большой ток и оно перегорит. Максимальный ток который может выдать вывод общего назначения Arduino может быть разным в зависимости от используемого в нём микроконтроллера но обычно это 40мА = 0.04А - этого может быть недостаточно для того чтобы включить реле которое будет включать прибор (приборы) поэтому для усиления тока необходимо использовать дополнительный элемент например биполярный транзистор. Биполярный транзистор имеет три вывода: эмиттер, коллектор, база. Максимальный ток транзистора также ограничен как и у Ардуино и обычно он больше, например у популярного КТ315 максимальный ток равен 100мА = 0.1А. Биполярные транзисторы бывают двух типов n-p-n и p-n-p использовать можно оба типа но по разному и далее рассмотрим использование транзистора КТ315 тип которого n-p-n. Для того чтобы транзистор усилил ток из Ардуино необходимо соединить его базу с выводом Ардуино ЧЕРЕЗ РЕЗИСТОР сопротивлением 1кОм (на резисторе м.б. написано 1к), эмиттер этого транзистора соединить с "GND" Arduino и минусом питания или "GND" источника питания напряжение которого равно напряжению обмотки имеющегося реле (допустим 12В) один из выводов обмотки реле соединить с коллектором транзистора другой с плюсом источника питания (+12В допустим) и ещё одной не влияющей на усиление но ОЧЕНЬ важной деталью является диод который нужно соединить анодом с коллектором и катодом с плюсом источника питания (+12В). Если диод импортный то на скорее всего на его корпусе будет светлая полоса - она указывает на катод, другой вывод диода это анод. Оставшиеся выводы реле - это выводы его контактов, если их два и они не замкнуты то при подаче достаточного тока на обмотку реле эти контакты замкнуться, их нужно соединить последовательно с прибором и это последовательное соединение можно втыкать в розетку, тогда при замыкании контактов на прибор поступит 220В и он включиться. Описанное выше можно изобразить на картинке:
Рисунок 1 - Управление прибором с компьютера

Это нестандартная схема для лучшего понимания, обычно используют схемы такие:
Рисунок 2 - Управление прибором с компьютера 

Хотя в этой схеме тоже присутствует нестандартное обозначение платы Ардуино. На рисунке обозначено Arduino UNO (можно заказать по этой ссылке) но можно использовать и любое другое. Соединения можно делать например на макетной плате и проводами или пайкой. После того как всё правильно соединено и проверено можно подключить Ардуино по USB к компьютеру и загрузить в неё скетч:

char pc_code=0;

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

void loop()
{
  if (Serial.available() > 0)
  {
    pc_code = Serial.read();
    if(pc_code=='a')
    {
      digitalWrite(2, HIGH);
    }
    else if(pc_code=='b')
    {
      digitalWrite(2, LOW);
    }
  }
}

О том как правильно настроить Ардуино и загрузить в неё скетч уже описано на странице "Простое управление шаговым двигателем с компьютера через ардуино". Далее для включения прибора необходимо на Ардуино отослать символ "a" для выключения символ "b". Для того чтобы отослать символ на ардуино можно, в среде Arduino IDE, войти по вкладке Инструменты-Монитор последовательного порта и в появившемся окне в верхнем текстовом поле вписывать символы и отсылать нажатием кнопки "отправить" символ придёт на ардуино и для данного случая если отослать символ "a" то прибор включиться, если "b" то соответственно выключиться. Если Ардуино не принимает символы то нужно в правом нижнем углу окна монитора последовательного порта установить такую же скорость какая прописана в скетче т.е. 9600 бод. Для того чтобы включать 2 прибора можно немного изменить скетч:

char pc_code=0;

void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
Serial.begin(9600);
}

void loop()
{
  if (Serial.available() > 0)
  {
    pc_code = Serial.read();
    if(pc_code=='a')
    {
      digitalWrite(2, HIGH);
    }
    else if(pc_code=='b')
    {
      digitalWrite(2, LOW);
    }
    else if(pc_code=='c')
    {
      digitalWrite(3, HIGH);
    }
    else if(pc_code=='d')
    {
      digitalWrite(3, LOW);
    }
  }
}

Второй модуль с реле надо аналогично подключать к выводу 3 Ардуино а для его включения посылать "c" для выключения "d". Аналогично можно изменить скетч для управления большим количеством реле также можно через одно реле подключать параллельно несколько приборов но ток потребляемый всеми приборами не должен превышать максимальный ток контактов реле. Процесс сборки, демонстрацию работы и некоторые дополнительные рекомендации можно увидеть на видео:
Часть 2

Часть 3

Доработанная программа для управления приборами  UniversalRelay 2.
Часть 4 (создание программы)

Последняя часть

КАРТА БЛОГА (содержание)

Комментариев нет:

Отправить комментарий