SaintYGL

Лампа с беспроводным управлением на Arduino

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

SaintYGL    0

Здравствуйте!

Данная тема посвящена разработке устройства, имеющего название "Лампа с беспроводным управлением на Arduino".

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

Концепция: устройство имеет Bluetooth-модуль, по которому соединяется с телефоном, посредством чего и осуществляется беспроводное управление. Также к Arduino подключено двухканальное реле, которое переключает ток, идущий к патронам, в которые вкручены лампы. По команде, переданной по bluetooth, реле переключается в одно из положений (обе выкл.  / 1 вкл, 2 выкл. / 1 выкл, 2 вкл. / обе вкл.)

Загвоздки: 1) В статье всё осуществляется с помощью отдельного микроконтроллера ATMega 328p, расположенного на макетной плате, в то время как Arduino используется лишь как программатор. Мне же необходимо, чтобы данное устройство работало не с отдельным микроконтроллером, а с самой Arduino. Кварцевый резонатор в ней есть, кнопка есть, диоды есть, bluetooth-модуль и реле докуплены.

2) Если копировать код из статьи (а точнее перепечатать его со скриншота) и вставить в Arduino IDE, то появятся следующие ошибки: 

Lamp: 5: error: a function-definition is not allowed here before '{' token

D: \ Saint \ \ \ \ \ \ \ "\ \ \ \ \ \ \ \ \ Lamp \ Lamp.ino: In function 'void loop ()':

Lamp: 16: error: 'incomingInt' was not declared in this scope

Lamp: 27: error: 'class HardwareSerial' has no member named 'printIn'

Lamp: 30: error: expected '}' at end of input

 

Сам код, чтобы его не нужно было также перепечатывать со скриншота:

#include <Wire.h> 
int incomingInt = 0 
void setup ( ) 
{ 
Serial.begin (9600) ; 
Serial.setTimeout (1000) ; 
pinMode (7, OUTPUT) ; 
pinMode (5, OUTPUT) ; 
} 
void loop ( ) 
{ 
if (Serial.available ( ) > 0) 
{ 
incomingInt = Serial.parseInt (); 
if (incomingInt = 500) 
{ 
digitalWrite (5, HIGH) ; 
} 
else digitalWrite (5, LOW) ; 
if (incomingInt == 422) 
{ 
digitalWrite (7, HIGH) ; 
} 
else digitalWrite (7, LOW) ; 
Serial.printIn(incomingInt) ; 
} 
} 

 

На данный момент это всё, по мере развития проекта тема будет мной дополняться. Также я буду рад любому совету, который поможет разобраться с этим устройством. Связаться со мной можно через ВКонтакте: vk.com/sainty_gl

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


Ссылка на сообщение
Поделиться на других сайтах
BARS_    819
18 минут назад, SaintYGL сказал:

Лампа с беспроводным управлением на Arduino

18 минут назад, SaintYGL сказал:

устройство имеет Bluetooth-модул

Ардуйня там даром не нужна. Берем ESP8266, получаем Wi-Fi соединение. При желании подключаем к нему Bluetooth модуль, получаем Wi-Fi+Bluetooth (хотя синезубое управление нафиг никому не нужно). В итоге имеем гораздо более гибкую платформу по меньшей цене плюс на порядок меньшие габариты. А с ардуйней в качестве управления проект изначально мертворожденный.

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


Ссылка на сообщение
Поделиться на других сайтах
TranceSmile    5
#include <Wire.h> 
int incomingInt = 0 
void setup ( ) 
{ 
	Serial.begin(9600) ; 
	Serial.setTimeout(1000) ; 
	pinMode(7, OUTPUT) ; 
	pinMode(5, OUTPUT) ; 
} 
void loop ( ) 
{ 
	if (Serial.available ( ) > 0) 
	{ 
		incomingInt = Serial.parseInt (); 
		if (incomingInt == 500) 
		{ 
			digitalWrite(5, HIGH); 
		} 
		else digitalWrite(5, LOW); 
	if (incomingInt == 422) 
	{ 
		digitalWrite(7, HIGH) ; 
	} 
	else digitalWrite (7, LOW) ; 
	Serial.println(incomingInt) ; 
	} 
} 

найдите пару отличий.

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


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

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

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

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

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

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

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

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

Загрузка...

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

    • Автор: Сергей Ч.
      Здравствуйте уважаемые форумчане!!! собрал себе очередной зарядник для автомобильного аккумулятора  
       
      схема была взята вот отсюда : http://kravitnik.narod.ru/charge/charge_8.html
      запустился сразу,но выходной ток регулируется в самом крайнем положении движка потенциометра. подборка r19 не не помогла. может кто сталкивался с подобным схемным решением? где собака зарыта.........
    • Автор: 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) - консоль чистая, но собирается/заливается/запускается нормально.
      Куда смотреть, чтобы определить ошибку?