Avtoargon.ru

АвтоАргон
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Обработка сигналов энкодеров в Arduino

Обработка сигналов энкодеров в Arduino

Методист по олимпиадной робототехнике Университета Иннополис Алексей Овсянников рассказывает, как обработывать сигналы энкодеров двигателей робота в Arduino.

Множество команд используют для создания робота широко распространенный набор Lego Mindstorms EV3 или аналогичные (VEX и подобные). Их особенность в использовании датчиков и приводов всего нескольких видов, строго определенных производителем. Контроллеры получают информацию о повороте вала мотора с точностью до градуса, могут определить текущую скорость вращения мотора или синхронизировать их (замедлить любой мотор при замедление другого и т.д.) буквально одной командой.

Олимпиада Innopolis Open in Robotics не ограничивает участников в выборе оборудования (кроме очевидного запрета на использование готовых, фабричной сборки, роботов в некоторых номинациях). Вопрос лишь в том, как использовать всю широту ассортимента китайских магазинов.

Алгоритмы синхронизации моторов хорошо описаны в пособии «Управление моторами тележки с контроллером Трик на JavaScript«. Олег Киселев, автор пособия, описывает алгоритмы, которые можно перенести на любую другую платформу. Но и в этих примерах обращения к датчикам оборотов — энкодерам — происходит через готовые команды el.reset(), er.read() и подобные. Если же использовать в качестве контроллера робота Arduino, ESP- или STM-платы, то подобные команды придется реализовывать самостоятельно.

Очевидно, что для решения задач с точными проездами и поворотами (или перемещениями звеньев робота), необходимо использовать моторы с датчиком оборотов — энкодером. Он даст обратную связь, покажет, достаточно или недостаточно повернулся вал мотора. Такие датчики имеют различную точность показаний и могут устанавливаться по-разному.

Рассмотрим принцип действия энкодера. Чаще всего в простых дешевых системах используются квадратурные инкрементные энкодеры. Эти страшные слова означают, что они выдают прямоугольные импульсы (резко, а не плавно, возникающий и пропадающий сигнал) и, посчитав эти импульсы, можно понять, насколько провернулся мотор. Какого-то определенного начального положения, начала отсчета, у энкодера нет. Подсчет потребуется реализовывать в программе контроллера. Проще всего объяснить работу оптического энкодера, который содержит диск-крыльчатку с прозрачными и непрозрачными областями (реже — с отражающими и не отражающими областями), источник и приемники оптического излучения.

Оптический сигнал проходит через «окна» в диске и попадает на фотоприемники, которые выдают сигнал. Если свет не проходит, то сигнала нет. Чем быстрее вращается диск, тем короче становятся импульсы. Таким образом измеряется скорость вращения. А как определить направление? Для этого ставят два приемника, таким образом, чтобы один из них открывался в тот момент, когда второй «видит» как раз середину окна (показывает середину импульса).

Обратите внимание, что при вращении диска по часовой стрелке сперва «открывается» приемник А — импульс на нем появляется раньше, чем на приемнике В. При вращении против часовой стрелки сигнал появляется сперва на приемнике B, потом на А. Отслеживание и сравнение сигналов позволяет понять направление вращения диска и вала, к которому он закреплен.

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

Еще раз присмотримся к сигналам, приходящим с приемников A и В: за полный период (цикл, который повторяется при отслеживании одного «окна» на диске) есть четыре состояния выходов. Можно отслеживать их все и увеличить точность измерений или отслеживать только один выход (А или В), а по второму определять направление. Какого только колхоза в программах, отслеживающих энкодеры, я ни встречал. Кто-то пытается ловить код единицами и нулями, которые обозначены на рисунке, кто-то делает пятиэтажные опросы. Но об этом поговорим позже, возможно даже, не в этой статье.

Возьмем для примера два распространенных мотора: Pololu 25mm metal gearmotor и TETRIX MAX DC Motor. Оба они являются мотор-редукторами, что означает совмещение электромотора и редуктора в одном устройстве. Электромотор вращается очень быстро, но слабо, а редуктор увеличивает усилие, снижая скорость вращения. В итоге на выходном валу мотор-редуктора мы получаем меньшую частоту вращения, но большее усилие. Pololu позволяет выбрать один из нескольких вариантов с разными редукторами. То есть, сам мотор может оставаться тем же самым, а меняя редуктор, мы можем получить разные характеристики на выходном валу.

Пока что лучше перейдем к энкодеру TETRIX DC Motor:

Он устанавливается на выходном валу мотор-редуктора. На вал крепится диск с рисками (отражающими и не отражающими областями). Таких рисок аж 1440 на диске, то есть за один оборот вала энкодер может насчитать 1440 импульсов на одном выходе или в четыре раза больше состояний. Точность измерений 0,25 градуса (4 импульса на 1 градус) или 0,0625 градуса (16 состояний на 1 градус). Внушительно!

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

Теперь посмотрим на мотор-редуктор Pololu с энкодером:

На рисунке я выдели цветами:

Красный — выходной вал мотор-редуктора

В случае мотора Pololu и распространенных моделей 25GA-370 энкодер вешается с обратной стороны электромотора на выходящий вал. Энкодер считает обороты не самого мотор-редуктора, а только мотора. Зная передаточное число редуктора можно рассчитать угол поворота выходного вала относительно показаний энкодера.

Подобный подход имеет важный минус, кроме очевидной необходимости проводить дополнительные расчеты, а именно — наличие погрешности измерений из-за зазоров и упругих деформациях в редукторе. Выходной вал может повернуться на долю градуса при неподвижном вале мотора. Но в большинстве случае подобные погрешности не превышают одного градуса, а проявляются при резких сменах направления вращения. А простота изготовления диска всего с 10-20 оптическими окнами или магнитными областями значительно удешевляет конструкцию. Моторы серии 25GA-370 стоят по 900 рублей вместе с энкодерами, фирменный мотор Pololu с энкодером обойдется примерно в 3000 рублей.

Посчитаем, какая точность измерений у энкодеров, расположенных на валу мотора, а не выходном валу мотор-редуктора. Для этого обратимся к сравнительной таблице моторов Pololu. Ограничимся какой-нибудь одной серией, например, 12В medium power:

Мотор-редуктор с передаточным отношением 75:1 вращает выходным валом со скоростью 100 оборотов в минуту, а при передаточном отношении 172:1 выходной вал делает 43 оборота за минуту. Просматривая страницы каждого мотора можно заметить, что реально передаточные отношения немного отличаются (74,83 и 171,79 для указанных ранее).

Посчитаем, сколько импульсов энкодер выдает за один оборот выходного вала. За один оборот магнитного диска (то есть, вала мотора) энкодер Pololu выдает по 12 импульсов на каждом выходе, энкодер моторов серии 25GA-370 по 11 импульсов. За один оборот выходного вала вал мотора делает количество оборотов, равное передаточному отношению редуктора. Для моторов Pololu выбранной серии — от 1 до 227. Для моторов серии 25GA-370 — от 4,4 до 500. Получим следующие значения (в таблицу подставлены точные значения передаточных отношений мотор-редукторов Pololu):

Чем меньше скорость вращения выходного вала, тем точнее измерения энкодера. Для наиболее ходовых и применимых в мобильных платформах моделях на 70-170 об/мин (выделены зеленым) даже простой подсчет импульсов на одном выходе энкодера дает точность менее 1 градуса. Меньше, чем 1440 импульсов и 5760 состояний энкодера TETRIX, но сопоставимо с моторами Lego.

Итоговые формулу, связывающие сигналы энкодера с градусами поворота выходного вала будут следующие:

φ — угол поворота выходного вала (в градусах);

n — «тики», сигналы энкодера;

i — передаточное отношение редуктора;

IPR — (impulse per rotation) кол-во импульсов энкодера на 1 оборот диска (может быть как 12 импульсов, так и 48 состояний, в зависимости от того, что отслеживается в программе).

Теперь посчитаем, как часто приходят сигналы с датчика. Умножив частоту вращения выходного вала на передаточное отношение можно получить скорость вращения электромотора. Для всех моторов Pololu она составляет примерно 7500-7800 оборотов в минуту. Фирма Pololu указывает частоту вращения холостого хода (мотора без нагрузки), но сам редуктор может выступать некоторой нагрузкой, поэтому частота вращения и отличается. Так как самая быстрая частота вращения как раз на холостом ходу, а под нагрузкой мотор будет замедляться, то как максимально возможную принимаем именно ее.

Читать еще:  Автомобиль волга с двигателем крайслер техническая характеристика автомобиля и двигателя

Для популярной серии моторов 25GA, взяв за основу таблицу с сайта DVRobot.ru, можно вычислить скорость вращения мотора примерно как 5950-6000 оборотов в минуту.

Округлим скорости вращения в большую сторону и возьмем 7800 об/мин для Pololu 12V medium power и 6000 об/мин для 25GA-370. Обе серии широко распространены и подходят для подключения через драйвера на основе L298P или L298N.

Итак, диск энкодера делает по 7800 или 6000 оборотов за минуту (обозначим частоту вращения символом ω). Энкодер двигателей Pololu выдает по 12 импульсов (IPR=12) на каждом выходе за один оборот. Итого:

Если отслеживать все четыре варианта сигналов на энкодере, то получим 374 400 состояний за одну минуту.

Энкодер моторов 25GA-370 выдает по 11 импульсов на каждый выход за один оборот. Для него получаем

Или 264 000 состояний за минуту.

Делим эти огромные числа на 60 и получаем кол-во импульсов и состояний за секунду. Вычисляем период одного импульса и состояния (время, за которое они сменяются).

У моторов Pololu на холостом ходу каждый новый импульс приходит раз в 641 микросекунду, у 25GA-370 раз в 909 микросекунд. Необходимо, чтобы наш управляющий контроллер успевал фиксировать эти импульсы. Стандартная плата Arduino UNO работает на частоте 16 МГц, то есть, делает 16 млн тактов в секунду. Один такт занимает 0,0625 мкс. Контроллеры на базе STM или ESP работают на больших частотах, их такты гораздо меньше. Желтым в таблице обозначены количества тактов, которые успевает сделать Arduino UNO за время смены одного состояния или прихода одного импульса. Может показаться, что даже 2564 тактов на считывание состояния энкодера Pololu будет более чем достаточно, но вот тут и начинает проявляться «колхоз» в программной обработке показаний датчиков. К сожалению, та же плата Arduino UNO не умеет выполнять действия в параллельных потоках, только в основном цикле. Достаточно нагрузить его сложными вычислениями дробных чисел или считыванием аналоговых датчиков (одни из самых долгих операций; паузы командой delay и работу с интерфейсом UART-Serial оставляем за скобками, они вне конкуренции) и каждая его итерации начнет занимать по несколько тысяч тактов. Считывание показаний в этом датчике неизбежно приведет к пропуску тактов. Выход из этой сложной ситуации кроется в использовании прерываний. Это специальные подпрограммы, которые выполняются при наступлении определенных событий. Например, их можно настроить на появление сигнала на пине. То есть, когда приходит импульс от энкодера, Arduino прерывает основной цикл программы, выполняет небольшой кусочек кода и возвращается в основной цикл в то же самое место, где прервалось выполнение. С точки зрения основной программы, ничего и не произошло. Важно понимать, что вызываемая по прерыванию подпрограмма должна быть как можно меньше и выполняться как можно быстрее, чтобы надолго не прерывать основную программу. Иначе можно получить ситуацию накопления прерываний — пока обрабатывается одно прерывание, происходит следующее событие и основная программа просто не успевает выполняться.

У платы Arduino UNO внешние прерывания можно повесить только на два пина: 2 и 3. Так как управлять хочется двумя моторами, получаем всего по одному прерыванию на мотор. Следовательно, будем отслеживать появление сигналов на одном выходе энкодера, а второй выход покажет направление вращения. Работа с прерываниями сводится к следующим шагам:

1. Необходимо написать подпрограммы, которые будут вызываться. Они обязательно должны быть void (не возвращать никаких значений и без параметров):

Попав в подпрограмму я узнаю, какой сигнал на втором выходе энкодера и, в зависимости от результата, увеличиваю или уменьшаю счетчик encA / encB. Обратите внимание, что эти счетчики должны быть самого вместительного типа, у меня это long, так как обычный int заполнится за минуту-две непрерывного движения.

Присоединить прерывание, то есть включить его. Делается это командой attachInterrupt() со следующими параметрами:

attachInterrupt(digitalPinToInterrupt(pin), ISR, mode)

pin — пин, к которому привязывается прерывание (для Arduino UNO это пины 2 и 3, для других плат смотрите описание команды),

ISR — имя вызываемой подпрограммы,

mode — режим срабатывания, бывает LOW (срабатывает пока 0 на пине), CHANGE (срабатывает при любом изменении цифрового сигнала на пине), RISING (срабатывает при изменении сигнала с 0 на 1 на пине), FALLING (срабатывает при изменении сигнала с 1 на 0 на пине). В нашем случае логичнее использовать RISING.

Итоговая программа у меня получилась такой:

Неважно, что команды Serial.print() в основном цикле выполняются очень медленно, при поступлении сигналов от энкодеров они будут прерываться. Пока что программа просто выводит текущие показания энкодеров по UART’у, но используя формулы из статьи можно вычислять и угол поворота выходного вала. Попробуйте сами написать эти вычисления с учетом параметров своего мотор-редуктора и датчика.

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

Опыт изучения Arduino. Подключение шагового двигателя. Часть аппаратная.

Идея подключить шаговый двигатель (ШД) к ардуино и заставить его работать появилась у меня достаточно спонтанно, когда я случайно купил два нерабочих DVD-RW привода за 100 р. на Юноне. После того как один из приводов был раскурочен, в руках у меня оказался вот такой шаговый двигатель.

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

Покурив интернеты стало ясно, что просто подав питание на его обмотки, многого от него добиться не получится. Минимум что нужно, чтобы заставить ШД хоть как-то функционировать — это плата управления и источник питания. Забегая немного вперед отмечу, что источников питания понадобится два: для питания логической части и АЦП (3-5 В) и для питания силовой части (8-35 В). Кстати, плата очень боится пониженного напряжения в цепях питания двигателя. Я сначала подал 6 В. Пока разобрался в чем дело, спалил две платы. Данные приведены для платы управления на базе распространенного чипа 4988. Вот её схема подключения:

Тут ещё одно замечание. Выводов «в воздухе» быть не должно — все выводы должны быть подключены. Они имеют очень большую чувствительность к помехам.
Как видно на схеме, у двигателя две обмотки, чтобы подключить его к плате, надо определить какой вывод к какой обмотке относится. Я напаял 4 разноцветных провода поверх заводского шлейфа.

Делать нужно именно так. Сам шлейф можно обрезать или просто заизолировать, но отпаивать от выводов обмоток нельзя — выводы провалятся внутрь двигателя и он придёт в негодность.
Когда провода напаяны, приступаю к определению принадлежности выводов к той или иной обмотке. Проще всего это сделать мультиметром в режиме омметра.

В моем случае синий и зеленый провод это выводы одной обмотки, а оранжевый и белый — другой. Где начало и конец обмотки непринципиально — если двигатель пойдёт не в ту сторону, достаточно поменять местами выводы на любой обмотке.
Теперь проверяю двигатель на отсутствие замыканий между обмотками:

Тут тоже всё в порядке.
Для питания логической части собрал простейший стабилизатор на микросхеме LM7805 по такой схеме:

На выход добавил конденсатор 40 мкФ на 16 В. Стабилизатор и плату управления разместил на макетной плате.
В следующей записи опишу процесс настройки платы и программирование платы ардуино. На следующем фото небольшая превьюшка следующей части)

Расчет и настройка ремённой и винтовой придачи ЧПУ станка. Калибровка.

Продолжаем разбираться с ЧПУ станком. Настройку прошивки GRBL рассмотрели тут: Прошивка grbl 1.1, настройка — инструкция на русском. Но где же взять параметры для настройки ЧПУ станка? Сегодня в статье рассмотрим, как можно рассчитать винтовую и ременную передачу ЧПУ станка. Но расчет не всегда дает 100% результат. Для проверки и корректировки неточности используется калибровка ЧПУ станка. Как это сделать на практике я уже рассказывал в проекте:ЧПУ плоттер на Arduino своими руками.

Читать еще:  В чем разница между коллекторного и бесколлекторного двигателя

При расчете нужно учитывать один немало важный параметр, который мы еще не рассматривали подробно – это Микрошаг.

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

Основной параметр шаговых двигателей (ШД) это количество шагов на 1 оборот. Самое распространённое значение для ШД – 200 шагов на оборот (или 1,8 градуса на шаг). Мы будем использовать это разрешение во всех сегодняшних примерах. Более точную информацию можно узнать в описании к вашему шаговому двигателю. Зачастую 200 шагов на оборот, могут быть недостаточными для достижения необходимой точности. С целью повышения точности можно изменить передаточное число механически (использовать редуктор), а можно включить микрошаг – режим деления шага шагового двигателя, это увеличит число шагов на оборот, с коэффициентом 2n (n — целое число). Драйвер A4988 поддерживает деление шага: 1, 1/2, 1/4, 1/8, 1/16. Подробнее о драйвере A4988 читайте тут: Драйвер шагового двигателя A4988. Драйвер DRV8825 поддерживает деление шага: 1; 1/2; 1/4; 1/8; 1/16; 1/32. Подробнее о драйвере DRV8825 читайте тут: Драйвер шагового двигателя DRV8825.

Давайте рассмотрим пример. Если мы выставим микрошаг 16, что является в 16 раз больше полного шага и в нашем примере даст 3200 (200х16) шагов на оборот. На первый взгляд это отличный результат и почему бы не использовать максимальное деление шага во всех станках. Но тут есть и минус – это падение крутящего момента при увеличении деления шага. Подробнее Микрошаг рассмотрим в следующей статье.

Расчёт винтовой передачи ЧПУ станка.

Винтовая передача ЧПУ, либо ее более продвинутый вариант шарико-винтовая передача (ШВП), являются наиболее часто используемым вариантом перевода вращательного движения вала шагового двигателя в линейное перемещение исполнительного механизма.

Для расчёта разрешения нам необходимо знать ШАГ винта, либо шаг винта ШВП. В описании трапецеидальных винтов обычно пишут Tr8x8,Tr10x2, первая цифра говорит нам о диаметре винта, вторая как раз о его шаге в мм. Винты ШВП обычно обозначаются 1204, 1605 и т.п. Первые 2 цифры – это диаметр винта, вторые две – это шаг в мм. В 3d-принтерах обычно используют винт Tr8x8, диаметром 8 мм и с шагом 8 мм. Обзор моего 3d-принтера можно посмотреть тут:Обзор 3D принтера Anet A8. Сборка. Наладка.

Формула расчета винтовой передачи ЧПУ получается следующей, в числителе – количество шагов на оборот, в знаменателе – перемещение за оборот.

Тп = Sшд*Fшд/Pр

  • Тп — точность перемещения, шаг/мм
  • Sшд — количество шагов на оборот для двигателя (в наших примерах 200)
  • Fшд — микрошаг (1, 2, 4, 8 и т. д.)
  • — шаг винта (например, 8 мм)

Рассчитаем пример со следующими параметрами, двигатель 200 шагов на оборот, с 4-кратным микрошагом, с трапецеидальным винтом Tr8x8 даст нам 100 шагов на мм.

Другими словами, для того чтобы ЧПУ станок переместился на 1 мм, нам нужно сделать 100 шагов двигателя. Что является неплохой точностью.

Расчетные значения нужно указать в прошивке GRBL:

Расчет ременной передачи ЧПУ станка.

Во многих ЧПУ станках используются ремни и шкивы. Ремни и шкивы бывают разных форм и размеров, но одним из распространённых стандартов является GT2.

Следующие уравнение применимо для цепных и ременных передач, если вы введете правильный шаг. Обратите внимание, что эти уравнения не учитывают люфт.

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

Тлп = Sшд*Fшд/Pр*Nшк

  • Тлп — точность линейного перемещения, шаг/мм
  • Sшд — количество шагов на оборот для двигателя (в наших примерах 200)
  • Fшд — микрошаг (1, 2, 4, 8 и т. д.)
  • — шаг ремня (например, 2 мм)
  • Nшк — количество зубьев на шкиве, на валу двигателя.

Попробуем посчитать для примера с такими параметрами, двигатель 200 шагов на оборот, с 2-кратным микрошагом, 2-миллиметровыми ремнями GT2 и шкивом с 20 зубцами даст нам 10 шагов на мм.

200*2/2*20=10 шагов/мм.

Данный пример подойдет для расчета перемещения 3d-принтера. ЧПУ станков на ремнях: лазерный гравировальный, плоттер и пр.

Расчетные значения нужно указать в прошивке GRBL:

Калибровка ЧПУ станка.

После настройки станка необходимо проверить точность перемещения станка по осям. Для этого нужно отправить команду на перемещение по оси, на относительно большое расстояние. Я чаще всего использую 100 мм. После чего произвести замер перемещения. Если значения не отличаются – это означает, что все работает верно. Но если расстояние перемещения больше или меньше, то нужно внести корректировку – провести калибровку ЧПУ станка. Для этого будем использовать формулу:

Тк = Тп * Kп / Kф

  • Тк – калибровочное значение, шаг/мм.
  • Тп — точность перемещения, шаг/мм (из примера 100 шаг/мм)
  • Kп — заданное значение для перемещения (в моем случае 100 мм.)
  • — фактически, на какое расстояние переместилась ось (допустим на 99 мм.)

Для примера проведем расчёт винтовой придачи, которую рассчитывали выше и выяснили, что нужно совершить 100 шагов для перемещения на 1 мм. Также допустим, что мы отправили команду на перемещение станка на 100 мм, а по факту он переместился на 99 мм. Произведём расчет:

100*100/99=101,01 шагов/мм.

Указываем данное значение в прошивке GRBL и проводим калибровку еще раз. Если ЧПУ станок перемещается на заданное значение, можно пользоваться станком. Иначе проводим повторную калибровку.

Понравился статья Расчет и настройка ремённой и винтовой придачи ЧПУ станка. Калибровка ! Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Энкодер для шагового двигателя своими руками

1. Универсальный программатор UniProg.

&nbsp&nbspВ конце прошлого тысячелетия в радиотехнической литературе было много публикаций с использованием программируемых микросхем (ПЗУ). Мне тоже было интересно собрать что-либо. В результате была собрана схема управления новогодними гирляндами, сердцем гирлянды была мирросхема К556РТ5. Програмировал я ее на работе с использованием ручного программатора промышленного производства. Кто когда-либо пробовал программировать ПЗУ в ручном режиме поймет, что это был не легкий труд!
&nbsp&nbspСтало понятно, что надо было использовать для программирования таких микросхем компьютер. Появившийся Интернет помог определиться с устройством программирования — универсальный программатор UniProg фирмы «МикроАрт». Скажу честно, что это было не самое простое устройство имеющееся на то время в различной литературе. Выбор был сделан по причине доступности комплектующих и платы, которую можно было приобрести в столице нашей Родины. Проблема была только, как ни странно, в панельках для микросхем.
&nbsp&nbspПрограмматор UniProg версии 2.1 был собран, настроен и был готов к работе. В его комплектации нет только 4 панелек и блока питания, который был собран, как говорится, «на столе» и в дальнейшем ликвидирован за ненадобностью. Вот что получилось:
&#8226&nbsp Вид со стороны деталей.
&#8226&nbsp Вид со сотроны печатных проводников.
&#8226&nbsp Корпус внутри. Он был изготовлен из слегка пожелтевшей пластмассы от корпуса старого калькулятора.
&#8226&nbsp Вид в корпусе — 1.
&#8226&nbsp Вид в корпусе — 2.
&nbsp&nbspНа корпусе приклеены направляющие для установки дополнтельных панелек.
&nbsp&nbspМожно посмотреть инструкцию в формате PDF, а более подробно о программаторе UniProg можно читайте на сайте разработчиков.
&nbsp&nbspНа последок хочется отметить то, что НИ ОДНОЙ микросхемы так на нем и не было прошито! А причина проста — пока я его собирал, появились более молодые микросхемы и более простые для них программаторы, на которые я и переключился.

2. Цифровая шкала — частотомер на PIC16F84.

&nbsp&nbspКогда то и я собрал цифровую шкалу-частотомер А. Денисова.
Потом, правда, я использовал PIC16F84 в другом устройстве.
И вот решил восстановить ее работу:
&#8226&nbsp Вид со стороны деталей.
&#8226&nbsp Вид со сотроны печатных проводников.
&#8226&nbsp Вид спереди.
&#8226&nbsp В работе.
&#8226&nbsp Печатная плата в Layout 4.

&nbspДОПОЛНЕНИЕ (от 1 ноября 2015г):
&nbsp Понадобилось еще раз сделать данную шкалу. В качестве индикатора использовал индикатор E90363 от телефона с АОН. Вот что получилось: &nbsp 1 2 3 4
&nbsp При настройке столкнулся с такой проблемой — завышены показания на 1100 Гц. Решение — выкинул конденсатор С4, установленный параллельно подстроечному конденсатору С3, который в свою очередь заменил на конденсатор емкостью 1-5 пф. И еще, незначительно изменил рисунок печатной &nbsp платы .

Читать еще:  Датчик давления топлива 406 двигатель

3. Atmega fusebit doctor.

&nbsp&nbspДаже и в мыслях не приходило собрать это ВЕЛИКОЛЕПНОЕ устройство!
А все началось с того , что решил несколько лет назад собрать многоточечный термометр на АT90S2313. Данная схема размножена по Интернету оптом и в розницу. Но пока собирался, делал печатную плату, выяснил, что нет уже таких микроконтроллеров, но заказать можно за такие деньги, что моя ЖАБА мне намекнула о бесполезности данного мероприятия. На смену им пришли ATtiny2313, которые я и выписал. Радость моя длилась не долго, т.к. ни чего у меня с ними не получилось. Недоделка отправилась в коробку.
&nbsp&nbspА совсем недавно решил ATmega8A выписать, и пока искал где и, по совету ЖАБЫ, подешевле, нашел АT90S2313 по удивительно низкой цене. Вскоре ATmega8A и АT90S2313 ехали в Сибирь ко мне.
Получив столь желанные микроконтроллеры АT90S2313 были отправлены в программаторы и ни один из 3 микроконтроллеров у меня не заработал. Они даже не программировались.
Не буду изливать о том что я думал в ту минуту, т.к. мысли были черными.
&nbsp&nbspВсемирная паутина предложила купить новые микросхемы, купить нормальный программатор или собрать устройство «Atmega fusebit doctor».
Имея на руках ATmega8A, я остановился на последнем предложении. И это было правильное решение!
Ниже ссылка на сайт, где я многому научился, поняв что означает «залоченный микроконтроллер», за что отвечают фьюзы и многое другое: «Atmega fusebit doctor» — советую посетить!
&nbsp&nbspНачалась сборка данного устройства, которое оживило мне две «залоченных» ATmega8A и три АT90S2313.
&nbsp&nbspВот так получилась печатная плата методом ЛУТ:
&#8226&nbsp Вид со стороны печатных проводников.
&#8226&nbsp Вид со стороны установки деталей.
&nbsp&nbspПосле набивки деталей получилось следующее:
&#8226&nbsp Со стороны установленных деталей.
&#8226&nbsp Обратная сторона.
&nbsp&nbspЗапрограммирован микроконтроллер и установлен в рабочее состояние:
&#8226&nbsp Вид 1.
&#8226&nbsp Вид 2.
&nbsp&nbspДоработка:
&#8226&nbsp Установлен smd резистор 100 Ом.
&nbsp&nbspЯ использовал вот эту печатную плату, немного увеличив размер площадок, и следущую прошивку микроконтроллера.
&nbsp&nbspСпасибо авторам за данное устройство!

&nbspДОПОЛНЕНИЕ (от 8 марта 2016г):
&nbsp При прошивке микроконтроллера ATmega8 в SMD исполнении, используемого в датчике элевации контроллера поворотного устройства антенны с Ethernet интерфейсом. произошел сбой. Поэтому, пришлось выпаять микроконтроллер и вот только теперь решил его вернуть в рабочее состояние, т.к. признаков жизни у него не было. Как и ранее в таком случае, Atmega fusebit doctor помог. Изготовил панельку для микросхемы ATmega8 в SMD исполнении:
Вид 1.
Вид 2.
Печатная плата в Layout5.

4. Многоточечный термометр.

&nbsp&nbspЭто тот самый термометр из-за которого мне пришлось сделать Atmega fusebit doctor.
&nbsp&nbspЕще раз повторю, что оптом и в розницу он клонирован по Интернету на различных сайтах, там схему и найдете. Но, наверное, мало кто знает, что данное устройство было опубликовано в журнале «Радиолюбитель» за 2005 год на стр.20. Там имеется прошивка на микроконтроллер количеством 255 датчиков. Вот только ни где в Интернете не указано, что микроконтроллер используется АT90S2313-4PC, т.к. напряжение питания у него от 2,7 до 6 вольт. Это стало понятно только из журнала, т.к. там на схеме все указано. Хотя, признаюсь честно, если бы был опыт эксплуатации микросхемы КР1446ПН1Е (аналог MAX756), и так было бы понятно, что вся схема питается от 3,3 В.
&#8226&nbsp Вид со стороны установки деталей.
&#8226&nbsp Вид со стороны печатных проводников.
&#8226&nbsp Термометр в работе.
&#8226&nbsp Печатная плата в Layout 4 не много доработана под себя.
Индикатор использовал WM-1611-62C. Он, если не подключен температурный датчик, у меня начинает считать время.

5. Простой бортовой цифровой вольтметр.

&nbsp&nbspСхема вольтметра опубликована в журнале Радио №7, 2012 год.
В радиомагазинах уже полно готовых вольтметров по данному принципу построения, но хотелось сделать своими руками. Вот что получилось:
&#8226&nbsp Вид со стороны установки деталей.
&#8226&nbsp Вид со стороны печатных проводников.
&#8226&nbsp Вольтметр в работе.
&#8226&nbsp Печатная плата в Layout 4 выполнена для установки на импульный блок питания Mean Well S-350-13.5.
Индикатор — LB-303MA. Такой попался под руку. При наличии другого индикатора (с общим Анодом), можно без особых проблем переразвести печатную плату.

6. Анемометр — измеритель скорости ветра.

&nbsp&nbspСхема анемометра опубликована на сайте CQHAM, а так же большом количестве различных сайтов, клонирующих различные схемы.
Я очень давно пытался повторить данную схему, но лишь одна радиодеталь мне никак не попадалась — кварц на 1 МГц.
Кварц был обнаружен случайно в радиостанции Маяк. Правда, ранее нарисованную плату, пришлось увеличить в размерах, но счастью не было конца когда анемометр стал реагировать на движение воздушных масс
&#8226&nbsp Вид со стороны установки деталей.
&#8226&nbsp Вид со стороны печатных проводников.
&#8226&nbsp Анемометр в работе.
&#8226&nbsp Печатная плата в Layout 4
Как ни странно, в Интернет я не увидел ни разу что бы кто-нибудь оставил отзыв или повторил данную конструкцию. Датчик АП1-2 раньше применялся в составе анемомерта АП1, который использовался, как говорят, в шахтах.
В схеме я применил не дорогой и широко распространеный индикатор E30361-L-0-8-W
В Интернете я долго искал схему датчика АП1-2, который используется с анеметром. Нашел под боком в бумажном виде паспорт на анемометр. Бумага уже начала портиться. Сделал скан, может кому пригодится:
. &#8226&nbsp Паспорт на Анемометр АП1

7. Контроллер шагового двигателя на ATTINY2313.

&nbsp Схему контроллера я обнаружил на сайте RadioParty . Очень хотелось, после сборки валкодера (см. выше), поуправлять шаговым двигателем.
&nbsp Схема и мои фото: 1 2 3 4
&nbsp Печатная плата в Layout 5 с небольшими корректировками.
&nbsp HEX файл программы микроконтроллера.

8. Валкодер из шагового двигателя.

&nbsp Очень хотелось попробовать шаговый двигатель (ШД) использовать в какой-нибудь самоделке. Под руки попался ШД от 5″ дисковода отечественного производства ПБМГ-200-265. Вот и решил сделать валкодер.
&nbsp Схема валкодера с добавлениями от EW2CE.
&nbsp Так это выглядит у меня: 1 2 3 4 5 6 7
&nbsp Печатная плата в Layout 5 с небольшими корректировками.

9. Интерфейс к ротатору Yaesu G-450.

&nbsp В продаже периодически появляются контроллеры Yaesu без редукторов. Вот и думал, что приобрету контроллер Yaesu G-450 и подключу к нему какой-нибудь редуктор с помощью этой схемы. Но, контроллер собрал сам, а плата осталась.
&#8226&nbsp Вид со стороны деталей в режиме анимации.
&#8226&nbspОбратная сторона .
&#8226&nbspПечатная плата в Layout 4.
&nbsp Подключал к данному устройству редуктор МЭО и крутил в ручном режиме кнопками.
Конструкциия опубликована на сайте радиолюбителя OK2TPQ.

10. Светодиодная снежинка.

&nbsp&nbspСлучилось так, что было у меня светодиодов АЛ307Б некоторое количество безхозных. Блуждая по Интернету наткнулся на сайте РадиоКота на схему снежинки. Пока собирался делать, выяснилось, что люди уже повторили даную конструкцию и обменивались опытом изготовления. Мне понравилось как было сделано на Портале Светоэффектов. Конечно, АЛ307Б это не современные сверхяркие светодиоды, но результат меня удовлетворил полностью. Вот что в итоге получилось:
&#8226&nbsp Вид со стороны установки светодиодов.
&#8226&nbsp Обратная сторона снежинки.
&#8226&nbsp Плата управления — сторона деталей.
&#8226&nbsp Плата управления — сторона печатных проводников.
&nbsp&nbspПечатные платы немного подправил под себя, увеличив ширину проводников и площадок под пайку. Так удобней для меня, особенно для сверления отверстий ручной минидрелью.
&#8226&nbsp Печатная плата снежинки в Layout 5.
&#8226&nbsp Печатная плата платы управления в Layout 5.
&nbsp&nbspСхема снежинки была взята с Портала Светоэффектов.
Там же есть ссылки на прошивку контроллера. В моем случае — AT90S2313-10PI, который требует наличие кварца на 10 МГц.
&nbsp&nbspСсылки на вышеуказанные порталы смотрите справа на данной странице в колонке «Полезные ссылки».

&nbsp&nbsp Продолжение следует далее.

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector