Нажать кнопку Ардуиной. Как?
- Войдите на сайт для отправки комментариев
Здравствуйте!
Имеется CD-Rom дисковод. На нём единственная кнопка открывания и закрывания лотка.
Как, подпаявшись к контактам кнопки, подключить эти провода к Arduino Uno, чтобы по программе открывать и закрывать лоток?
Параметры кнопки таковы, что в ненажатом состоянии красный щуп вольтметра показывает показывает на контактах +5В и -5В при нажатии - 0В.
Кнопки срабатывает при замыкании контактов проводником, а также резисторами на 1 КОм и 2 КОм, но не срабатывает при 5,1 КОм.
в 2012 году была тема, что через резистор 200 Ом можно подключить пин напрямую к кнопке и связать земли, тогда digitalWrite(LOW) будет восприниматься как нажатие (leshak - писал)
Как это реализовать? Получается, что например из 9 пина выходит провод, через резистор 200 ом приходит к контакту который показывает +5В, а пин GND дуины соединяется проводом с контактом кнопки, который показывает -5В. Или GND надо в разъём с чёрным проводом из блока питания компа?
Кнопка в CD-Rom явно не подачей питания управляет, как минимум драйвером мотора.
Ну если сделаете общую землю (GND ардуины к земле платы, на которой кнопка находится) то с 9го пина можно просто подать 5В на тот край кнопки, где нет 5В... Правда надо быть уверенным, что ток через кнопку течет небольшой весьма... Ну это как один из вариантов)
0_О
жескач
Сунь один конец цэшки на корпус сдрома второй к кнопке. Скорее всего один вывод кнопки всегда будет показывать 0, на втором +5, который при нажатии становица 0в, если так, переключи цэшку в режым измерения тока и подключи один конец так-же к корпусу сдрома, второй на вывод кнопки на котором +5. если ток не превышает 40мА та подключай так: gnd ардуины на корпус сдрома (ну или к одному из 2х черных проводов на молексе, они в центре, но лучше всётаки к массе который на плате сдрома или с тойже кнопки, где всегда 0в, ато при выдёргивании кабеля питание может чтонибудь произойти нехорошее) а цифровой пин ардуины к выводу кнопки где всегда +5 (пока кнопка не нажата) для безопасности через 200омный резистор (можно 300, 400, вообщем что под рукой есть) и управляй через digitalWrite(LOW).
если же на кнопке (относительно корпуса сдрома) на одном из выводов всегда присутствует +5 (хоть нажата кнопка, хоть нет) а на другом 0в а при нажатии 5в, то гнд ардуины суёш так-же на массу, а цифровой пин ардуины суёш туда где 0в а при нажатии 5в, так же через резистор, только управлять в таком случае надо digitalWrite(HIGH)
Но какойнибудь извращённый производитель может туда запросто запилить управление отрицательным (относительно массы) напряжением, тогда придется заморачиваться с оптопарой или хардкорно - реле :)
Но какойнибудь извращённый производитель может туда запросто запилить управление отрицательным (относительно массы) напряжением, тогда придется заморачиваться с оптопарой или хардкорно - реле :)
Только я хотел реле предложить))))
Шаговик + рычаг :)
Шаговик + рычаг :)
Сервой аккуратнее можно нажымать, нежнее :D
и срабатывает при замыкании контактов проводником, а также резисторами на 1 КОм и 2 КОм, но не срабатывает при 5,1 КОм.
Берем реостат на 5+ килограмм))) И вышеупомянутые серву/шаговик....)))
или 2 сервы, на одной один проводок от кнопки, ну другой - второй проводок, провода оголённые, сервоприводы по команде движут рычати с проводамина встречу друг-другу и замыкают, потом возвращаются в исходное состояние.
Хотя с реостатом чётче вариант :)
Спасибо большое за ответы!
Особенно доходчиво Focus разъяснил - я два раза прочитал и прозрел!
Вечером буду пробовать. :)
Спасибо большое за ответы!
Особенно доходчиво Focus разъяснил - я два раза прочитал и прозрел!
нужно ещё и уверовать
Спасибо большое за ответы!
Особенно доходчиво Focus разъяснил...
Про реле с сервой особенно)))
лучше всего взять в руки ардуину и тыкать ей в кнопку
А еще можно просто в компе правой кнопкой по дисководу - "Извлечь")))
была софтина шутка которая телегу двигала туда сюда
была софтина шутка которая телегу двигала туда сюда
Точно... Пожалуй, это самый простой и дешевый и надежный вариант.)
Зарабортало!!!
Подключился по первому варианту:
На кнопке лотка один контакт постоянно +5 В и 0 В при нажатии, другой контакт - абсолютный ноль.
При замыкании контактов в режиме измерения силы тока происходит срабатывание мотора и сила тока 477 микроА или ~0,5 мА.
Подключил Arduino Uno: 12 пин к контакту +5В через 200 ом, GND к 0.
Скетч CD-Rom_Blink:
Вообще, интересно, а почему нельзя то же самое через pinMode(INPUT) управлять?
Из того как написано в разделе программирование можно предположить, что digitalWrite(HIGH) равноценен прикладыванию к контактам кнопки резистора в 20KОм. А digitalWrite(LOW) убирает этот "резистор". Но эксперимент показал, что через INPUT - не реагирует.
Помоему вы вообще не понимаете как всё это работает. Какие 20кОм? pinMode(INPUT) переводит пин в режим входа и если не включать подтяжку резистором, то вывод ничего не выдает, он находится в третьем состоянии, какбудто в воздухе болтается. если включить подтяжку, то вывод, дабы не болтался в воздухе, подтягивается резистором к плюсу.
А вам что нужно было? Сделать чтобы ардуина выдавала сигнал! а это уже pinMode(OUTPUT). в этом режиме на пине ардуины может быть только либо 0 (digitalWrite(LOW) тоесть какбудто бы замкнут на массу) и 5в (digitalWrite(HIGH) как будто бы замкнут с +5в) и никаких подтягивающих резисторов тут нет.
Я предполагал, что есть возможность организовать между пинами "размыкатель". Написал в программе какую-нибудь функцию - возник между пинами проводник, написал другую - диэлектрик. Это бы очень упростило жизнь, даже с тем же подключением к кнопке.
размыкатель это уже периферия, это может быть например реле, тиристор, полевик - всё это размыкатели. На практике удобней и универсальней работать с логическими 0 и 1, а размыкалку уже каждый под свои нужды подберает :)
Эх вот бы все так просто было))) Каждый второй бы понаделал космических аппаратов уже
pinMode(OUTPUT, BEER);
pinMode(OUTPUT, BEER);
Такое только на дистилятородуино руских работает :D
Так и понаделали уже :)
Каждый второй не туда улетает.
Релюху повесь или оптрон, только про резисторы не забудь, а то попалишь всё. :)