Как узнать, есть ли потребитель на пине у платы или нет?

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение MIHAnik22 » 14 мар 2016, 22:34

Задача в чем? Есть светодиод и фотоэлемент в одном корпусе. Плюсы у них приходят отдельно а вот минус общий. Как узнать замкнул ли фотоэлемент цепь или нет? То есть я питаю фотоэлемент с пина 1 к примеру. Если фотоэлемент засвечен то он замыкает цепь. Как узнать замкнута цепь или нет? Или может надо с другого боку подходить?
Вложения
IMG_20160314_205433[1].jpg
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение ilalexey » 14 мар 2016, 22:53

Написать скетч? Если открыт - отправить в юарт 1, если нет то 0 отправлять.
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение MIHAnik22 » 14 мар 2016, 23:00

ilalexey, Открыт пин? а как узнать открыт или нет? какие команды используют?
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение ilalexey » 14 мар 2016, 23:10

HIGH и LOW наверно(digitalRead).
Может лед диод посадить для визуальной оценки?
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение 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
  }
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение ilalexey » 14 мар 2016, 23:33

"светодиод и фотоэлемент в одном корпусе" = "щелевая оптопара"
Не уверен в сути твоей затеи, но этот элемент специально придумали, чтобы разделить одно от другого. Зачем тебе одной ногой и читать и писать?
На излучающий диод повесь питание на пмж, а другую сторону воткни на пин и читай его.
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение MIHAnik22 » 14 мар 2016, 23:53

ilalexey, то есть если я правильно понял, то диод излучая засветит фотоэлемент и на его ноге появится сигнал, так?
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение lorry » 14 мар 2016, 23:59

Судя по фотографии это оптический энкодер. В его состав входит обычная оптопара светодиод-фотодиод. Совершенно не понятно зачем вы пытаетесь светодиод питать от контроллера? Подключите светодиод через сопротивление 100Ом-1кОм к +5В. Фотодиод соедините так же через сопротивление 1кОм на +5В, общую точку сопротивление-фотодиод подключайте к нужному выводу МК, вывод настройте на ввод, и командой digitalRead() читайте состояние пина, только имейте ввиду, что импульсы будут инверсные. Но т.к. у вас энкодер, то в этом случае рекомендуется использовать программные прерывания, иначе имеется большая вероятность потерь импульсов.
Схема должна быть такой:
Безымянный.jpg
Аватара пользователя
lorry
 
Сообщения: 448
Зарегистрирован: 04 фев 2014, 13:53
Откуда: Комсомольск-на-Амуре
прог. языки: машинные коды
ФИО: Иван Иваныч

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение MIHAnik22 » 15 мар 2016, 00:26

lori, меня не правильно поняли) Я про светодиод говорил, про обычный. Не про тот что в энкодере, а про простой тестовый. Ну вот по схеме попробую соединить. А инверсные импульсы, это то есть с отрицательным знаком? Есть особенность в считывании импульсов такого типа?
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение lorry » 15 мар 2016, 00:40

Нет не с отрицательным, в вашем случае будет так: если светодиод освещает фотодиод, то считываться будет логический 0, если засветки нет то 1.
Аватара пользователя
lorry
 
Сообщения: 448
Зарегистрирован: 04 фев 2014, 13:53
Откуда: Комсомольск-на-Амуре
прог. языки: машинные коды
ФИО: Иван Иваныч

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение Scorpio » 15 мар 2016, 00:41

MIHAnik22 писал(а):попробовал сдлать пин как Input и подал на него HIGH

Пин остается входом, но при записи в него HIGH к нему подключается подтягивающий резистор (через него может гореть светодиод). При LOW он просто висит в воздухе.
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение MIHAnik22 » 15 мар 2016, 00:48

Scorpio, благодарю, теперь понятно!)

lori, все пойду пробовать)
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение lorry » 15 мар 2016, 01:11

MIHAnik22 писал(а):Scorpio, благодарю, теперь понятно!)

lori, все пойду пробовать)

Удачи!!! :D
Аватара пользователя
lorry
 
Сообщения: 448
Зарегистрирован: 04 фев 2014, 13:53
Откуда: Комсомольск-на-Амуре
прог. языки: машинные коды
ФИО: Иван Иваныч

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение ilalexey » 15 мар 2016, 11:02

..спасибо всем, ну а волку - кожура..
Всё, обиделся. Не буду больше подсказывать никому ничего
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: Как узнать, есть ли потребитель на пине у платы или нет?

Сообщение MIHAnik22 » 15 мар 2016, 11:07

Класс! все считал как хотел! вот загвоздка только в понятии направлении вращения диска с прорезями. Я знаю как можно определить направление вращение диска, но напряжение которое я считываю очень малое меньше 1 в аналоговом исчислении, можно ли как то усилить настолько слабый сигнал?

ilalexey, оп. Да лан, что обижатся то?) Ну тебе тоже благодарность)) За Желание)
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

След.

Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13