Комментарии 24
Откуда 2 Вт на резисторе взялись?
В действительности на этом резисторе выделяется 0,5 Вт. Но если поставить в устройство резистор именно с такой максимальной рассеиваемой мощностью, резистор будет работать на пределе. Из-за малой площади поверхности и, как следствие, плохой теплоотдачи в воздух он будет сильно нагреваться. Сгореть он не сгорит, но может случайно обжечь вам пальцы. Резистор на максимальную мощность 2 Вт по размерам очень большой, теплоотдача в воздух у него прекрасная, поэтому и греется он в этом устройстве не слишком сильно. На ощупь он даже не горячий, а тёплый. Только и всего. )
Кажется, одна из "гадостей" это pnp транзистор вместо, например, эмиттерного повторителя на npn. Я не могу в полной мере объяснить что делает эта схема приёмника, но pnp настораживает. Мне кажется, что у вас на схеме приёмника - усилитель мощности, а может быть нужно взять более популярный npn и получить усилитель тока? Возможно, R2 подобран таким чтобы гадкий УМ не выдавал чрезмерно большое напряжение, неужели фотодиод выдающий слабый сигнал нуждается в ограничителе тока?
Лучше увеличить резистор R1 в полтора раза, а если использовать случайный светодиод, то в 4 раза. Работать будет, для экспериментов хватит.
интересный у вас фильтр дребезга
и лучше было бы посадить на внешнее прерывание выход датчика. фильтр дребезга нормальный тоже был бы уместен.
Здесь описывается очень простой (возможно, самый простой в мире) самодельный однолучевой горизонтальный инфракрасный счётчик (людей) на Arduino. Его сенсорная система содержит лишь инфракрасный светодиод, фотодиод, биполярный транзистор и три резистора.
Можно еще проще.
Если используете микроконтроллер, то транзистор и один(два или даже три) резистора лишние.
Наберите скетч с картинки, буква за буквой.
Э.. зачем, если есть OCR? ;) Набирание буков руками не учит ничему, только время занимает.
ЗЫ а зачем volatile?
ЗЗЫ против насилия над переменной в стиле Therac ничего не имею.
signal_flag++ должна быть атомарна или какой-нибудь другой способ синхронизации
Что-то сомнительный какой-то скетч!
После выполнения signal_flag++ значение этой переменной станет равно 2. И больше программа не будет делать ничего, так как никогда более не выполнится условие ни в цикле loop, ни в обработчике прерывания.
Я не прав?
В схеме - одна явная ошибка:
неверная полярность фотодиода.
В тексте - фантастическое допущение
об отсутствии помех при передаче сигнала от считывателя на Ардуино на дистанции 5 метров.
Не говоря уже о подверженности таких простейших схемы и программы
посторонним засветкам приёмника.
Спасибо.. а вы уверены, что у вас фотодиод на схеме в базе биполярника верно изображон?..
Самая большая "гадость" это такая реализация идеи, которая совершенно не соответствует самой идее. Вернее там будет столько ограничений, что весь смысл теряется.
Например:
Сама идея - "счетчик людей"
Каких людей? Если я выйду в соседнюю комнату мимо "аппарата" и вернусь, я уже буду "двумя людями"? Или если мы с другом Васей, толкаясь помчимся на обед, мы станем "одним людём"? и т.д. Дьявол кроется в мелочах, и "простейшие" решения становятся бесполезны. С таким же успехом можно положить кнопку на стол и следить, чтобы каждый проходящий обязательно нажимал ее один раз и чтобы не толпились. Это будет еще более простейший "счетчик людей".
Скрипт не прилагаю, подойдет и старый. ))
Открываем документацию на светодиод, раздел absolute maximum ratings: предельный долговременный ток - 100мА. При 130 его надёжную работу никто не гарантирует.
Ох пипец пипец. Сколько же ложных срабатываний эта схема словит?!... Не подсчитать. А если какой-нибудь приколист ПДУ от какого-нибудь телека притащит, то вообще хана?
Вообще, чтоб такое работало, надо чтоб передатчик не просто постоянно был включен, а передавал хоть какой-то сигнал(010111010...), чтоб микроконтроллер срабатывал только тогда, когда увидит "правильную" последовательность импульсов.
В вашем случае - на уровне совсем начинающего радиолюбителя.
на уровне совсем начинающего радиолюбителя.
Совсем начинающий возьмёт в том же магазине готовый датчик, в симпатичном корпусе и с микроконтроллером внутри ;) Городить датчик из рассыпухи - отдельное развлечение, требующее сначала прочитать пару глав из Хоровица и Хилла. Ну, или соединять в каком-то порядке какие то детали, и молиться чтобы белый дым не вышел. А если начал читать "Искусство" - это уже не начинающий ;)
Обычно триггер Шмитта (для гистерезиса) в таких схемах должен присутствовать.. И частотное разделение канала приёма-передачи.. Чтобы исключить ложные срабатывания..
Простейший инфракрасный счётчик на Arduino. С мелкими гадостями