Как подать один сигнал одновременно на два выхода
- Войдите на сайт для отправки комментариев
Пт, 05/07/2019 - 17:12
Как подать один сигнал одновременно на два выхода?
Хочу сделать, чтобы определённая последовательность нулей и единиц подавалась на 9 пин и она же одновременно подавалась на 13, для индикации так сказать
Что-то не получается
Пиши прямо в порт с маской.
Хотя, я думаю, реальная одновременность тебе нахрен не нужна.
Для индикации можно пин 9 завести на RX обдурины, если лень светодиод подключать.
Как подать один сигнал одновременно на два выхода?
Хочу сделать, чтобы определённая последовательность нулей и единиц подавалась на 9 пин и она же одновременно подавалась на 13, для индикации так сказать
Что-то не получается
просто повесь на 9-й пин светодиод и все
Нет, по 9 пину код уйдёт в другое устройство
Тут принципиальный момент, можно ли так сделать
Можно. #1
Тут принципиальный момент, можно ли так сделать
Да, дейлайте на здоровье, кто ж Вам не даёт-то? Как пробовали, показывайте.
На два выхода или на два входа?
Просто обычно сигналы подают на входы,
а снимают с выходов.
Пиши прямо в порт с маской.
Можно чуть подробнее? В этом деле новичок
На два выхода. Значит снять с двух выходов, выразился неправильно
А какая задержка допустима? 0 фемтосекунд или больше?
Можно чуть подробнее? В этом деле новичок
А от тебя можно чуть подробнее?
Покажи как ты пытался сделать и что у тебя не получилось.
Нет, по 9 пину код уйдёт в другое устройство
Тут принципиальный момент, можно ли так сделать
И что? можно подумать, что паралелльно подключенный светодиод помешает коду "уйти в другое устройство"...
Как подать один сигнал одновременно на два выхода?
digitalWrite(9, HIGH);
digitalWrite(13, HIGH);
не получается?
Так а зачем усложнять, если светодиод есть сразу на плате?
Да и в принципе в дальнейшем это пригодится, думаю
Можно подумать, что два шоттки, подключенных к одному выходу как-то помешают пустить сигналы в два устройства без опасения спалить оба.
Можно чуть подробнее? В этом деле новичок
А от тебя можно чуть подробнее?
Покажи как ты пытался сделать и что у тебя не получилось.
и не будет, потому что пин rjl обьявлен как выход.
Обьясните, что мешает рядом с digitalWrite(kod,HIGH); написать строчку digitalWrite(led,HIGH);
Как подать один сигнал одновременно на два выхода?
digitalWrite(9, HIGH);
digitalWrite(13, HIGH);
не получается?
Так конечно получится, только у меня код будет зависеть от нажатия на кнопки, потому нужно чтобы ардуино именно считывал информацию с 9 пина и индицировал на 13
Во-первых, вставляй правильно код (больше такое читать не буду).
Во-вторых, всё она у тебя нормально считывает. Просто там на пине ни хрена не меняется, вот она тебе HIGH и показывает.
(для справки. loop начинает исполняться ПОСЛЕ того, как setup ПОЛНОСТЬЮ выполнится).
Какая-то чушь и компот, а не код. С первопостом очень мало общего.
и не будет, потому что пин rjl обьявлен как выход.
Да, будет, выходы также читаются.
Всё у него считывается и нормально работает. Там сидит 1 и никогда не меняется. С чего её меняться-то?
За вставку извиняюсь. А вставлять я в loop пробовал, тоже самое. И меняется же на пине сигнал каждые 2 секунды, просто ограничил одним циклом
Да, будет, выходы также читаются.
да, промахнулся
Считывает и правильно записывает!
П.С. пока читал опередили
За вставку извиняюсь. А вставлять я в loop пробовал, тоже самое. И меняется же на пине сигнал каждые 2 секунды, просто ограничил одним циклом
максимус, либо ты вставляешь именно тот код, который не работает. либо идешь лесом.
Коллеги. извините за прямоту
и не будет, потому что пин rjl обьявлен как выход.
Да, будет, выходы также читаются.
Всё у него считывается и нормально работает. Там сидит 1 и никогда не меняется. С чего её меняться-то?
Так почему не меняется то?
Какая-то чушь и компот, а не код. С первопостом очень мало общего.
Это "разводка безопасного кабеля".
Почитай что такое delay и как он работает.
Так почему не меняется то?
Мужик, включай мозги. Я тебе что написал ...
(для справки. loop начинает исполняться ПОСЛЕ того, как setup ПОЛНОСТЬЮ выполнится).
Ну и смотри. Твой setup всё сделал и ЗАКОНЧИЛСЯ. После этого запускается loop.
А вот теперь ты мне скажи, с какого хера ему меняться? Кто его меняет? Кто меняет состояние исходного пина?
Значит я что-тот не так понимаю. LOW — это же 0. Вот он и меняется с HIGH на LOW, с 1 на 0, нет?
Ворорта - он пишет "А вставлять я в loop пробовал, тоже самое."
ИМХО, пока верный код не выложит - обсуждать смысла нет
Значит я что-тот не так понимаю. LOW — это же 0. Вот он и меняется с HIGH на LOW, с 1 на 0, нет?
всем веселой пятницы....
За вставку извиняюсь. А вставлять я в loop пробовал, тоже самое. И меняется же на пине сигнал каждые 2 секунды, просто ограничил одним циклом
максимус, либо ты вставляешь именно тот код, который не работает. либо идешь лесом.
Коллеги. извините за прямоту
Вот сам код, он слишком громоздкий. Вот хочу, чтобы он одновременно эти LOW и HIGH подавал на 13 и 9 пин
int led=9; int ind=13; void setup() { } void loop(){ int reads = digitalRead(led); digitalWrite(ind,reads); pinMode(led, OUTPUT); digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(120); digitalWrite(led, HIGH); delay(30); digitalWrite(led, LOW); delay(40); digitalWrite(led, HIGH); delay(40); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(50); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(40); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(70); digitalWrite(led, LOW); delay(40); digitalWrite(led, HIGH); delay(60); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(30); digitalWrite(led, LOW); delay(120); digitalWrite(led, HIGH); delay(30); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(40); digitalWrite(led, LOW); delay(40); digitalWrite(led, HIGH); delay(50); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(40); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(70); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(60); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(50); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(40); digitalWrite(led, LOW); delay(40); digitalWrite(led, HIGH); delay(50); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(20); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(20); digitalWrite(led, LOW); delay(40); digitalWrite(led, HIGH); delay(30); digitalWrite(led, LOW); delay(40); digitalWrite(led, HIGH); delay(60); digitalWrite(led, LOW); delay(20); digitalWrite(led, HIGH); delay(30); }Значит я что-тот не так понимаю. LOW — это же 0. Вот он и меняется с HIGH на LOW, с 1 на 0, нет?
всем веселой пятницы....
Так, хватит издеваться, я же сказал, что новичок. Был бы благодарен, если бы объяснили, в чём не прав
Значит я что-тот не так понимаю.
Это точно.
LOW — это же 0. Вот он и меняется с HIGH на LOW, с 1 на 0, нет?
В твоём коде, во время исполнения loop НИХЕРА не меняется. setup ЗАКОНЧИЛСЯ до начала исполнения loop. Ты понимаешь смысл слова "закончился"?
Кто, где и когда менятеся? Кто его меняет? Я по-моему это уже в третий раз пишу.
Если ты говоришь не об этом коде, что выложил, а о каком-то другом, так выкладывай его. Только выкладывай правильно. Ещё раз выложишь так, как тот - тебя просто пошлют НА (я первый это сделаю).
Вот сам код, он слишком громоздкий. Вот хочу, чтобы он одновременно эти LOW и HIGH подавал на 13 и 9 пин
Т.е. ты хочешь сказать, что то, что ты выкладывал раньше было фуфлом для лохов? И я потратил полчаса на обсуждение этого фуфла?
Кто над кем издевается?
Про этот код.
В строке №7 читается всегда HIGH, установленный в строке 95. Всё! Чего другого ты ожидал?
И, кстати, кто будет конфигурировать пин ind как OUTPUT?
Вот сам код, он слишком громоздкий. Вот хочу, чтобы он одновременно эти LOW и HIGH подавал на 13 и 9 пин
В строке №7 читается всегда HIGH, установленный в строке 95. Всё!
Чего другого ты ожидал?
Да, ты прав, всегда висит последнее состояние, но почему? Ожидал я, что при смене HIGH на LOW на 9 пине, 13 пин будет так же менять своё состояние. Вот и вопрос, почему так не происходит, и как это осуществить?
А насчёт первого кода извиняюсь. Накидал код, чтобы попроще выглядел, а получилось только хуже
Да, ты прав, всегда висит последнее состояние, но почему? Ожидал я, что при смене HIGH на LOW на 9 пине, 13 пин будет так же менять своё состояние. Вот и вопрос, почему так не происходит, и как это осуществить?
А насчёт первого кода извиняюсь. Накидал код, чтобы попроще выглядел, а получилось только хуже
Оно и есть, как ожидали. А программа, она, последовательно выполняется.
P/S Хотите как по своей задумке, 7-8 строчки после каждого digitalWrite(); вбейте.
Вот и вопрос, почему так не происходит, и как это осуществить?
осуществить просто - вставить чтнение состояния пина после КАЖДОГО изменения . Вот сколько у тебя loop() digitakWrite(), столько надо вставить digitalRead()
Ожидал я, что при смене HIGH на LOW на 9 пине, 13 пин будет так же менять своё состояние.
Вот и вопрос, почему так не происходит
С какого перепугу это должно происходить? Вот просто скажи, с какого? В строке №7 ты читаешь пин led и в строке №8 выводишь значение на пин ind. Ну? А потом в строке, скажем, №13 меняешь состояние пина led. И что? Строки 7 и 8 должны вкаким-то олшебным образом тут же выполниться? Или как? А если они не выполняются, то с какого перепугу пин ind изменится? С чего ты ждал-то, что там что-то меняться будет?
как это осуществить?
Знаешь, я даже пытаться не буду объяснять тебе как это сделать, например, через прерывания на изменение пина - это не твоя тема (пока). С твоим нынешним уровнем знаний это не делается никак. Хочешь осуществить - соедини проводочком. Только смотри чтобы они не были оба в OUTPUT, а то дым пойдёт.
Чёта уже вторая пятничная тема. То писатель таймеров пожаловал, теперь вот синхронизатор пинов.
Я щас ржать буду в голос.
А я лучше пойду накачу за здоровье всех альтернативно-одарённых.
Ладно, я понял, спасибо
Ладно, я понял, спасибо
точно понял? - обычно так говорят когда непонятно нифига...
Makcumayc
дарю код, который выводит твою последовательность сразу на 2 пина. А еще он в 5 раз короче. Учись пользоваться массивами, такие "портянки" из 100 одинаковых строк - писать просто стыдно.
int led=9; int ind=13; int delays[] = { 1000,120,30,40,40,20,50,40,20,20,70,40,60,20,30,120,30,20,40,40, 50,20,70,20,60,20,50,20,40,40,50,20,20,20,20,40,50,40,60,20,30,0}; int i =0; void setup() { pinMode(led, OUTPUT); pinMode(ind, OUTPUT); } void loop(){ while (delays[i]) { digitalWrite(led, !digitalRead(led)); digitalWrite(ind, !digitalRead(ind)); delay(delays[i]); i++;} i =0; }