Re: Модуль MySensor
Добавлено: Сб фев 27, 2016 2:32 am
Проще ведь взять 3 сдвиговых регистра
Ну да, решение. Не подумал о них. Причем давно валяется несколько штук. Забыл про них.olehs писал(а):Проще ведь взять 3 сдвиговых регистра
Точно также как к про мини.olehs писал(а):Дело в том, что у MySensors нет отдельного аппаратного профиля для 2560.
Как Вы подключили радиомодуль?
Что пишет в консоли?
Просто странно как-то в других примерах нет инклюда этой библиотеки.olehs писал(а):Дело в том, что у MySensors нет отдельного аппаратного профиля для 2560.
Как Вы подключили радиомодуль?
Что пишет в консоли?
Сработало.olehs писал(а):Номера выходов SPI у меги другие. Вот здесь есть таблица соответствий http://arduino.ua/ru/prog/SPI
А смотреть лог в Мониторе порта, верно.
Я практически уверен что все заработает и с 328 библиотекой, просто у Вас не правильное подключение радио
Заработало то, да не все.olehs писал(а):Номера выходов SPI у меги другие. Вот здесь есть таблица соответствий http://arduino.ua/ru/prog/SPI
А смотреть лог в Мониторе порта, верно.
Я практически уверен что все заработает и с 328 библиотекой, просто у Вас не правильное подключение радио
Код: Выделить всё
#include <MySensor.h>
#include <SPI.h>
#define RELAY_1 22 // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
#define NUMBER_OF_RELAYS 22 // Total number of attached relays
#define RELAY_ON 1
#define RELAY_OFF 0
MySensor gw;
void setup()
{
Serial.print("Setup");
gw.begin(incomingMessage, AUTO, true);
gw.sendSketchInfo("RelaySitok", "1.2");
for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS;sensor++, pin++) {
gw.present(sensor, S_LIGHT);
pinMode(pin, OUTPUT);
digitalWrite(pin, gw.loadState(sensor)?RELAY_ON:RELAY_OFF);
}
}
void loop()
{
gw.process();
}
void incomingMessage(const MyMessage &message) {
Serial.print("Incomung");
if (message.isAck()) {
Serial.println("This is an ack from gateway");
}
if (message.type == V_LIGHT) {
digitalWrite(message.sensor-1+RELAY_1, message.getBool()?RELAY_ON:RELAY_OFF);
gw.saveState(message.sensor, message.getBool());
Serial.print("Incoming change for sensor:");
Serial.print(message.sensor);
Serial.print(", New status: ");
Serial.println(message.getBool());
}
}