Датчик ХоллаPrint This Post

Автор DI HALT
Опубликовано 14 Фев 2010 
Рубрики: Начинающим
Метки: , , ,

Есть такой интересный эффект — если через квадратную проводящую пластину гнать постоянный ток, а саму пластину пронизать магнитным полем, чтобы линии индукции проходили через ее сечение, то летящие по пластине электроны отклоняются силой Лоуренса.

А раз так, то с одного края электронов будет больше чем с другой. Возникает разность потенциалов, то есть напряжение. И чем больше ток и сильней поле, тем большая разность будет. Это и есть эффект Холла.

Дальше дело за малым — берем источник стабильного тока, чем стабильней тем лучше, ведь от стабильности зависит точность показаний. Прогоняем постоянный ток по пластине, ловим да усиливаем разность потенциалов до осязаемых величин. В результате получаем отличную вещь — датчик магнитного поля, он же датчик Холла.

Например такой:

Моделей существует целая прорва. В чистом виде, правда, встречается редко. Обычно элемент Холла с чем нибудь да совмещен. Либо, как тут, с усилителем, либо с силовыми ключами, как в датчиках из компьютерных бесколлекторных вентиляторов — там он сразу же коммутирует обмотки, выполняя роль электронного коллектора. Правда на некоторых старых моделях вентиляторов можно обнаружить и целые микросборки из “чистого” датчика, усилителя и силовых ключей, но вот уже лет 5 мне такие не попадались.

Делал я тут один частный заказик недавно, вот там и применил эти козявки.

Подключение проще простого — подал питание, снял сигнал. Питание по даташиту написано двуполярное, но ничего не мешает подать и однополярное. Просто в этом случае ноль сигнала у нас будет не 0В а Vcc/2. У меня на Pinboard напряжение в магистрали питания около 4.8 вольт, поэтому на выходе датчика 2.4 вольта в подвешенном состоянии.

Теперь берем и подносим к нашему датчику магнитик. В зависимости от полярности стороны магнита, напруга либо обвалится в ноль, либо подскочит до максимума. Ну и, в зависимости от расстояния, может принимать промежуточные значения, линейно завися от силы магнитного поля.

Это все интересно, но что с того? Куда это можно применить?
А применений датчику можно придумать вагон и маленькую тележку. Например, бесконтактные концевые выключатели.

Причем, в отличии от герконов, датчики эти почти вечные — там нет ни единой движущейся части.

А если совместить датчик с магнитом и подсунуть ему шестеренку, что будет замыкать через себя магнитный поток, то можно легко получить датчик скорости вращения. Когда зубец будет ближе к датчику, то сопротивление магнитному потоку будет ниже, а значит и его сила будет больше. А на межзубцовых промежутках все наоборот. В результате, на выходе датчика будут импульсы сходные с формой зубов шестерни, а уж посчитать их не составит труда.

Или, например, надо нам замерить БОООЛЬШОЙ постоянный ток. Скажем идущий к драйверу двигателя. С малыми токами все ясно и так — ставим шунт и снимаем с него падение напряжения. С большими токами финт прокатит плохо — шунт будет лишней нагрузкой, сжирающей мощность, греющейся. Да и сделай его еще из подручных средств… А ведь можно сделать все куда проще. Заворачиваем провод в катушку, опоясываем магнитопроводом, а в разрез пихаем наш датчик. Причем необязательно делать много витков — если ток большой, да датчик чувствительный, то и одного-двух витков хватит (кстати, есть и неплохие промышленные датчики постоянного тока — LEM делает).

Ну и вот такой практический примерчик — на базе датчика SS495A сварганил простейший цифровой тахометр :)

Схему собрал на своей демоплате:

Получилась такая вот конструкция:

Включил моторчик, магнитик завертелся, а на выходе датчика Холла пошла вот такая вот картина:

Вообще я сам удивился насколько четкие и резкие фронты. Я думал будет подобие синуса. Ан нет, магнит оказался мощный (ниодимовый из лазерной головки CD-ROM’a) и видимо он сразу же зашкаливает наш датчик.

Дальше, на базе ядра диспетчера, описанного в не так давно, набросал по быстрому программку (только функциональная часть):

HAL.c

1
2
3
4
5
6
7
8
9
10
11
12
13
inline void InitAll(void)
{
//InitUSART
UBRRL = LO(bauddivider);
UBRRH = HI(bauddivider);
UCSRA = 0;
UCSRB = 1<<RXEN|1<<TXEN|0<<RXCIE|0<<TXCIE|0<<;UDRIE;
UCSRC = 1<<URSEL|1<<UCSZ0|1<<UCSZ1;
 
//Init Interrupts
MCUCR |= 1<<ISC00|1<<ISC01; 	// Конфигурируем прерывание по фронту
GICR |= 1<<INT0;		// Разрешаем прерывания
}

HAL.h
Там вообще много всего, в первую очередь всякие байты и выводы описаны, но нам интересен сейчас макрос:

1
#define SEND(X) do{buffer_index = 1; UDR = X; UCSRB|=(1<<UDRIE); }while(0)

Это макрос отправки данных из буффера на прерываниях. Макросы я рекомендую называть заглавными буквами — сразу будет видно, что это макрос, а не функция. А конструкция do{….;….;….;….; }while(0) позволяет запихать в один макрос дофига всяких функций, не опасаясь того, что эту конструкцию перекосит на каком-нибудь if-then-else. Заключенная в блок do{ }while(0) она выполнится как один оператор, а нулевое условие while(0) будет выброшено оптимизатором, так что оверхеда по коду тут не будет.

Ну и, напоследок, код отправки данных из буффера на прерываниях. Шлет в USART данные из буффера, игнорирую данные с кодом 0×00 - их генерит функция itoa когда значение меньше чем заданная разрядность.
GCC-RTOS.c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
ISR (USART_UDRE_vect)		// Прерывание по опустошению буффера УАПП
{
if (buffer[buffer_index]) UDR = buffer[buffer_index];  // Если текущее значение не 0х00 вывод
 
buffer_index ++;			// Увеличиваем индекс
 
if(buffer_index == buffer_MAX)  	// Вывели весь буффер? 
	{
	UCSRB &=~(1<<UDRIE);	// Запрещаем прерывание по опустошению - передача закончена
	}
}
 
 
void Catch(void)    // Задача подсчета и обработки данных. 
{
u16 RPM=0;
SetTimerTask(Catch,2000); 	// Время подсчета - 2с
 
buffer[7]=0;				// Зануляем знакоместа в буффере
buffer[8]=0;				// Чтобы там не было пустых мест
buffer[9]=0;				// Иначе будет гнать при снежении оборотов
 
RPM = Cycle*30;			// Вычисляем число оборотов в минуту
 
itoa(RPM,buffer+6,10);		// Перевеодим его в ASCII строку. Вписывая в наш буффер
 
SEND(buffer[0]);		// Запускаем передачу (макрос в файле HAL.h)
 
Cycle = 0;			// Обнуляем счетчик циклов
}

Сырки для этого примера. Не обращайте внимания на кучу мусора в коде. Это так, черновой набросок. Да и пример отправки данных на прерываниях я скоро опишу подробней.

А вот как это выглядело вживую:

Комментарии

86 комментариев на «Датчик Холла»


  1. Melted Metal 14 Фев 2010 11:06

    А где осциллограммы выхода датчика при включенном движке?

    DI HALT

    Ща видяха будет. Заливается.

    Melted Metal

    Да уж, как я мог подумать, что ты не приложишь видео)

    DI HALT

    Пока льется сделал и скриншот осциллограммки.

    Melted Metal

    Надеюсь, в видео обороты движка меняются?

    DI HALT

    Отож. Зырь.

    Melted Metal

    Крутняк =)


  2. Medved 14 Фев 2010 12:31

    у меня есть парочка. до сих пор не знаю куда их прикрутить :-)


  3. shura.luberetsky.ru 14 Фев 2010 15:43

    По-моему, у нас чаще говорят не “сила Лоуренса”, а “сила Лоренца”. Hendrik Antoon Lorentz - ну никакой не Лоуренс :)

    sumerkbogov

    А у меня бабушка говорила “ЛогарифмиЦеская линейка”. Бабушка профессор была, на всякий случай, если кто не понял.


  4. phil-sx.livejournal.com 14 Фев 2010 16:02

    Ди, а можеш написать статейку с реальным примером по индукционному датчику положения?
    Всмысле Linear Variable Differential Transformer. (незнаю как это по-русски в книжках пишеться)

    вот статейка: http://www.electronics-tutorials.ws/io/io_2.html (пролистать немного ниже).


  5. twilo 14 Фев 2010 16:14

    А как с помощью этой штуки мерять постоянный ток, скажем, от 0 до 25 А? или посоветуйте доступный промышленный датчик тока

    Germie

    Когда-то использовал интегральный датчик ACS754SCB-050 от ALLEGRO. Покури в их сторону.

    twilo

    Спасибо, но не то. Мне нужен датчик который можно легко одеть на провод и снять с него. сфера применения - автомобили.

    DI HALT

    Тебе сюда
    http://www.lem.com/ru/ru/content/view/13/690/


  6. smokie 14 Фев 2010 17:42

    >#define SEND(X) do{buffer_index = 1; UDR = X; UCSRB|=(1<<UDRIE); }while(0)

    А зачем здесь do/while? Если нужно выделить блок кода, то достаточно одних фигурных скобок. А блок do/while(0) для другого применяется - для быстрого выхода из множества вложенных условий по break. Типа замена exception handling.

    DI HALT

    Ну вот, например, есть у нас макрос

    SEND(X) оформленный как {;…;}

    Вписываем мы его в конструкцию

    if ( ) SEND(X);
    else
    bla();

    получаем при развертке

    if( ) {;..;..;} ;
    else
    bla();

    Видишь, возникла дополнительная ; который закрыла нам if. В результате логика порушилась.

    Да, можно макросы писать и на скобках, но тогда в коде нельзя после них ставить ;

    А по инерции поставить ; запросто. В результате будет бага которую хрен найдешь.

    smokie

    Так ведь оно так и не скомпилится, else будет сам по себе висеть - в этом месте компилятор покажет ошибку. Но в целом согласен - с ‘;’ лучше выглядит.

    DI HALT

    Она не скомпилится если у тебя там всего один if-else, а если целое дерево? Тогда этот else пристроися куда нибудь не туда. Вот тут то тебя белая лисичка за задницу и укусит.


  7. A_ndrej 14 Фев 2010 18:10

    А можете это же написать на ассемблере?
    Хотя бы основные моменты.

    _riko_

    Да тож так же , как и диодиком помигать ))
    делаешь ногу подцепления д.Холла на pull-up и снимаешь показания :)
    как только магнит “замкнёт” датчик, так появится низкий уровень на ноге, как низкий появился, снимаешь пинг с неё и выводишь лог. единицу (или ноль) на порт с светиком :)

    DI HALT

    Эмм… а в чем разница между Си и Ассемблером тут?

    Что на асме запихать байт в регистр, что на Си.


  8. Sniper 14 Фев 2010 20:00

    Осталось написать статью: где надыбать магнитики =)) и тогда тема: датчик холла + магнит будет раскрыта))

    Да, кстати, нужно снять видео, что будет, если магнит отодвинуть от датчика =) Уменьшится магнитный поток => мы должны увидеть что то типа синусоиды))

    DI HALT

    Из головок сидиромов. Там по две штуки в каждом. Из китайских наушников капелек.

    SWG

    В дохлых или ненужных винчестерах. Там в линейном двигателе привода головок есть от 1 до 4 (смотря какой винт) очень мощных магнитов, а еще для парковки головок при выключении - маленький прямоугольный или кубиком магнитик со стороной 2-4мм. Его очень удобно использовать со всякими датчиками.
    Еще в винтах в головках есть магниторезисторы с офигенной чувствительностью. Была мысля сделать на них компас, но больно уж они мелкие, а у меня уже глаза на те, что лет 15-20 назад…

    DI HALT

    Опа, а где они там расположены? И на что похожи?

    SWG

    Да вроде они тонкопленочные, в заднем зазоре головки. К каждой головке идет 4 конца, 2 - на запись, там все еще обмотка из одного или нескольких витков или слоев металлизации (в старых провод был), а 2 других - на магниторезистор для чтения. Но все мелкое, вместе с ферритовым магнитопроводом залито и заполировано. Когда-то читал, что при переходе с головок воспроизведения с обмотками на головки с магниторезисторами плотность записи сразу возросла в 3 раза из за меньших размеров и большей чувствительности головок с магниторезисторами. Это было после емкостей в 2-4 Гига. Сейчас все винты с магниторезисторами. Вот я и думаю, если они прекрасно считывают микронные домены, то чувствительность должна быть офигенная. Сейчас еще и на вертикальную запись перешли, домены еще мельче стали. Обычно на коромысле с головками, прямо на шлейфе, находится микросхема с усилителями, на 4 или 8 головок максимум. Реально стоят от 2 до 4. Можно попробовать к головке полюсные наконечники приделать, чтобы больше магнитного поля собрать и через головку пропустить. Чтобы ее магнитопровод меньше шунтировал, сошлифовать местами. Да уж больно все мелкое, и залито… Я из винтов обычно вытаскиваю магниты привода головок, парковочный магнитик, да подшипники привода головок и шпинделя. Уже с десяток списанных разобрал.

    Saniok

    в сидиромах ещё как правило магнитная шайба есть. В штуковине прижимающей диск сверху… Хотя она таки слабее :)

    shura.luberetsky.ru

    Из магнитных “кнопок” (продаются в магазинах канцтоваров), из китайских интернет-магазинов (там продают очень мощные неодимовые магниты - http://www.dealextreme.com/products.dx/category.1105).

    Sniper

    О, вот это действительно ценно =)) Спасибо!

    Skif

    Детский “магнитный конструктор” GeoMag - стальные шарики + пластмассовые палочки для соединения с двумя магнитами на концах. Минимальный набор (стоит копейки, семь, что-ли, “палочек”) дает нам 14 мелких, но достаточно сильных цилиндрических магнитов + кучку шариков (фетиш детства, раньше подшипники ломали!). У меня на трёх (реально 6) таких магнитах крепится кабина Р/У самолёта, пока в полёте ни разу не отваливалась :)

    Подсказка: к этим магнитам очень легко припаять проводки (только не стОит их перегревать) и подключаться, например, к батарейкам (и собирать сами батарейки в “кучку” для получения нужного напряжения).


  9. sTARcRAB 15 Фев 2010 2:45

    Добрый вечер. Очень актуальная для меня статья. Необходим мне токовый датчик на ток срабатывания 50ма. Максимальный ток в цепи до 3А. Сейчас решаю что выбрать в качестве датчика: датчик Холла или мотать токовое реле на основе геркона. Что посоветуете? С чем меньше заморочек?

    DI HALT

    Выше в комментах есть ссылка на фирму LEM у них, думаю, можно будет подобрать готовый.

    sTARcRAB

    посмотрел по номинальным токам. подходящих по параметрам не нашел.

    TemplarHJK

    Где-то у Analog Devices видел микросхему, кажется на старом форуме было обсуждение

    TemplarHJK

    P.S. У аллегро были тоже приличные датчики, вот ссылка http://www.allegromicro.com/en/Products/Categories/Sensors/index_expanded.asp

    sTARcRAB

    Спасибо.


  10. kkozyrev 15 Фев 2010 3:32

    интересная статья…. спасибо


  11. vren 15 Фев 2010 14:13

    слышал, что на датчиках холла можно собрать электронный компас. можете рассказать, как это делается?

    DI HALT

    Сильно сомневаюсь что чувствительности хватит.

    SWG

    Видел недавно статью на эту тему в Интернете. Там один иностранец попробовал сделать компас на 2 датчиках Холла в дифференциальном включении. Жалуется, что из за малой чувствительности получается погрешность направления на южный полюс порядка 15 градусов. Но у него датчики голые. Думаю, если сделать полюсные наконечники (типа стрелки компаса из пермаллоя, в середине разрезать и вставить датчик), чувствительность должна в несколько раз повыситься.
    Есть микросхемы - электронные компасы, 38$, но они мне недоступны, а заказывать по Интернету - слишком много мороки (для меня, по крайней мере).: http://www.mindsensors.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=52

    Skif

    Давно интересует тот же вопрос, но всё никак не соберусь попробовать. Навскидку удалось обнаружить статью (http://ams.allenpress.com/perlserv/?request=get-document&doi=10.1175%2FJTECH1860.1&ct=1) об использовании датчиков Холла SS495 в качестве своеобразного компаса на метеозонде. Вроде бы, в нашей деревне SS495 есть в наличии, но смогу их раздобыть не ранее чем через две недели. В аналоговой схемотехнике не особо силён, м.б. кто-нибудь из более сведущих подскажет по примерной схеме: 2xSS495 в качестве сенсоров, TL431 как ИОН, какой-нибудь операционник (что посоветуете? OP90, упомянутый в статье, найти не смогу), многооборотный подстроечник для настройки - взлетит?

    С уважением!

    DI HALT

    Чет в схему вкурить не могу.

    Если у него диф включение из двух, то почему он сразу не загнал их на вход одного ОУ (да хотя бы инструментальника). Опять же есть сомнения что это что то даст. В общем, сегодня вечерком наверное проверю теорию. В качестве диф усилка заюзаю осциллограф :)

    Skif

    Добрый вечер! Прошу прощения за то, что ввел в заблуждение - в схеме по ссылке датчик только один. Поставить два под углом 90° это уже моя идея. Будет интересно узнать результат эксперимента, т.к. сам смогу этим заняться не менее чем через две недели. Вот тут (http://letsmakerobots.com/node/12909) граждане тоже пытаются сделать компас из датчиков Холла; мнения участников разделились - у большинства не работает :) Но у метеорологов, вроде бы, что-то получилось.

    PS. Спасибо за easyelectronics - после многолетнего перерыва на программерство снова занялся радиогубительством! :)

    LINKS_234

    видел где-то в рунете обсуждение самодельной механической развёртки изображения на колёса авто. половину темы народ угадывал каким образом создаётся синхра. оказалось что человек применил магниторезистивный датчик холла и синхра была по магнитному полю Земли. датчик был немного специфичный (в плане информации и доставаемости), но простейший по внутренностям - резистивный мост , причём то ли 2 то ли 3 - обычные резисторы. как я понял по прочтённому синхронизация была достаточная для того, чтобы изображение не дрожало.

    DI HALT

    Бгы, нашли что обсуждать. Синхра тут самое простое ее можно сделать десятком разных способов один проще другого. А вот как питание на колесо подать это уже другой цимес.

    LINKS_234

    по-моему идея там была в том, чтобы отвязаться от колеса. схема была на колпаке с аккумами. и синхру как-то по-другому городить было не камильфо. посему автор и поставил резистивный датчик холла. а аккумы заряжать - колпаки снял и отнёс домой на зарядку. можно даже бесконтактную сделать и залить всю схему термоклеем, эпоксидкой или ещё чем.
    кстати я не представляю как ещё без серьёзного геморроя можно сделать синхру. особенно на переднем мосту.

    DI HALT

    А чем обычный магнит + холл не катит? Разместить все это дело с приемлемыми зазорами дело не хитрое.

    LINKS_234

    хотя бы потому, что в СНГ нормальных дорог нету + проще таскать на зарядку колпак, чем всё колесо :) делать на разъёмах не вариант. делать на колесе - также не вариант, т.к. проблемы с питанием.

    DI HALT

    Ну смотри, в диске же есть отверстия под колпаком? Из колпака за диск уходит отрог с датчиком и там “встречается” с магнитом.


  12. Melted Metal 15 Фев 2010 18:10

    А что будет, если поднести ДХ к сетевому трансу?


  13. _riko_ 15 Фев 2010 18:20

    “В чистом виде, правда, встречается редко…” а вот у нас в Иркутске - с точностью до наоборот! ))
    В чистом виде есть ( ДХК-5) ,а вот сколько искал сборки, так и не нашел ))

    DI HALT

    Расковыряй старый вентилятор :)

    _riko_

    я имел в виду в продаже ))

    Riniy

    1. В видеомагнитоофонах. На DRUM MOTOR (Мотор видеобарабана) и CAPSTAN (Мотор протяжки ленты)
    2. В флоппиках!

    Waso

    Вот что правда, то правда. ДКХ-0.5 за рупь пучок купить можно, а вот SS495 ни в какую
    Пришлось заказывать. Наш вирпильский люд их вместо резюков в джойстики втыкает. Вещь незаменимая. :)


  14. OneginForte 15 Фев 2010 20:22

    Я в своих поделках использую TLE4905L, с обвязкой из конденсатора на питание и резистора-подтяжки к плюсу.


  15. Demius 17 Фев 2010 13:34

    а можно попробовать на основе данного датчика сделать и энкодер.

    DI HALT

    А что пробовать? Элементарно же. Две шестерни со сдвигом в пол зуба и говтово.


  16. krokodilV 18 Фев 2010 4:01

    А я на датчике Холла тахометр для автомобильного двигателя сделал…..
    просто прилепил к катушке зажигания и ничего, срабатывает :) ….

    DI HALT

    О, любопытно. А куда прилепил?

    krokodilV

    сверху по центру, катушка типа “coil-on-plug” автомобиля Toyota Prius
    http://narod.ru/disk/18028877000/%D0%B4%D0%B0%D1%82%D1%87%D0%B8%D0%BA.JPG.html

    DI HALT

    Ага, а эта хрень с проводками и термоусадкой это датчик холла. Хм… надо посмотреть куда можно ее у себя присунуть.

    З.Ы.
    У тебя приус? Ы! А как с обслуживанием? Кто их у нас берется ремонтировать если чо?

    krokodilV

    Это не у меня Приус, это у нас на кафедре Приус, а я на нём делаю исследовательскую лабораторию…..
    Не знаю как у вас, а в Харькове есть станция занимающаяся обслуживанием и ремонтом Приусов….

    gmini

    Дык эта… http://hybrids.ru/repair.asp?k=1


  17. desssel 18 Фев 2010 11:59

    Можно ли в качестве датчика для МК использовать отечественный датчик ДХК-0.5А?

    DI HALT

    А смотря какое у него напряжение развить можно.


  18. R_ura 28 Фев 2010 20:23

    DI HALT, спасибо за интересный и полезный сайт. Все понятно изложено, а то книги - иупой перевод даташитов. Хрен что поймешь.
    Читая про датчики Холла возник вопрос. А нет ли готовых датчиков в подобном корпусном исполнении, реагирующих не на магнитное поле, а на наличие металла??

    DI HALT

    Скорей всего нет, не встречал. Хотя могут быть, правда там должна быть куда более сложная структура. Т.е. генератор, какая то индуктивность. В общем, металлоискатель в миниатюре :)

    R_ura

    Я тоже не могу найти, но , думаю, должны быть. Все же с магнитами довольно неудобно. А готовые индуктивные датчики либо фирменные дорогие, либо наши достаточно громоздкие. В любом случае спасибо за ответ.

    demiurg1978

    Наши конторы умеют делать миниатюрные датчики. Например “Теко”, Новосибирск. Это не реклама.

    DI HALT

    Теко она же вроде Челябинская?

    demiurg1978

    эээ,точно.В общем их дилеры есть у нас.

    R_ura

    А в теме по компаратору МК не отвечаете??


  19. EPOX 03 марта 2010 20:05

    за эту статью отдельное спасибо


  20. sumerkbogov 28 марта 2010 16:33

    >В зависимости от полярности стороны магнита, напруга либо обвалится в ноль, либо подскочит до максимума. Ну и, в зависимости от расстояния, может принимать промежуточные значения, линейно завися от силы магнитного поля.

    Не линейно, потому что ведь поле убывает пропорционально квадрату расстаяния. Гиперболически?…

    DI HALT

    Ну поле может и нелинейно, но речь то не о поле/расстоянии, а поле на входе/напряжении на выходе. И тут у него характеристика линейная.


  21. demiurg1978 22 Апр 2010 13:43

    Был у меня один случай. Сломался вакуумный загрузчик Shini (производство изделий из пластмасс). Работает он следующим образом. Его устанавиливают на приемник сыпучего сырья (гранулы, дробленная отработка) термопластавтоматов и экструдеров. Вакуумный шланг в емкость с сырьем. Снизу загрузчика находится заслонка, которая под воздействием вакуума захлопывается, если сырья достаточно, оно не дает захлопнуться заслонке. На самой заслонке находится магнит. Снаружи стоит датчик, который следит за наличием сырья, если заслонка открыта (есть сырье), загрузчик ждет, как только заслонка закроется, это означает, что нужно засосать сырье. Загрузчик работает по таймеру, время засасывания сырья, и время ожидания. Когдя я отремонтировал загрузчик, сделал ошибку при подключении датчика. И он благополучно сгорел. Сижу, матерюсь. Думаю что делать. В общем, позвонил заказчику запудрил голову, отпедалился, что и датчик по ходу сгорел. Стал звонить по конторам. И сел на задницу. Оказывается, что магнитные датчики положения в принципе существуют, но в городе их нет. И в Москве их нет. Стал репу чесать. Сначала разобрал датчик. И что вы думаете, там оказался простой геркон. Проехался по магазинам, нашел советские герконы. Проверил, магнита датчика не хватило для замыкания советского датчика. Тут я вспомнил, что читал эту статью, и существуют интегральные датчики холла. Приехал в магазин, там мне сказали, что у них есть датчики с цифровым и аналоговым выходом. Выбрал с цифровым выходом, напряжение питание от 3 до 30 вольт. Еду, довольный, домой, подключаю к макетной плате, и благополучно въезжаю в пень. Выяснилось, что датчик меняет свое состояние только при перемене полярности магнитного поля. А заслонка так двигается, что полярность магнитного поля не меняется. Пришлось ехать за датчиком с аналоговым выходом. Подключил датчик, чтобы понять как он работает. Напряжение питание этого датчика от 3 до 6 вольт. Подцепляю вольтметр, вольтметр на выходе датчика показывает половину напряжения питания. Подношу магнит одной стороной, напряжение начало уменьшаться, поднес магнит другой стороной, напряжение увеличилось. Ну думаю, ага! Быстренько накидывыю схемку с триггером шмидта-хрен вам нате, из-под кровати. Хрен, по колено хрен… Не получилось. Напряжение изменяется незначительно, потому триггер шмидта и не пошел, вполне возможно, что что-то не расчитал. Плюнул, время-то поджимает. Накидал схему с компаратором. Урря! Все получилось. Собрал вакуумный загрузчик, работает, сволочь! Отдал его заказчику, деньгу за ремонт забрал. Потом задумался, я ведь по сути разработал магнитный датчик положения. Ведь бывают ситуации, когда нужен датчик положения, изолированный от некоей среды. Вода, продукты нефтепереработки. Так что схемку сохранил. На будущее.

    DI HALT

    Не проще ли было зайти в магазины торгующие охранными товарами и прикупить там герконовые датчики. Они чувствительные как незнаю что. Либо выдрать из герконовых реле советских. Тоже хорошие.

    DI HALT

    Или магнит датчика усилить неодимовым.


  22. demiurg1978 22 Апр 2010 13:58

    Согласен, это было бы намного проще. Мой принцип в работе по возможности, минимальные вмешательства. Речи нет лопухнулся, датчик спалил. Меня время поджимало, это раз, второе, пробовать варианты, ездить по городу в поисках герконов, магнитов. Про охранные компоненты как-то забыл, хотя и работал монтажником ОПС. Но самое главное, как-то была ситуация, нужно было сделать изолированный от некоей среды датчик положения. Так что даже и лучше. Заказчик не жаловался. Был как-то у них, работает. А там режим работы предприятия круглосуточный.


  23. dundich 05 июня 2010 1:41

    Отличная статья! Как раз искал информацию и полезные советы о датчиках на эффекте Холла. А можете посоветовать, как можно завести информацию от двух датчиков на один аналоговый вход АЦП МК? или есть ли AVR c двуми аналоговыми входами?

    DI HALT

    У АВР вообще то около 8 аналоговых входов АЦП,

    dundich

    Извините, я видимо где-то что-то недопонял. я думал, что вход AVCC - это аналоговый вход МК. Посмотрел даташиты на ATMega16, ATMega8, ATMega128 и AT90CAN32/64, там только по одной ножке с названием AVCC. Я немного озадачен, плиз, помогите разобраться!

    DI HALT

    AVCC это вход аналогового питания. Обычно туда подают +5В через дроссель. Ну и кондер еще на землю. Запитывать надо в любом случае.

    AREF это либо вход опорного напряжения, либо выход внутренней опоры. Обычно опорное напряжение берут изнутри (либо с AVCC) и его через кондер просто на землю. Аналоговые входы это выводы ADC0…8 вот ими можно мерять напряжение. Не одновременно, но по очереди, меняя в регистре ADMUX номер вывода на котором меряем.

    dundich

    Спасибо, что протерли мне глаза!!!!!А то я только начинаю постигать эту “науку”. теперь все стало на свои места.

Оставьте свой отзыв

Вы должны войти, чтобы оставлять комментарии.


Материалы сайта являются авторскими. Копирование и публикация материалов без активной ссылки на первоисточник запрещено.

Реклама: