Главная » Ардуино » Управление скоростью двигателя с помощью Android приложения Bluetooth Electronics

Управление скоростью двигателя с помощью Android приложения Bluetooth Electronics

В данной статье мы рассмотрим управление скоростью двигателя постоянного тока через приложение «Bluetooth Electronics» для Android. Это специализированное приложение, устанавливаемое на смартфон, позволяет через Bluetooth управлять вращением двигателя.

Это Android приложение имеет привлекательный и простой графический пользовательский интерфейс. В нем мы будем использовать кнопки, ползунок и спидометр.

Но вначале нам понадобится:

  1. Плата Arduino NANO.
  1. Двигатель постоянного тока 12 В.
  1. Bluetooth-модуль HC05.
  1. Транзистор Дарлингтона TIP122 NPN.
  1. Резистор на 330 Ом.
  1. Блок питания / адаптер на 12 В.

Теперь давайте построим схему, а затем рассмотрим ее работу.

Принципиальная электрическая схема

Управление скоростью двигателя с помощью Android приложения Bluetooth Electronics

Эта схема построена с использованием всего трех компонентов: Arduino NANO, Bluetooth модуля HC05 и транзистора Дарлингтона TIP122.

  • Bluetooth модуль HC05 имеет четыре вывода: Vcc, GND, Tx и Rx. На вывод Vcc подается питание 5 В от платы Arduino, а вывод GND соединен с землей платы. Контакты Tx и Rx подключены к контактам Arduino D4 и D5 соответственно.
  • Выходной вывод ШИМ D3 платы Arduino управляет двигателем 12 В с помощью транзистора TIP122. Данный вывод подключен к базе TIP122 через токоограничивающий резистор 330 Ом.
  • TIP122 используется для усиления тока, обеспечивая двигатель требуемым током. Двигатель подключается между коллектора транзистора и источником питания 12 В. Эмиттер TIP122 подключен к земле.

Работа схемы

Схема управляет скоростью вращения двигателя с помощью Android приложения. Приложение отправляет команды на запуск или остановку двигателя и изменение скорости двигателя через Bluetooth.

Эти команды принимаются модулем HC05, который передает их в Arduino NANO через выводы Tx и Rx. Согласно отправленным командам, Arduino с помощью ШИМ запускает / останавливает двигатель или изменять его скорость вращения от минимальной до максимальной.

Для остановки двигателя ширина импульса на выводе D3 становиться равной 0 (0%). А чтобы двигатель работал на полной скорости — 255 (100%). Итак, когда Arduino изменяет ширину импульса на своем выводе D3, скорость двигателя изменяется с минимальной на максимальную или наоборот.

Arduino также отправляет изменение скорости двигателя (от 0 до 100%) через модуль HC05 в приложение смартфона. Затем приложение отображает это значение скорости двигателя на аналоговом циферблате.

Приложение для Android

В данном проекте используется бесплатное приложение «Bluetooth Electronics», которое доступно в Google Play.

Сначала загрузите и установите приложение «Bluetooth Electronics» на свой смартфон и откройте его. Приложение спросит вас, хотите ли вы включить Bluetooth устройства. Позвольте ему это сделать. После запуска приложения вы увидите несколько готовых панелей управления, которые могут быть использованы для систем управления на основе Arduino.

Возможно, самая интересная особенность приложения «Bluetooth Electronics» это то, что оно позволяет пользователям создавать индивидуальную панель для управления проектами Arduino.

Давайте создадим индивидуальную панель для управления скоростью вращения двигателя.

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

Этапы создания панели в Bluetooth Electronics:

  1. Выберите одну зеленую кнопку. Затем перейдите в правый угол экрана и отредактируйте свойства кнопки следующим образом:
  • Press Text : N
  • Release Text :
  1. Выберите мелкий или средний размер шрифта и напишите «Двигатель включен» (Motor ON).
  2. Выберите одну красную кнопку и отредактируйте ее свойства следующим образом:
  • Press Text : F
  • Release Text :
  1. Выберите мелкий или средний размер шрифта и напишите «Двигатель выключен» (Motor OFF).
  2. Выберите самый большой ползунок из вариантов ползунков и отредактируйте его свойства следующим образом:
  • Min Value : 100
  • Max Value: 255
  • Select “Send on slider change”
  • String starts with : *
  • String Ends with : #
  1. Перейдите к параметрам индикатора и выберите аналоговый циферблат. Отредактируйте его свойства следующим образом:
  • Receive character : D
  • Min Text : 0
  • Max Text : 100
  • min value : 0
  • max value : 100
  • leave default all others
  1. Напишите весь остальной текст, такой как «мин», «макс», «скорость двигателя», «индикатор скорости» и т. д. по своему усмотрению.

Вот и все! Ваше приложение для Android готово управлять скоростью двигателя.

Запуск проекта

  1. На макетной плате соберите схему согласно вышеприведенному рисунку.
  2. Подайте на схему питание 12 В.
  3. Изначально ось двигателя не вращается и находится в положении остановки. Модуль HC05 начнет мигать, указывая на то, что он ищет устройство.
  4. Запустите приложение «Bluetooth Electronics» на своем смартфоне, убедившись, что Bluetooth включен.
  5. Нажмите кнопку подключения, чтобы найти модуль HC05. Когда устройство будет найдено, выберите «HC05» и нажмите «Подключить». Когда вы делаете это в первый раз, вам нужно будет ввести ключ доступа «1234».
  6. После того, как HC05 соединения, нажмите done.
  7. Теперь вы можете запустить свою панель.
  8. На панели нажмите зеленую кнопку, чтобы запустить двигатель, или красную кнопку, чтобы остановить его.
  9. Пока двигатель работает, переместите ползунок, чтобы изменить скорость двигателя.
  10. По мере перемещения ползунка шкала будет указывать скорость двигателя (от 0 до 100%).

Скетч

Код программы для Arduino написан на языке C с использованием программного обеспечения Arduino IDE:

#include<SoftwareSerial.h>
SoftwareSerial bt_ser(4,5);
char c[6];
int i=0,speed_value=150,send_value;
bool fan_on_flag = false;
void setup()
{
  Serial.begin(9600);
  bt_ser.begin(9600);
  analogWrite(3,0);
  Serial.println("DC Motor speed control using android app");
}

void loop()
{
   while(bt_ser.available())
     {
       if(bt_ser.available()>0)
       {
         c[i] = bt_ser.read();
         Serial.print(c[i]);
         i++; 
       }
       if(c[i-1]=="N")
        {
          analogWrite(3,speed_value);
          fan_on_flag = true;
          i=0;
        }
       if(c[i-1]=="F")
        {
          analogWrite(3,0);
          fan_on_flag = false;
          i=0;
        }
       if(c[i-1]=="#")
          {
            speed_value = (c[1]-48)*100+(c[2]-48)*10+(c[3]-48)*1;
            send_value = map(speed_value,100,255,0,100);
            if(fan_on_flag) analogWrite(3,speed_value);
            Serial.print(speed_value);
            Serial.print("\t");
            Serial.println(send_value);
            bt_ser.print("*D");
            bt_ser.print(send_value);
            bt_ser.print("*");
            i=0;
          }          
     }  
 }

 

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

Ваш email нигде не будет показан. Обязательные для заполнения поля помечены *

*