nlothik (nlothik) wrote,
nlothik
nlothik

Дребезг контактов

В продолжение предыдущей записи.

Помимо того, что я никак не мог разобраться, как же мне обрабатывать биты, полученные с валкодера (за подсказку ещё раз спасибо sun_jr), я также столкнулся с тем, что периодически я получал не ожидаемые биты, а какую-то ересь, которой по таблице состояний валкодера быть не должно в принципе.

Выяснилось, что я напарывался на известную проблему в электронике -- дребезг контактов. Вот ты думаешь, ты кнопку нажал -- и всё, сразу ноль поменялся на единицу? А вот фигачечная. Прежде чем устаканиться на единице, проходит некоторое время, когда контакты переключателя, сталкиваясь друг с другом, отскакивают и искрят, а на выходе в это время там может быть всё, что угодно.

Увидеть это просто, если вооружиться приборами. Понадобится осциллограф с триггерным режимом. Вот смотри какую "красоту" выдаёт в момент переключения с 0 на 1 дешёвый безымянный китайский механический валкодер:


Одно деление шкалы -- 250 микросекунд. Таким образом, на протяжении около 5 миллисекунд с валкодера приходит всё, что угодно, кроме настоящих данных.

Методы борьбы известны -- как только мы считываем изменение положения переключателя, ждём время, за которое переключатель гарантированно перейдёт в устойчивое состояние, и считываем положение переключателя заново. В моём случае хватило ждать 5 миллисекунд внутри цикла после первого считывания единицы.

Ну, а по-хорошему, валкодеры надо покупать качественные оптические, например, Борнс или Ханивелл, а не кетайские механические. Там не будет такого безобразия.
Tags: 73, хобби
Subscribe

  • Котейковое

    Идёт урок по арифметике. –Иванов, если я тебе дам двух котов, а потом ещё двух, сколько котов у тебя будет? –Пять –Почему…

  • Тонко пошутили, по-английски

    Может быть, кто-то уже видел эту историю, а я её обнаружил впервые. Во время Второй Мировой Войны немцы, в обстановке строжайшей секретности,…

  • Немецкий язык ошибок не прощает

    Одним из преимуществ английского языка является то, что на нём можно говорить с серьёзными ошибками, но тебя всё равно поймут. А в немецком языке…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 5 comments