Приветствую участников форума. Возникла проблема с подключение датчика Холла SS49E при питании его от 3.3 вольта и ниже. Суть проблемы. Датчик подключен через дифференциальный усилитель на ОУ LM258 ко входу AIN1 аналогового компаратора Atmega 328p, вход AIN0 подключен к внутреннему ИОН на 1.1 вольта. Разрешены прерывания по заднему фронту, когда напряжение на AIN1 превышает опорное на AIN0, в них ведется подсчет количества поступающих импульсов для определения скорости вращения оси с магнитом. Данные передаются в монитор серийного порта. Теперь собственно суть проблемы. Схема генерит какие-то нереальные цифры. Есть подозрение, что это из-за дребезга самого датчика. Или же ошибка в коде. Пожалуйста, помогите разобраться. п.с. Подключить выход дифф.усилителя напрямую ко входу внешнего прерывания INT0 или INT1 не могу, так как наибольшее напряжение на выходе усилителя, которое получается при питании ОУ от батареи CR2032 что-то около 1.6 вольта, чего явно не хватает для логической 1 (0.6 от Vcc по даташиту). Возможно, дело в том, что ОУ устаревший и к категории rail-to-rail не относится и проблема в этом, но уверенности нет. Еще есть мнение, что у компаратора отсутствует петля Гистерезиса и шумы от датчика приводят к частой генерации прерываний. Схема подключения датчика и код прилагаются. Спасибо!
У тебя ж усилитель как компаратор работает из-за высокого коэффициента усиления. Тестером не смотрел, что творится на его выходе при медленном вращении магнита? Магнит полюсами правильно сориентирован? Зы на питании от батарейки я бы смотрел в сторону геркона.
В этой схеме ОУ работает как дифференциальный усилитель, который усиливает разницу между инвертирующим и неинвертирующим входами. Он тут нужен, что бы получить лог 0 и лог 1 для генерации прерывания. Беда в том, что 1.5 вольта мало для лог 1 и МК просто не видит единицы, поэтому приходится громоздить прерывание по компаратору. При отсутствии магнита на выходе ОУ 0.08 вольта, при поднесенном магните 1.5 - 1.6 вольта. За наводку на геркон спасибо. Один только вопрос - насколько чувствительные они бывают и какой лучше выбрать для работы от 3,3 вольта?
У тебя коэффициент усиления десятка или около того. К тому же схема является УПТ со всеми вытекающими. Из ОУ можно сделать настоящий компаратор и не парится с мк. Что-то ты не то говоришь. У датчика холла на выходе половина напряжения питания. В зависимости от поднесённого полюса, у него напряжение изменяется в сторону питания либо земли пропорционально приложенной индукции. У мк раздел 0 и 1 также половина питания. Поэтому задача немного оттянуть напряжение у датчика от середины и смело подавать на вход мк.
Делать из ОУ компаратор не самая лучшая идея, особенно на таком, как у меня на схеме. Что касается реакции Холла на магнит, то тут ты прав, как раз для того, что бы получить околонуля и размах, применяется ОУ в дифференциальном включении, повнимательнее на схему посмотри. И у МК лог 1 это не полпитания, а от 0.6 Vcc в зависимости от рабочего напряжения на МК, и чем напряжение ниже, тем выше должен быть порог лог 1. Если тягать напряжение, то как? Было бы у меня +5 вольт, я бы не парился - подал бы выход датчика прямо на вход INT0 и получал бы искомые прерывания, но у меня нет возможности работать с таким напряжением.
0.6 - это гарантированный уровень срабатывания. А вообще, т.к. схемотехника на КМОП, то ровно посередине. Вариантов море: геркон (самое идеальное для 2032 батаерйки или какая у тебя там. Датчик холла со своими 5 мА высосет её в момент). У МК выключить вообще всё и в сон. Перед этим подписаться на прерывание по фронту на пине. На аттиньке со своей батарейкой работать будешь долго. цифровой датчик холла вместо аналогового. Но надо смотреть индукцию - чтоб магнит вытянул. Выкинуть всю ООС на усилке и превратить его в настоящий компаратор. Либо навернуть цепь смещения, чтобы получить триггер шмидта. В сети схемы есть. Вместо ОУ поставить специализированный компаратор. Ну и заюзать АЦП, в конце концов. Но первый вариант это маст хэв. Во всех беспроводных счетчиках используется именно он. Если это вода, газ, то батарейка быстрее на саморазряде сдохнет. Через 10 лет.
Заходишь в любой лабаз ( в местном почему-то нет) и выбираешь любой подходящий по габаритам. Подключать просто - включаешь пин на вход с подтяжкой, а геркон вторым концом на землю. Единственный нюанс - необходимо давить дребезг контактов. Там просто - взводишь таймер на пару миллисекунд по приходу фронта и в течение этого времени выключаешь прерывания. Таймер оттикал-прерывание включил. Да, обязательно покрути магнитом и герконом, чтобы найти максимальное расстояние срабатывания геркона.
Можно и без отключений прерываний. Создать кольцевой буфер глубиной два (можно больше), сравнивать каждое прерывание состояние текущее с бывшими, если фронт есть - обработать, иначе - игнорировать.
Код можете показать для примера? У меня есть подозрение, что в моем коде нужно добавить активацию таймера-счетчика по прерыванию, возможно это поможет от бредогенерации в терминале.
Ну в моем девайсе все малость посложнее, чем кажется. Это метеостанция на датчике BMP180 с возможностью кое-какую математику дергать (рассчитывать параметры воздуха и на их основе некоторые данные). Она в рабочем режиме крутит энергосберегающий режим idle (потребление вместе с ОЛЕД-экраном 14 мА), а через 15 секунд простоя сохраняет настройки в ЕЕПРОМ и переходит в спящий режим powerdown с побудкой по внешнему прерыванию на пине INT0 (это с десяток микроампер). Так же в спячку отправляется и контроллер ОЛЕДа. CR2032 вполне хватает, хотя у нее сильная зависисмость рабочего напряжения от ее температуры. Можно опционально некоторые регистры подергать, что бы еще меньше потребление сделать. Посмотрим... Теперь вот пытаюсь добавить ветромер на основе раскуроченного китайского анемометра, в котором измерения были бы реализованы в виде отдельной функции, при этом питание на датчик Холла и на усилительный ОУ подавалось бы только на время входа в эту функцию. Если здесь будет "потерплена полная фитяска", то ветромер попробую сделать на германиевых диодах. Hot-wire так называемый. И так же включаемый только на время измерений. Батарейки должно хватить. А если не хватит, то есть CR2450 как вариант, но у нее та же болячка с зависимостью напряжения от тепературы.
А, ну я понял. Утром встал, окно кнопка нажал, да? Передатчика нет? У меня с nrf24, каждые 10 секунд посылка (планировалось 10 минут). Батарея CR123 в -15 свои 3.2 держала.