admin

Управляем Нагрузками Через Android-Смартфон При Помощи Arduino

12 сообщений в этой теме

admin    2 339



Простой проект для повторения: управление любыми нагрузками с Android-смартфона при помощи Arduino (или любым МК) через Bluetooth.

Приложение Led Switcher в Google Play

Что понадобится приобрести:
Arduino Nano (2$)
Bluetooth Serial модуль (3$)
Опционально Шилд реле (2$)

Подключение разных типов нагрузок к Arduino: arduinoBasicConnections.pdf

Led Switcher.apk

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
admin    2 339

Исходный код первого примера:

char incomingByte;	 // переменная для хранения входящих данных
int LED = 13;		 // LED подключен к 13 выводу (используем встроенный светодиод)
void setup() {
Serial.begin(9600); // инициализация порта на скорость 9600 бод для связи с Bluetooth-модулем
pinMode(LED, OUTPUT); // вывод LED настраиваем как выход
}
void loop() {
if (Serial.available() > 0) {	 // если пришли данные
incomingByte = Serial.read(); // считываем байт
if(incomingByte == '0')		 // если пришел символ "0",
 digitalWrite(LED, LOW);	 // то выключаем вывод "LED"
if(incomingByte == '1')		 // если пришел символ "1",
 digitalWrite(LED, HIGH);	 // то включаем вывод "LED"
}
}

LED_Switcher1.ino

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
admin    2 339

Скетч второго примера:

char incomingByte;		 // переменная для хранения входящих данных
int  load1 = 5;		    // нагрузка 1 подключена к 5 выводу
int  load2 = 6;		    // нагрузка 2 подключена к 6 выводу
void setup() {
 Serial.begin(9600);	  // инициализация порта на скорость 9600 бод для связи с Bluetooth-модулем
 pinMode(load1, OUTPUT);  // вывод load1 настраиваем как выход
 pinMode(load2, OUTPUT);  // вывод load2 настраиваем как выход
}
void loop() {
 if (Serial.available() > 0) {	  // если пришли данные
   incomingByte = Serial.read();    // считываем байт
   switch (incomingByte) {		  // перебираем входящие данные
   case '0':					    // если пришел "0" (задается в настройках Android-приложения)
  digitalWrite(load1, LOW);	  // то выключаем вывод "load1"
  break;
   case '1':					    // если пришел "1"
  digitalWrite(load1, HIGH);	 // то включаем вывод "load1"
  break;	 
   case 'B':					    // если пришел "B"
  digitalWrite(load2, LOW);	  // то выключаем вывод "load2"
  break;	 
   case 'A':					    // если пришел "A"
  digitalWrite(load2, HIGH);	 // то включаем вывод "load2"
  break;
   }
 }
}

LED_Switcher2.ino

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Впервые на русском языке! Работаем с микроконтроллерами STM32F7(на основе STM32F7 Online Training)

Цикл материалов на основе STM32F7 Online Training от компании STMicroelectronics. Описаны функциональные блоки и инструменты разработки для семейства микроконтроллеров STM32F7, охватывающие тематику системной периферии, памяти, безопасности, аналоговой периферии, цифровой периферии, таймеров, экосистемы.

Подробнее>>

MaxTms1    0

Здравствуйте, вы говорили в видео, что с помощью ШИМ можно изобразить ползунки яркости, можете ли вы доработать приложение и выпустить видео об этом.

P.s Хотелось бы управлять одной нагрузкой с помощью ШИМ, то есть изменять яркость лампы на 12в, а вторую нагрузку просто включать(желательно в режиме кнопки).

Заранее большое спасибо!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Evgenii85    0

Здравствуйте.Не могу скинуть программу в мозг контроллера.

Пишет: Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide/Troubleshooting#upload.

Совет по COM1 не доступен

Что делать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DoctorRock    0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
admin    2 339

Здравствуйте.Не могу скинуть программу в мозг контроллера.

Пишет: Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.c...hooting#upload.

Совет по COM1 не доступен

Что делать?

Отключить модуль Bluetooth (можно просто питание модуля), загрузить скетч, затем подключить питание модуля обратно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lachin Gu    0

Привет,очень хорошая программа и очень познавательно,а можно в программу добавить например по больше кнопок что бы можно было не двумя реле управлять а например до 8 штук,было бы супер,спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Mixus    0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
char incomingByte;     // переменная для хранения входящих данных
int  load1 = 5;       // нагрузка 1 подключена к 5 выводу
int  load2 = 6;       // нагрузка 2 подключена к 6 выводу
void setup() {
 Serial.begin(9600);    // инициализация порта на скорость 9600 бод для связи с Bluetooth-модулем
 pinMode(5, OUTPUT);  // вывод load1 настраиваем как выход
 digitalWrite(5, HIGH); // сначала реле выключено
 pinMode(6, OUTPUT);  // вывод load2 настраиваем как выход
 digitalWrite(6, HIGH); // сначала реле выключено
}
void loop() {
 if (Serial.available() > 0) {    // если пришли данные
   incomingByte = Serial.read();    // считываем байт
   switch (incomingByte) {      // перебираем входящие данные
   case '0':              // если пришел "0" (задается в настройках Android-приложения)
  digitalWrite(5, LOW);   // то выключаем вывод "load1"
  break;
   case '1':              // если пришел "1"
  digitalWrite(5, HIGH);   // то включаем вывод "load1"
  break;   
   case 'B':              // если пришел "B"
  digitalWrite(6, LOW);   // то выключаем вывод "load2"
  break;   
   case 'A':              // если пришел "A"
  digitalWrite(6, HIGH);   // то включаем вывод "load2"
  break;
   }
 }
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: artday
      Работал ли кто с модулем XY-LPWM ? Что-то никак не могу настроить его управление от компа - на любые команды  отзывается  FAIL
      установлено 9600, 8/1 bit
       

    • Автор: Илья Говжеев
      Поделитесь опытом , кто уже пробывал из arduino сделать программатор pic? 

    • Гость Василий
      Автор: Гость Василий
      Здравствуйте.
      Ребята, вопрос собсно в чем.
      Как заменить контроллер на уно. Вернее не заменить, а прошить в другой бутлоадер.
      Родной стоит атмега328 имею только атмега8.
      Возможна ли замена?
      Вопрос встал ибо неполучается прошить отдельно мегу8 для простого устройства. С ардуино работает. Вот я и решил заморочиться с подменой.
      Т.е. загрузить бутлоадер при помощи ардуино в мегу8, заменить в уно контроллеры, загрузить нужный мне скетч в мегу8 и впаять в плату.
      Вопрос конечно дурацкий, но все же...
      Спасибо! 
    • Автор: St.Arya
      Миникомпьютеры BeagleBone Black Rev C приобретались по спецзаказу в комплекте с электронным оборудованием, после сборки оборудования осталось несколько (сотен) новых миникомпьютеров в заводской упаковке.
      Технические характеристики:
      - Процессор AM3358, ARM Cortex-A8, 1 ГГц;
      - Графический акселератор: Power SGX530;
      - 512 МБ DDR3L памяти;
      - 4 ГБ eMMC памяти;
      - Слот для карт MicroSD;
      - Разъем microHDMI с поддержкой аудио-выхода;
      - Интерфейс Ethernet 10/100 (разъем RJ-45);
      - USB Host;
      - USB Client для питания и отладки;
      - Стабилизатор питания TPS65217C;
      - Напряжение питания 5 В.
      Комплектация:
      - отладочная плата BeagleBone Black;
      - кабель USB.
      Цена: 3500 рублей
      Отправка транспортными компаниями за счет покупателя. Если возьмете от 10 штук - отправка за наш счет.

       


    • Автор: QuestionAnswer
      Необходимо сделать на Arduino регулятор оборотов моторчика жёсткого диска. Чтобы мог вращаться как в одну, так и в обратную сторону. По видеоролику на youtube, узнал что для регулирования оборотов нужно использовать ESC (модельный регулятор оборотов). Как вращаться и регулировать обороты в одну сторону показали, но каким образом можно сделать программное переключение направления вращения?

      И ещё небольшой вопрос: Может ли ESC регулятор резко сбрасывать обороты на более низкие? Если нет, то какой двигатель/регулятор способен резко сбрасывать обороты, к примеру, в 10 раз?