Topic: Нужна помощь в проекте Smartroom
Всем привет.
Скажу сразу что в этом деле новичок, в електронике и программировании почти не шарю )
Проблема такова: Все сложил на макете, написал скетч - заработало только половина из всего... ((((
К ардуино Уно подключил блютуз (питание от ардуино)
4 реле, датчик температуры и влажности, 2 серво привода (внешнее питание, компьютерный БП АТ на 230вт)
По блютузу подключился без проблем, 2 реле работают отлично, но 2 просто светятся лампочки.
Серво приводы как бы работают, управляются - но они как живые - дергаются, рычат.... (сами по себе)
Температуры и влажности 0 реакции. - не каких данных не отображал на смартфон.
В чем может быть проблема? Может написал что то не то? Или проблемы с подключением (распиновкой) или еще че?
Если чего то важного не написал - говорите.
Вот сам проект:
http://remotexy.com/ru/editor/5d3ee809a … 4c7488815/
Вот сам скетч:
/*
-- My smart room --This source code of graphical user interface
has been generated automatically by RemoteXY editor.
To compile this code using RemoteXY library 2.3.1 or later version
download by link http://remotexy.com/en/library/
To connect using RemoteXY mobile app by link http://remotexy.com/en/download/
- for ANDROID 4.0.1 or later version;
- for iOS 1.1.0 or later version;This source code is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
*///////////////////////////////////////////////
// RemoteXY include library //
//////////////////////////////////////////////// определение режима соединения и подключение библиотеки RemoteXY
#define REMOTEXY_MODE__SOFTSERIAL
#include <SoftwareSerial.h>#include <RemoteXY.h>
// настройки соединения
#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 9600#define CW 7 // CW инициализируется на контакте 7//
#define CCW 8 // CCW инициализируется на контакте 8//
#define CCCW 9 // CCCW инициализируется на контакте 8//
#define CCCCW 10 // CCCCW инициализируется на контакте 8//// конфигурация интерфейса
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
{ 255,6,0,25,0,240,0,6,0,1,
2,0,3,64,57,8,0,208,161,209,
130,208,190,208,187,0,79,70,70,0,
2,0,3,73,57,8,6,208,158,208,
186,208,189,208,190,0,79,70,70,0,
2,0,3,82,57,8,5,208,154,209,
131,208,187,208,181,209,128,0,79,70,
70,0,2,0,3,91,57,8,4,208,
146,209,139,209,130,209,143,208,182,208,
186,208,176,32,0,79,70,70,0,4,
160,4,50,56,8,2,4,160,4,40,
56,8,1,66,130,40,27,9,7,5,
66,193,4,28,16,4,6,67,4,38,
21,15,5,2,11,67,4,16,21,14,
5,2,11,66,129,20,28,16,4,1,
129,0,1,0,61,11,4,68,111,98,
101,114,77,97,110,110,0,129,0,9,
10,43,6,7,77,121,32,115,109,97,
114,116,32,114,111,111,109,0,129,0,
2,17,19,3,14,84,101,109,112,101,
114,97,116,117,114,101,58,0,129,0,
31,17,14,3,14,72,117,109,105,100,
105,116,121,58,0,129,0,18,32,5,
3,13,48,194,176,208,161,0,129,0,
43,30,3,3,13,37,0 };
// структура определяет все переменные вашего интерфейса управления
struct {// input variable
uint8_t switch_1; // =1 если переключатель включен и =0 если отключен
uint8_t switch_2; // =1 если переключатель включен и =0 если отключен
uint8_t switch_3; // =1 если переключатель включен и =0 если отключен
uint8_t switch_4; // =1 если переключатель включен и =0 если отключен
int8_t slider_leftright; // =-100..100 положение слайдера
int8_t slider_updown; // =-100..100 положение слайдера// output variable
int8_t level_hum; // =0..100 положение уровня
int8_t level_temp_down; // =0..100 положение уровня
int8_t level_temp_up; // =0..100 положение уровня
char text_hum[11]; // =строка UTF8 оканчивающаяся нулем
char text_temp[11]; // =строка UTF8 оканчивающаяся нулем// other variable
uint8_t connect_flag; // =1 if wire connected, else =0} RemoteXY;
#pragma pack(pop)/////////////////////////////////////////////
// END RemoteXY include //
/////////////////////////////////////////////#include <Servo.h>
#define PIN_LEFTRIGHT_SERVO 5
#define PIN_UPDOWN_SERVO 12Servo leftright_servo;
Servo updown_servo;#include "DHT.h"
#define DHTPIN 4
DHT dht(DHTPIN, DHT11);void setup()
{
RemoteXY_Init ();
pinMode(CW, OUTPUT); // настраиваем CW в качестве выхода//
pinMode(CCW, OUTPUT); // настраиваем CCW в качестве выхода//
pinMode(CCCW, OUTPUT); // настраиваем CCCW в качестве выхода//
pinMode(CCCCW, OUTPUT); // настраиваем CCCCW в качестве выхода//leftright_servo.attach(PIN_LEFTRIGHT_SERVO);
updown_servo.attach(PIN_UPDOWN_SERVO);// TODO you setup code
}
void loop()
{
RemoteXY_Handler ();if (RemoteXY.switch_1 == 1) {
digitalWrite(CW, LOW);
}
if (RemoteXY.switch_1 == 0) {
digitalWrite(CW, HIGH);
}
if (RemoteXY.switch_2 == 1) {
digitalWrite(CCW, LOW);
}
if (RemoteXY.switch_2 == 0) {
digitalWrite(CCW, HIGH);
}
if (RemoteXY.switch_3 == 1) {
digitalWrite(CCCW, LOW);
}
if (RemoteXY.switch_3 == 0) {
digitalWrite(CCCW, HIGH);
}
if (RemoteXY.switch_4 == 1) {
digitalWrite(CCCCW, LOW);
}
if (RemoteXY.switch_4 == 0) {
digitalWrite(CCCCW, HIGH);
}leftright_servo.writeMicroseconds(RemoteXY.slider_leftright * 20 + 500);
updown_servo.writeMicroseconds(2500 - RemoteXY.slider_updown * 20);
float temp = dht.readTemperature();
float hum = dht.readHumidity();
dtostrf(temp, 0, 1, RemoteXY.text_temp);
dtostrf(hum, 0, 1, RemoteXY.text_hum);
if (temp<0) {
RemoteXY.level_temp_up = 0;
RemoteXY.level_temp_down = min (-temp*2,100);
}
else if (temp>0) {
RemoteXY.level_temp_up = min(temp*2,100);
RemoteXY.level_temp_down = 0;
}
else {
RemoteXY.level_temp_up = 0;
RemoteXY.level_temp_down = 0;
}
RemoteXY.level_hum = hum;
}// TODO you loop code
// используйте структуру RemoteXY для передачи данных