Добрый день! Сделал логику на Due, а управление реле решил на Uno, так как не могу подружить дуе с реле на 5в. На УНО подаю логические уровни, которые уже управляют реле. Так вот, на Дуе все оттестировано, на ее выход подается сигнал в зависимости от настроек (3 сек. закрыто, 2 открыто ну или произвольно), но при считывании его на УНО выходной сигнал с нее всегда HIGH. Что не так? Скетч на УНО: Код (C++): const int Clapan1 = 4; const int Clapan2 = 7; const int input1 = 8; int inputStateSet1= 0; // const int input2 = 12; int inputStateSet2= 0; void setup() { pinMode(Clapan1, OUTPUT); pinMode(Clapan2, OUTPUT); pinMode(input1, INPUT); pinMode(input2, INPUT); } void loop() { inputStateSet1 = digitalRead(input1); inputStateSet2 = digitalRead(input2); if (inputStateSet1==HIGH) { digitalWrite(Clapan1, HIGH); } else {digitalWrite(Clapan1, LOW);} /*if (inputStateSet2==HIGH) { digitalWrite(Clapan2, HIGH); } else {digitalWrite(Clapan2, LOW);} */ } Повторюсь - с дуе выходит как надо, оттестировано на светодиоде, то есть он допустим 4 сек горит, 2 не горит. Может ли это быть из-за несовпадения уровней напряжения?
Я думаю, что Вам следует соединить оба Ваших устройства с помощью i2c шины. Вот урок: https://lesson.iarduino.ru/page/urok-26-3-soedinyaem-dve-arduino-po-shine-i2c/
Слишком сложно. Мне все-лишь нужно в зависимости от входного сигнала на УНО включить или выключить нагрузку на реле.
Попробуйте эти два кода на ваших устройствах. Только соедините их правильно по схеме из вышеприведенного урока. Код для мастер-устройства: Код (C++): // Подключаем библиотеки: #include <Wire.h> // подключаем библиотеку для работы с шиной I2C #include <iarduino_I2C_connect.h> // подключаем библиотеку для соединения arduino по шине I2C // Объявляем переменные и константы: iarduino_I2C_connect I2C2; // объявляем переменную для работы c библиотекой iarduino_I2C_connect const byte PIN_Button_master = 2; // объявляем константу с указанием номера цифрового вывода, к которому подключена кнопка void setup(){ Wire.begin(); // инициируем подключение к шине I2C в качестве ведущего (master) устройства pinMode(PIN_Button_master, INPUT); // Устанавливаем режим работы вывода собственной кнопки, как вход } void loop(){ //Считываем данные: VAR_Button_master = digitalRead(PIN_Button_master);// Считываем состояние собственной кнопки VAR_Button_slave = I2C2.readByte(0x01,0); // Считываем состояние реле ведомого (адрес ведомого 0x01, номер регистра 0) //Отправляем данные: I2C2.writeByte(0x01,0,VAR_Button_master); // Отправляем состояние собственной кнопки ведомому (адрес ведомого 0x01, номер регистра 0, состояние кнопки) delay(200); } Код, для ведомого устройства: Код (C++): // Подключаем библиотеки: #include <Wire.h> // подключаем библиотеку для работы с шиной I2C #include <iarduino_I2C_connect.h> // подключаем библиотеку для соединения arduino по шине I2C // Объявляем переменные и константы: iarduino_I2C_connect I2C2; // объявляем переменную для работы c библиотекой iarduino_I2C_connect const byte PIN_LED = 13; // объявляем константу с указанием номера цифрового вывода, к которому подключен светодиод byte REG_Massive[3]; // объявляем массив, данные которого будут доступны для чтения/записи по шине I2C void setup(){ Wire.begin(0x01); // инициируем подключение к шине I2C в качестве ведомого (slave) устройства, с указанием своего адреса на шине. I2C2.begin(REG_Massive); // инициируем возможность чтения/записи данных по шине I2C, из/в указываемый массив pinMode(PIN_LED, OUTPUT); // Устанавливаем режим работы вывода светодиода, как выход } void loop(){ digitalWrite(PIN_LED, REG_Massive[0]); // вкл/выкл светодиод в соответствии со значением 0 элемента массива REG_Massive } Можете в ведомом устройстве вместо реле подключить светодиод для отладки. Этот код я сам проверить не могу, т.к. у меня нет двух устройств и я сам только учусь. )))
Глупость какая.На Дуосе не хватило пина для реле?Или лишняя Уна в гараже завалялась?Надо все делать на одной плате одним скетчем-препод это оценит
Снова умничаете? Вот Вам беглое решение: Прикрутить по шине I2C внешний RTC, например DS1307, а выход его "будильника" посадить на ножку прерывания МК.. МК будет "заводить" на RTC время, когда нужно будет просыпаться, а сам будет засыпать...
Не понимаю, как jqc-3ff-s-z запитать от 3,3 вольта с дуе. Препод? Уже давно-давно препод не указ. Схема чего? выход с дуе подается на вход уно. Вместо реле пока светодиод. Горит постоянно, реле соответственно непрерывно щелкает. Кстати, да.. А земли устройств надо объединять? )
Как запитать?Как обычно.Хочешь я поищу в Гугле за тебя?Если препод не указ и не курсовая/лаба/диплом то тем более надо голову включить.
Я ведь не об этом спрашивал. Более того, я подключал. Но во время срабатывания реле, переменным присваиваются какие то левые значения, необъяснимые никакой логикой, на кран выводится абракадабра. Решил отказаться. Подскажешь как подружить его с http://wiki.amperka.ru/продукты:tft-lcd-480x320
чтобы не спалить, нужно составить полную электрическую схему и убедиться, что нигде не течет лишний ток
Нужно всегда объединять землю при использовании двух и более устройств. Даже если у Вас устройства питаются от одного источника питания (БП, ПК и т.д.) лишним не будет.