Здравствуйте!
Данная тема посвящена разработке устройства, имеющего название "Лампа с беспроводным управлением на 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