использована програма remotexy (pro) я решил доработать RGB подсветку по периметру комнаты и сделать её управляемой с телефона, также я доработал лампу добавив в её схему МОП транзистор, у меня также имелась лазерная установка я добавил реле по питанию (с транзистором у неё двигатель не включался) я поставил двигатель лазерной установки через МОП управлять скоростью : Чтобы вот сам Движения проэкт http://remotexy.com/ru/editor/578a13ff2 ... aa8644441 / управлять лентой и лампой также можно с переменных резитосторов и скетч Код (C++): REMOTEXY_MODE__HARDSERIAL #define PINR 11 #define PING 10 #define PINB 9 #define PINW 7 #define LAMP_PIN 8 // на этот пин выводится авто подсветка по наступлению темноты #define POT_PIN A0 // яркость ампы #define ШТЫРЕЙ 6 #define LAMPR_PIN 5 #define POTR А1 #define POTG А2 #define POTB А3 #include <RemoteXY.h> // настройки соединения #define REMOTEXY_SERIAL Последовательный #define REMOTEXY_SERIAL_SPEED 9600 // конфигурация интерфейса #pragma упаковка (толчок, 1) uint8_t RemoteXY_CONF [] = {255,9,0,0,0,10,1,6,5,4, 4,0,3,2,12,47, 1,1,4,0, 19,2,13,47,4,1,4,0,36,2, 13,47,6,1,2,0,6,12,25,12, 2, 2,79,78,0,79,70,70,0,2, 0,73,11,25,12,2,2,79,78,0, 79,70,70,0,4,0, 58,3,8,49, 2,2,2,0,7,29,23,11,2,2, 115,108,105,100,101,114,0,112,111,116, 0,4,0,38,4,8,47,2,2, 3, 3,88,19,8,22,2,1,131,0,23, 54,21,8,2,1,208,187,208,181,208, 189,209,130,208,176,0,131,1,2,54, 20,8,2,2,209,129,208,178,208,181, 209130, 0,129,0,8,3,22,7,9, 2.208.187.208.176.208.188.208.191.208, 176,0,129,0,76,3,20,7,9,2, 208.187.208.176.208.183.208.181.209.128, 0,129,0,70,32,18,6,9, 2,0, 129,0,70,20,18,6,9,1,208,178, 209,139,208,186,208,187,0,129,0,69, 34,18,6,9,1,208,187,208,176,208, 188,208,191,208,176,0,129,0,71,27, 16, 6,9,1,208,187,208,181,208,189, 209,130,208,176,0,129,0,64,11,34, 6,9,1,208,176,208,178,209,130,208, 190,32,209,128,208,181,208,182,208,184, 208,188,0}; // структура определяет вся переменная ваш интерфейс управление структурой { // входная переменная int8_t slider_1; // = 0..100 положение слайдера int8_t slider_2; // = 0..100 положение слайдера int8_t slider_3; // = 0..100 положение слайдера uint8_t switch_1; // = 1 если переключатель включен и = 0 если отключен uint8_t switch_2; // = 1 если переключатель включен и = 0 если отключен int8_t slider_4; // = 0..100 положение слайдера uint8_t switch_3; // = 1 если переключатель включен и = 0 если отключен int8_t slider_5; // = 0..100 положение слайдера uint8_t select_1; // = 0 если переключатель в положении А, = 1 если в положении B = 2 если в положении C, ... // другая переменная uint8_t connect_flag; // = 1 , если провод подключен, иначе = 0 } RemoteXY; #pragma упаковка (поп) ///////////////////////////////////////////// // END RemoteXY включают // ///////////////////////////////////////////// #define PIN_SWITCH_1 13 #define PIN_SWITCH_2 12 #define PIN_SWITCH_3 3 INT LDR = 4; недействительные установки () {pinMode (LAMPR_PIN, OUTPUT); pinMode (POT_PIN, INPUT); pinMode (PINR, OUTPUT); pinMode (PING, OUTPUT); pinMode (PINB, OUTPUT); pinMode (ШТЫРИ, ВЫХОД); pinMode (POTR, INPUT); pinMode (POTG, INPUT); pinMode (POTB, INPUT); pinMode (PINW, OUTPUT); RemoteXY_Init (); pinMode (PIN_SWITCH_1, OUTPUT); pinMode (PIN_SWITCH_2, OUTPUT); pinMode (PIN_SWITCH_3, OUTPUT); // TODO вы настроечный код } пустота петли () { RemoteXY_Handler (); digitalWrite (PIN_SWITCH_1 (RemoteXY.switch_1 == 0) LOW: HIGH?); digitalWrite (PIN_SWITCH_2 (RemoteXY.switch_2 == 0) LOW:? HIGH); digitalWrite (PIN_SWITCH_3 (RemoteXY.switch_3 == 0) LOW: HIGH?); analogWrite (ШТЫРИ, RemoteXY.slider_4 * 2,55); если (RemoteXY.switch_3 == 0) {INT вращение, яркость; вращение = analogRead (POT_PIN); Яркость = вращение / 4; analogWrite (LAMPR_PIN, яркость);} если (RemoteXY.switch_3 == 1) {analogWrite (LAMPR_PIN, RemoteXY.slider_5 * 2,55);} если (RemoteXY.switch_3 == 0) {INT вращение, яркость; вращение = analogRead (POTR); Яркость = вращение / 4; analogWrite (PINR, яркость);} если (RemoteXY.switch_3 == 0) {INT вращение, яркость; вращение = analogRead (POTG); Яркость = вращение / 4; analogWrite (PING, яркость);} если (RemoteXY.switch_3 == 0) {INT вращение, яркость; вращение = analogRead (POTB); Яркость = вращение / 4; analogWrite (PINB, яркость);} если (RemoteXY.switch_3 == 1) {analogWrite (PINR, RemoteXY.slider_1 * 2,55);} если (RemoteXY.switch_3 == 1) {analogWrite (PING, RemoteXY.slider_2 * 2,55) ;} если (RemoteXY.switch_3 == 1) {analogWrite (PINB, RemoteXY.slider_3 * 2,55);} если (RemoteXY.select_1 == 0) { / * текущее состояние А * / } иначе , если (RemoteXY.select_1 == 1) {если (analogRead (LDR) <800) digitalWrite (PINW, HIGH); остальное digitalWrite (PINW, LOW); digitalWrite (PINR, LOW); digitalWrite (PING, LOW); digitalWrite (PINB, LOW);} / * текущее состояние B * / иначе , если (RemoteXY.select_1 == 2) {если (analogRead (LDR) <800) digitalWrite (LAMP_PIN, HIGH);} еще digitalWrite (LAMP_PIN, LOW) ;} // иначе выключает / * текущее состояние С * /
Сделано здорово, но в чем smart этой комнаты? Телевизор включается с пульта - он же не становится от этого умным?