Технический форум по робототехнике.
MIHAnik22 » 14 мар 2016, 22:34
Задача в чем? Есть светодиод и фотоэлемент в одном корпусе. Плюсы у них приходят отдельно а вот минус общий. Как узнать замкнул ли фотоэлемент цепь или нет? То есть я питаю фотоэлемент с пина 1 к примеру. Если фотоэлемент засвечен то он замыкает цепь. Как узнать замкнута цепь или нет? Или может надо с другого боку подходить?
- Вложения
-
![IMG_20160314_205433[1].jpg (1.6 МиБ) Просмотров: 2247 IMG_20160314_205433[1].jpg](./download/file.php?id=40702&t=1&style=9)
ilalexey » 14 мар 2016, 22:53
Написать скетч? Если открыт - отправить в юарт 1, если нет то 0 отправлять.
MIHAnik22 » 14 мар 2016, 23:00
ilalexey, Открыт пин? а как узнать открыт или нет? какие команды используют?
ilalexey » 14 мар 2016, 23:10
HIGH и LOW
наверно(digitalRead).
Может лед диод посадить для визуальной оценки?
MIHAnik22 » 14 мар 2016, 23:27
ilalexey, так вот в чем дело то. Ставлю пин 1 как output чтобы питать (пока возьмем) свето диод. Он горит. Но читать пин не могу, потому что он установлен как output. А если поставить Input и подавать digitalWrite (HIGH) то это немного не правильно, или так делают?
Добавлено спустя 5 минут 51 секунду:попробовал сдлать пин как Input и подал на него HIGH. интерестный эффект. Когда есть потребитель(Светодиод) то напряжение на пине низкое. Контрольный лэд не горит. Но если потребителя нет, то лэд загорается. Это нормальная структура? ничего страшного что пин настроен на Input?
- Код: Выделить всё • Развернуть
digitalWrite(chk, HIGH);
if(digitalRead(chk)==HIGH){
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
}else{
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
}
ilalexey » 14 мар 2016, 23:33
"светодиод и фотоэлемент в одном корпусе" = "щелевая оптопара"
Не уверен в сути твоей затеи, но этот элемент специально придумали, чтобы разделить одно от другого. Зачем тебе одной ногой и читать и писать?
На излучающий диод повесь питание на пмж, а другую сторону воткни на пин и читай его.
MIHAnik22 » 14 мар 2016, 23:53
ilalexey, то есть если я правильно понял, то диод излучая засветит фотоэлемент и на его ноге появится сигнал, так?
lorry » 14 мар 2016, 23:59
Судя по фотографии это оптический энкодер. В его состав входит обычная оптопара светодиод-фотодиод. Совершенно не понятно зачем вы пытаетесь светодиод питать от контроллера? Подключите светодиод через сопротивление 100Ом-1кОм к +5В. Фотодиод соедините так же через сопротивление 1кОм на +5В, общую точку сопротивление-фотодиод подключайте к нужному выводу МК, вывод настройте на ввод, и командой digitalRead() читайте состояние пина, только имейте ввиду, что импульсы будут инверсные. Но т.к. у вас энкодер, то в этом случае рекомендуется использовать программные прерывания, иначе имеется большая вероятность потерь импульсов.
Схема должна быть такой:
MIHAnik22 » 15 мар 2016, 00:26
lori, меня не правильно поняли) Я про светодиод говорил, про обычный. Не про тот что в энкодере, а про простой тестовый. Ну вот по схеме попробую соединить. А инверсные импульсы, это то есть с отрицательным знаком? Есть особенность в считывании импульсов такого типа?
lorry » 15 мар 2016, 00:40
Нет не с отрицательным, в вашем случае будет так: если светодиод освещает фотодиод, то считываться будет логический 0, если засветки нет то 1.
Scorpio » 15 мар 2016, 00:41
MIHAnik22 писал(а):попробовал сдлать пин как Input и подал на него HIGH
Пин остается входом, но при записи в него HIGH к нему подключается подтягивающий резистор (через него может гореть светодиод). При LOW он просто висит в воздухе.
MIHAnik22 » 15 мар 2016, 00:48
Scorpio, благодарю, теперь понятно!)
lori, все пойду пробовать)
lorry » 15 мар 2016, 01:11
MIHAnik22 писал(а):Scorpio, благодарю, теперь понятно!)
lori, все пойду пробовать)
Удачи!!!

ilalexey » 15 мар 2016, 11:02
..спасибо всем, ну а волку - кожура..
Всё, обиделся. Не буду больше подсказывать никому ничего
MIHAnik22 » 15 мар 2016, 11:07
Класс! все считал как хотел! вот загвоздка только в понятии направлении вращения диска с прорезями. Я знаю как можно определить направление вращение диска, но напряжение которое я считываю очень малое меньше 1 в аналоговом исчислении, можно ли как то усилить настолько слабый сигнал?
ilalexey, оп. Да лан, что обижатся то?) Ну тебе тоже благодарность)) За Желание)