Ви не увійшли.
необходимо по активации любого, из первых пяти входов - активировать выход 1 и при активации любого второго
Позанудствую. Под активацией можно понимать:
а) переход из 0 в 1;
б) из 1 в 0;
в) просто удержание 1 не менее чем X мс, т.е. по уровню, а не по фронту сигнала.
Сброс должен заставить схему забыть эти события? А если у нас вариант "в"?
Спасибо всем за советы, получил сегодня свою первую Ардуинку. Терпеть не смог, собрал на коленке. Залил скетч из поста №10, реле пока не подключал, информацию смотрел в мониторе порта. Всё как я хотел. При сработке одного реле на 3 пине 648, при сработке двух реле на 3 пине 724. Ещё раз всем спасибо.
Ну это вам виднее, что нужно. Для задержек есть релейные таймеры и NE555, в конце концов. Успехов.
Надёжность закложена в предельной простоте схемы. Помехоустойчивость определяется уровнем передаваемых сигналов. С этих точек зрения схема - предел совершенства. Реальный недостаток - чистая комбинационность. Если нужны задержки, тогда здаюсь.
Ну, не все так совсем просто. Нужно обеспечить еще и помехоустойчивость, и надежность логической схемы. Но микрокомпъютер для такой задачи все равно, что из пушки по воробьям стрелять. Я бы сделал релейно-диодную логику и голову не морочил с программированием. Но это сейчас не модно, сейчас микроконтроллеры просто обязаны вставлять в каждый электрочайник.
Если я правильно "вкурил" тему, то всю логику можно реализовать на одном (!) транзисторе и (количество_первичных_каналов + 1) резисторах. Дополнительный резистор - между базой и эмиттеромм, остальные - от источников к базе. Номиналы рассчитать так, чтобы на базовом резисторе при активизации одного канала падало 0,4 вольта (в случае использования кремниевого биполярного).
Так а что тогда вам нужно сделать, снять информацию и включить пену, по сложному алгоритму? Зачем здесь микроконтроллер?
Всё намного сложнее, каждой системой порошкового тушения управляет свой прибор, который следит за датчиками пламени, включает оповещение, переключает режимы работы, формирует задержку для эвакуации людей, эти приборы между собой и с блоком реле "общаются" по RS485, а шкаф управления пеной релейный и ему для запуска необходимы два сигнала.
Так, а зачем мудрить то так? Как я понял у вас пять датчиков возгорания, 8 порошковых и 1 пенный автоматический огнетушитель. Датчики подключаете на отдельные входы контроллера а реле на отдельные выходы, и делаете программу управления, с какой угодно логикой. И все.
Уяснить задачу из первого поста мне не удалось.
Попытаюсь сформулировать задачу по другому. Есть пять систем порошкового пожаротушения и модуль на 8 реле, к каждому реле можно приписать любое количество систем (при активации любо приписанной системы - сработает реле). В этом же помещении есть система пенного пожаротушения, которая запускается по двум сигналам (логика И). Необходимо запустить пену, если запустились две любые системы с порошком.
По схеме из поста №5 контроллер не сможет определить нажатия кнопок.
Кажется понял. Надо делать так?
int analogPin = 3; // средний вывод делителя подключен к аналоговому выводу 3
int val = 0; // переменная для хранения считанного значения
int relais1 = 10; // модуль реле подключен к 10 выводу
int relais2 = 11; // модуль реле подключен к 11 выводу
void setup()
{
Serial.begin(9600); // настройка последовательного соединения
pinMode(relais1, OUTPUT); // переключаем цифровой вывод в режим выхода
pinMode(relais2, OUTPUT); // переключаем цифровой вывод в режим выхода
}
void loop()
{
val = analogRead(analogPin); // считываем напряжение с аналогового входа
Serial.println(val); // наблюдаем считанное значение
if (val > 600) {
digitalWrite(relais1, LOW); // включаем реле1
} else if (val > 700) {
digitalWrite(relais2, LOW); // включаем реле2
} else {
// действий нет
}
}
Вспомнилась военная кафедра КПИ. Тема:" Порядок действий командира при получении боевой задачи".
Получив боевую задачу, командир:
1. Уясняет её.
2. Оценивает обстановку.
3. ...
Уяснить задачу из первого поста мне не удалось.
Может быть, следует по отдельности описать реакцию программы на активацию каждого входа?
По схеме из поста №5 контроллер не сможет определить нажатия кнопок.
Ваш рисунок не соответствует описанию в первом посте..
Я же написал, что со сбросом ещё не думал. Что ещё не так?
причем тут сброс ? я имел ввиду другое...
если хотите научиться программировать - научитесь формулировать задачу...
Есть 6 входов и 2 выхода, == у вас 1 (один) вход и 2 выхода на схеме.
необходимо по активации любого, из первых пяти входов - активировать выход 1 == это понятное условие.
и при активации любого второго, из первых пяти входов - активировать выход 2. == тут или логика нарушена или проблемы с падежами.
При активации выхода 6 - сбросить. == это понятное условие.
Что ещё не так?
а если конкретно по скетчу, то все не так ...
Я же написал, что со сбросом ещё не думал. Что ещё не так?
Ваш рисунок не соответствует описанию в первом посте..