admin

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

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

admin    2 326



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

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

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

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

Led Switcher.apk

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


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

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

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 326

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

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

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


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

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

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

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

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


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

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

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

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

Что делать?

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


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

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

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


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

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

Пишет: Проблема загрузки в плату. Помощь по загрузке: 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 смайлов.

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

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

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

Загрузка...

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

    • Автор: Oleg Prokopev
      Здравствуйте! Делаю тестовую тепличку. Подскажите, пожалуйста, как и чем оптимальнее всего запитать следующие элементы от сети?

      Arduino Uno R3
      AM 2302 (датчик температуры и влажности )
      1.8 ST7735s TFT LCD дисплей
      DS1307 (датчик времени)
      Реле 

      Ленту Led SMD 5730 (10 диодов) 3,0-3,4V 20mA
      Нагреватель 5V 2A
      Кулер 12V 0,15A x 2 шт.
      Увлажнитель воздуха 24V 0,06-0,15A
       
      И будет ли работать только такой модуль для увлажнения?
       
      Спасибо!
    • Автор: Илья Усачёв
      Добрый день, помогите пожалуйста создать приборную панель на ардуино. Есть 2 шаговых двигателя от приборной панели и есть часть кода для того чтобы ими управлять. Помогите дописать для того что бы работали спидометр и тахометр. 
      #include <Stepper.h> #define STEPS 720 // steps per revolution (limited to 315°) #define COIL1 8 #define COIL2 9 #define COIL3 10 #define COIL4 11 #define PotIn 0 // create an instance of the stepper class: Stepper stepper(STEPS, COIL1, COIL2, COIL3, COIL4); void setup(){ stepper.setSpeed(30); // set the motor speed to 30 RPM (360 PPS aprox.). stepper.step(630); //Reset Position(630 steps counter-clockwise). // Serial.begin(9600); //for debuging. } int pos=0; //Position in steps(0-630)= (0°-315°) void loop(){ int val = analogRead(PotIn); //get the potentiometer value (range 0-1023) val= map(val,0,1023,0,630); // map pot range in the stepper range. if(abs(val - pos)> 2){ //if diference is greater than 2 steps. if((val - pos)> 0){ stepper.step(-1); // move one step to the left. pos++; } if((val - pos)< 0){ stepper.step(1); // move one step to the right. pos--; } } // Serial.println(pos); //for debuging... // Serial.println(val); // delay(100); }  
    • Автор: Jatixo
      Сделал измеритель коэффициента пульсаций на Arduino, но нет под рукой эталонного прибора, чтобы хотя бы приблизительно откалибровать.
      Просьба отписаться в теме, у кого есть (или может на время взять у кого-то) одновременно и Arduino+Фоторезистор(обычный, например GL5528), и эталонного заводского прибора, хотя бы недорогого, например Radex Lupin, Эколайт, ТКА-ПКМ и т.п.
      Так как фоторезистор всё-таки без фильтров, то думаю стоит пробовать только на разных имеющихся светодиодных лампах, но если есть и лампы накаливания, лишним не будет для статистики.
      Ардуино можно использовать любую (Nano, Uno, Pro Mini и т.п.),  приложил скетч и схему подключения, в терминале (мониторе порта), скорость 9600, будет каждую секунду выводиться измеренные показания, хотелось бы увидеть результаты тестов на разных лампах с одного расстояния, например 20 см: фоторезистора и прибора.
      Pulsometer.ino

    • Автор: Dmitry Romanenko
      У меня есть работающий на частоте 433 (разбирал, на таблетке внутри написано) ключ от гаража. При передаче светится диод.
      Купил такой набор:

       
      Пробовал с приемником (большая платка) библиотеки RadioHead (пин 11) и rc-switch (пин 2) - консоль чистая, но собирается/заливается/запускается нормально.
      Куда смотреть, чтобы определить ошибку?

    • Автор: Alex_Chpook
      Здравствуйте. Делаю бегущую строку на AVR и драйверах max7219 по этой статье. Исходный код есть в конце статьи. 
      Хотел бы доработать устройство чтобы можно было передавать сообщение через Bluetooth модуль HC-05 при помощи Bluetooth terminal. Сам знаю как это можно сделать, т.к. все примеры находил только под Arduino. 
      Прошу помочь кто знает как это  можно реализовать