Дребезг кнопки. Аппаратное решение.
- Войдите на сайт для отправки комментариев
Сб, 25/02/2017 - 11:46
Доброго всем времени. Я дико извиняюсь за возможно глупые вопросы, т.к. больших познаний в этой области катострофически мало, а руки чешутся ...
Нарыл такую схему:
Резюки по 10КОм, кондюки по 10мФ, микросхема sn74hc14n.
Для проверки работы воткнул диод с резистором на 1КОм.
Скетч:
//Pins const int key_list_Pin = 9; const int led_1_Pin = 13; const int key_esc_Pin = 11; //key variable boolean btn_list_status; boolean btn_esc_status; void setup() { //pins mode pinMode(led_1_Pin, OUTPUT); pinMode(key_list_Pin, INPUT); pinMode(key_esc_Pin, INPUT); } void loop() { btn_list_status = digitalRead(key_list_Pin); if (btn_list_status == HIGH) { digitalWrite(led_1_Pin, HIGH); } else { digitalWrite(led_1_Pin, LOW) ; } btn_esc_status = digitalRead(key_esc_Pin); if (btn_esc_status == HIGH) { digitalWrite(led_1_Pin, HIGH); } else { digitalWrite(led_1_Pin, LOW) ; } }
В общем работает. Только диод тускло светится. Проверил GND-D13, вольтметр показал 2.4в.
Большая просьба в даташиты не посылать. Я там был, но ничего не понял. ))
Да ... в смысле ЗЫ
Если нажимать две кнопки одновременно, то диод горит в полную силу.
Вопрос-то в чем? Почему светодиод тускло светится? Дык ты же его по одной кнопке включаешь, а по другой выключаешь...
Не, я включаю и той и другой, пока нажато - горит.
Вопрос почему просадка по питанию.
У меня два варианта:
или ардуинка микруху не тянет (мне кажется маловероятно), тогда надо отдельным источником питать +5в, хотя причем тут микрушка ...
или неправильные резисторы, конденсаторы взял. В магазине дали резюки на 0.25 ватт, а кондюки 16 вольтовые.
Потом такой момент...
Я с обеих кнопок сигнал инвертирую в одной микрушке, а eagle мне почему то рисует на каждую кнопку по микрушке. Толи так и должно быть, а я дурак старый, толи просто библиотеку под себя надо переделать, а я правильно развел ...
В опчем я пока в ступоре, но больше похоже на второй вариант ...
Блин ... )) Грамотно послал ... ))
Его еще и найти где то надо. Я и осцилограф - как в басне про обезьяну и очки.
@#$%&, я не специально. Нет там никакой просадки напряжения. Просто прямоугольные импульсы с частотой несколько сотен кГц
))
Тогда я вообще не понимаю, как моя подключенная схема может влиять на частоту, вывода pin13?
Проверьте резистор (тестером), тот что на 1 кОм, соответствует ли номиналу.
gena, и что будет если не соответствует?
malic, с одной кнопки выводи на один светодиод, с другой - на другой. И будет тебе щастье.
Неа, не будет ...
... так оказывается тоже не ярко горит ...
зы номиналу 1ком соответствует.
malic, в строках 26 и 28 замени led_1_Pin на led_2_Pin и вверху добавь
const int led_2_Pin = 10;
malic, грубо говоря, у тебя одна кнопка отвечает за горение светодиода половину времени. Нажата одна - горит 50% времени, нажато обе - горит 100% времени. Поэтому во втором случае ярче.
Да, и по номиналам: не 10 мФ (=10000мкФ), а 10 нФ (=0.01мкФ).
Подключил второй диод, действительно с разных кнопок разные диоды светятся в полную силу. Щастье есть, только оно все таки ест ... мозг.
Я же програмно моргаю светиком. Какая ему разница, на какое событие, от какой кнопки я ему скажу HIGH?
Да, и по номиналам: не 10 мФ (=10000мкФ), а 10 нФ (=0.01мкФ).
да, я опечатался
malic, грубо говоря, у тебя одна кнопка отвечает за горение светодиода половину времени. Нажата одна - горит 50% времени, нажато обе - горит 100% времени. Поэтому во втором случае ярче.
А вот это, я видимо завтра, возьму пузырь и буду думать думу )). Я так понял Andy мне пытается про это же сказать а я в силу своей малограмотности пока понять не могу ...
Обошлось без пузыря. В конфигурации один светик, две кнопки, в цикле loop, при замкнутом контакте на одной из кнопок:
Одна кнопка включала светик, а вторая тут же выключала.
Осцилограф, осцилограф... ))
ХВОСТ!
Одна кнопка включала светик, а вторая тут же выключала.
зачем ты так сделал?