РЕКЛАМА НА ФОРУМХАУС Доброго времени суток. Подскажите, пожалуйста, решение или где можно почитать информацию по такому вопросу: Есть Arduino UNO которая управляет светом в доме, я хочу подключить параллельно ещё одну Arduino для резерва. То есть всем управляет одна Arduino UNO, если случается программный или аппаратный сбой, то автоматически всё управление берёт на себя вторая (резервная) Arduino. За ранее спасибо.
Очень полезная мысль, учитывая особенности ардуино. Правда с UNO у меня не было проблем (с НАНО -да) ,но тоже этот вопрос интересует. Для начал я бы задействованные выходы объединил диодами, и предусмотрел бы взаимную блокировку питания: если включена одна - вторая не получает питание и наоборот. А потом (если не сгорит ничего ) программно решить как определять момент сбоя и реакцию на него.
Решение должно быть примерно такое: одна ардуина периодически меняет состояние пина, а вторая - отслеживает это изменение (и наоборот). Если в течение заданного промежутка изменения не произошло - управление берет на себя вторая ардуина. Ну и диодами разделить линии управления к исполнительным механизмам. По-хорошему, проще задействовать встроенный механизм watchdog у ардуины, и должны быть предусмотрены аварийные защиты на исполнительных устройствах, не зависящие от ардуины.
Всем большое спасибо за ответы. Прошу прощения за карявую схему, как я понял подключение двух Arduin будет таким: Вопрос: какие диоды ставить?
Если всем светом в вашем доме управляет одна несчастная Arduino UNO то эта концепция неверна в корне, и ее надо не обвешивать костылями, а признать негодной и переделать.
Диодная развязка двух устройств, подключенных на одну линию, подразумевает два диода (от каждого из устройств). У Вас - стоит по одному... Работать такая схема может и будет, но плохо и не долго.
А вдруг повезет? На ардуине как раз и изучит и освоит проблему, а там видно будет. Нельзя лишать человека творческого энтузиазма QUOTE="DenLiss, post: 12499139, member: 1555593"] Вопрос: какие диоды ставить?[/QUOTE] А без разницы, токи то небольшие. например 1N4001, можно Шоттки попробовать. И, естественно, по диоду на каждую выходную цепь. ...А схемку надо развернуть, указать конкретные связи, светодиод так может сгореть-нехватает чего то в его цепи.
Оказалось, что китайдуино НАНО, у которых стоят контрафактные чипы FTDI 232 (а как их различишь, если небыло раньше такой проблемы?), нельзя подключать к WIN7. Автоматически обновляются драйвера FTDI, которые "вырубают" возможность грузить скетч через USB. У меня IМАС и все было хорошо, пока я не подключился к ноубуку с WIN7- получил "привет" за контрафакт. Теперь у меня две НАНО на инвалидности. только ISP жив.
@DenLiss, автономные выключатели/димеры с дистанционным управлением, обьединенные по проводной управляющей шине. Центральный контроллер только управляет их состояниями. В этом случае ничто не мешает поставить просто 2 управляющий контроллера на шину и таким образом обеспечить дублирование без всяких сложных схем. Другой вариант - поставить на каждый светильник биполярное реле, управление к нему подвести от двух arduino и от обычных клавишных выключателей. в случае зависания одной ардуино - будет вторая. в случае полного отказа - просто тупая клавиша "сухой контакт". но для развязки, вероятно каждую из линий надо включать через диод и самовостанавливающийся предохранитель.
Насчет - FTDI 232. На моих китайских платах всех вообще честный китайский чип CH340G - драйвера для него свои и никаких конфликтов с итальянскими нету
Помогите я в програмировании не ас мне надо подключить сигналку на основе датчиков движения вот подсобрал скетч, но он на один датчик. И никак не могу понять как добавить зоны, ещё надо 12 зон сделать тоесть 13 датчиков. arduino uno у меня, но если надо расширю /VSS, OUT, GND => 5VC, Digital pin 2, GND int pirPin = 2; /контакт для подключения датчика к Arduino int ledPin = 13; /использование стандартного светодиода int val = 0; /переменная для хранения состояния датчика void setup() { Serial. begin (9600); /открыть сеанс связи з компьютером pinMode (pirPin, INPUT); /определить выходной контакт для датчика pinMode (ledPin, OUTPUT); /определить контакт со светодиодом как выход } void loop() { val = digitalRead (pirPin); /считываем состояние датчика if (val = HIGH) { /если есть движение digitalWrite (ledPin, HIGH); /включить светодиод Serial. println("vor v dome!"); /передать на компьютер "Motion!" } else { digitalWrite (ledPin, LOW); /иначе выключить светодиод Serial. println("No motion"); /и передать компьютеру "No motion" } delay (1000); /подождать секунду }