DFPlayer в режиме "от кнопок"

Ход Ваших мыслей понятен. Но неизвестно, что на пине перед тем, как Вы устанавливаете “уровень нуля”?.
Подозреваю, что в коде написано digitalWrite(pin, HIGH); для ненажатой кнопки. Тем самым завышая родную подтяжку на пине до +5в и смещая 3в логику.(как раз , установка транзистора произвела “развязку” , т.к. высокий уровень теперь не подаётся на кнопку)

Попробуйте “нажимать” на кнопку кнопку так:

pinMode(pin, INPUT) - кнопка не нажата
//-----------------------------------------
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW); - кнопка нажата

P.S. Это условие должно выполняться одновременно на двух кнопках. Т. е надо исключить digitalWrite(pin, HIGH) на любой пин.

3 лайка

Есть. А нафига? Тут теория важнее.)
Ну, и тут ход мыслей “аналогового” человека интересен.)

альтернативного человека. с конденсаторами в башке.

2 лайка

Скорее аналоговнетного.

А почему на схеме из #118 RGB светодиод подключен катодом к +5В?
В #106 она же? Там качество по лучше - лучше видно.

Каких таймеров? Зачем они нужны для интерфейса плеера?
Подробнее расшифровать свой бред сможете?

Непонятен ужас сообщества перед конденсаторами и аналоговой техникой, может потому, что она сложней и требует много времени, в отличие от цифровой, легко осваимой десятиклассником? А между тем, самые интересные вещи происходят на стыке аналоговой и цифровой техники. Мне просто интересно сможет ли кто-нибудб объяснить как работает эта примитивная схемка, в чём её функция? А если кто-то сможет, то сможет ли он набросать в общем исполнение функции этой маленькой схемки на чисто цифровой элементной базе?

Такой “базы” нет ИМХО, т.к. все схемы, по сути аналоговые, “цифра” лишь подраздел “аналога”. Сердце компьютера - тактовый генератор, начинается с кварца и конденсаторов.

Вы бы лучше ответили на мой #122 пост, чтобы , наконец выяснить причину создания этой темы.

1 лайк

Делает пики из фронтов и спадов, тоже мне чюдо. Можно кинуть на сброс счетчика, например. На процессоре делается двумя строчками, а пачки счетчиков уже немодны.

Да сколько угодно. Выбрасываем конденсатор и вставляем за нижним инвертором логические элементы в количестве обеспечивающим необходимую задержку и не инвертирование сигнала.

1 лайк

Эта схемка не формирует пики, а формирует по спаду нулевой импульс с шириной зависящей от конденсатора.
Как рассчитать конденсатор уже не спрашиваю, это 80-й уровень :smiley:

А если речь идёт о секундах? Сколько вам потребуется логических элементов, время задержки которых наносекунды :smiley:

по фронту

при таком конденсаторе надо с триггером Шмитта на входе ставить, чтобы импульс красивый был. И для этого есть 555 таймер, и секунды там и минуты. Аналоговые, как диды! ахаха

Конденсатор заряжается мгновенно, а разряжается в зависимости от своей ёмкости.

Много чего есть. Мо1 решение проще. Два транзистора и два сопротивления на входах IO1 IO2.

Я не говорил, что умный, иначе не тратил бы своё время здесь. Схема ваша не полная, но судя по всему какойто быстрый коммутатор аналогового сигнала.

Это прямо говорит о невежестве писавшего. Время заряда и разряда конденсатора не может быть мгновенным. Определяется сопротивлением цепи и имеет точное численное значение. Да, зависит от емкости, но так же зависит и от сопротивления.

1 лайк

Конечно, самое простое последовательный интерфейс. Но почему бы не использовать прямую, обеспеченную производителем возможность. Мне ведь нужны всего три команды плееру. И на пару строчек в коде меньше. Думаю два транзистора этого стоят.

Отсутствие ответа иногда бывает красноречивее самого ответа))

1 лайк