Генератор сигналов произвольной формы на микроконтроллере AVR. Схемы измеритель импульса зажигания на avr


Измерение длительности импульса

Проектирование прибора измеряющего длительность импульса

ВВЕДЕНИЕ

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

Цель курсового проекта послужила создание измерительного прибора на базе микропроцессора AVR90S8515

Микропроцессоры американской фирмы ATMEL, в последние годы делают значительные успехи в освоении новых областей в сфере своего применения. Микропроцессорное ядро, используемое в микроконтроллерах AVR, похоже на большинство процессоров с RISC архитектурой, пожалуй, за исключением 8-разрядных регистров. Разработано двумя разработчиками из Норвегии, в городе Trondheim. Позже, в 1995 году, разработка была приобретена фирмой Atmel. До сих пор развитие ядра происходит в Норвегии, в то время как периферия и память разрабатываются в отделении Atmel в Калифорнии.

С помощью проектируемого прибора можно будет измерять длину импульсов в диапазоне от 10 мСек до 10 Сек измеренная величена будет отображаться на четырех разрядном светодиодном индикаторе

1.ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Необходимо спроектировать прибор для измерения длительности импульса.

2. РАЗРАБОТКА СТРУКТУРНОЙ СХЕМЫ. ОБОБЩЕННЫЙ АЛГОРИТМ РАБОТЫ

Структурная схема измерительного прибора приведена на рис.1

Структурная схема измерительного прибора

мСек – кнопка выбора отображения измеренной длительности импульса в мили Секундах.

Сек - кнопка выбора отображения измеренной длительности импульса в Секундах

Инверсия – кнопка выбора первого или второго режима измерения см ТЗ.

Св.Д1. – светодиод индицирующий включение второго режима измерения

Св.Д2. – светодиод индицирующий включение режима отображения измеренной длительности импульса в секундах.

Св.Д3. – светодиод индицирующий включение режима отображения измеренной длительности импульса в мили секундах.

AVR90S8515 – однокристальная микро-ЭВМ AVR90S8515

Рисунок 1.

Дешифраторы производят дешифрацию двоично-десятичного кода, а индикаторы отображают результаты измерения.

При включении питания микро-ЭВМ производит выполнение подпрограммы инициализации (инициализация стека, настройка используемых портовВВОДА/ВЫВОДА, загружается в компаратор А таймер/счетчика число 80000, выбирается нужный режим работы таймер/счетчика 1 (бит CTC1 регистра управления таймером/счетчиком 1(TCCR1B), устанавливается в единицу, что означает сброс таймер/счетчика 1 при срабатывании компаратора А, также бит CS10,находящийся в этом же регистре, устанавливается в единицу, это означает, что в качестве источника синхронизации будет использоваться частота синхронизации кварцевого резонатора), происходит глобальное разрешение прерываний ). Далее происходит опрос состояния кнопки выбора режима измерения длительности импульса и в зависимости от ее состояния (0 – измерение низкого уровня длительности импульса, 1 - измерение высокого уровня длительности импульса ), происходи переход на соответствующую подпрограмму (IMPULS_POLOGITELNAY – подпрограмма измерения высокого уровня длительности импульса, IMPULS_OTRICHATELNAY - подпрограмма измерения низкого уровня длительности импульса ).

Алгоритм работы этих двух подпрограмм практический одинаковый, для примера рассмотрим работу подпрограммы IMPULS_POLOGITELNAY. При переходе на эту подпрограмму МП начинает опрос линии PA0 и в случае обнаружения на ней логической единицы запускает таймер/счетчик 1. При срабатывании компаратора А происходит сброс таймер/счетчика 1 (в компаратор А загружено число – 8000, при частоте синхронизации МП равной 8Мгц срабатывание компаратора произойдет ровно через 1мС±1% ), что говорит о прошествии 1мСек. Отчет мили секунд в соответствии с ТЗ начнется после прошедшей девятой мили секунды. Индикация измеряемой длительности импульса происходит каждые 50 мСек. Вмести с этим МП продолжает сканировать линию PA0 и после того как он обнаружит на ней состояние логического нуля, что говорит о конце измерения длительности импульса, произойдет остановка таймера/счетчика 1 и произведется переход на подпрограмму перевода двоичного шестнадцати разрядного числа в двоично-десятичное - bin16BCD5 (детальный алгоритм перевода двоичного шестнадцати разрядного числа в двоично-десятичное рассмотрен ниже). После выполнения подпрограммы bin16BCD5, МП опрашивает состояние кнопок мСек и Сек. Если нажата кнопка Сек (индикация результата измерения производится в секундах), то тогда МП путем выдачи с линии РА7 логической единицы индицирует точку разделяющую целую часть числа от дробной. Если не нажата ни одна из двух кнопок или нажаты все, то тогда индикация результата измерения производится не будет. После того как произведется индикация результата измерения (через линии порта D и C) МП возвращается в основную программу. На этом цикл работы программы заканчивается .

Алгоритм подпрограмма перевода двоичного шестнадцати разрядного числа в двоично-десятичное

Арифметико-логическое устройство AVR-микроконтроллеров (как и других микропроцессоров) выполняет элементарные арифметические и логические операции над числами, представленными в двоичном коде. В двоичном коде считываются результаты преобразования АЦП, в двоичном коде (в формате целых чисел или чисел с плавающей точкой) удобно выполнять обработку результатов измерения. Однако, когда окончательный результат отображается на индикаторе, он должен быть преобразован в десятичный формат, удобный для восприятия человеком.

Форматы представления десятичных чисел

В настоящее время распространены два формата представления десятичных чисел в микропроцессорах - упакованный двоично-десятичный код (BCD-Binary-Coded Decimal).

Упакованный BCD-код - это такое представление десятичного числа, когда каждая десятичная цифра представляется 4-х битным двоичным позиционным кодом 8-4-2-1. При этом байт содержит две десятичные цифры. Младшая десятичная цифра занимает правую тетраду (биты 3 : 0), старшая - левую тетраду (биты 7 : 4). Многоразрядные BCD-числа занимают несколько смежных байт. Если число является знаковым, то для представления знака в BCD-формате отводится старшая тетрада старшего байта

Алгоритм подпрограммы bin16bcd5 заключается в следующем. Предположим, что имеется целое беззнаковое 16-битное число (диапазон от 0 до 65535). Очевидно, что необходимо найти 5 десятичных цифр. Способ преобразования заключается в том, чтобы, вычитая из исходного числа число 10000, сначала определить десятичную цифру десятков тысяч. Затем находится цифра тысяч последовательным вычитанием числа 1000 и т. д. Вычитание каждый раз производится до получения отрицательной разности с подсчетом числа вычитаний. При переходе к определению каждого следующего десятичного разряда в регистрах исходного числа восстанавливается последняя положительная разность. После того, как будет найдена десятичная цифра десятков, в регистрах исходного числа останется десятичная цифра единиц.

3. РАЗРАБОТКА И РАСЧЕТ ЭЛЕМЕНТОВ ПРИНЦИПИАЛЬНОЙ ЭЛЕКТРИЧЕСКОЙ СХЕМЫ

3.1 Выбор микропроцессорного комплекта

В соответствии с ТЗ ядром измерительного прибора послужила однокристальная микро-ЭВМ AVR90S8515 фирмы Atmel.

Основные характеристики однокристальной микро-ЭВМ AVR90S8515:

• AVR RISC архитектура - архитектура высокой производительности и малогопотребления

• 120 команд, большинство которых выполняется за один машинный цикл

• 8 Кбайта Flash ПЗУ программ, с возможностью внутрисистемногоперепрограммирования и загрузки через SPI последовательный канал, 1000 цикловстирание/запись

• 512 байтов ЭСППЗУ данных, с возможностью внутрисистемной загрузки через SPIпоследовательный канал, 100000 циклов стирание/запись

• 512 байтов встроенного СОЗУ

• 32 x 8 бит регистра общего назначения

• 32 программируемых линий ввода/вывода

• 16-разрядный и 32-разрядный формат команд

• Диапазон напряжений питания от 2,7 В до 6,0 В

• Полностью статический прибор - работает при тактовой частоте от 0 Гц до 8 МГц

• Длительность командного цикла: 125 нс, при тактовой частоте 8 МГц

• 8-разрядный и 16-разрядный (с режимами сравнения и захвата) таймеры/счетчики

• Сдвоенный ШИМ с 8, 9 или 10-разрядным разрешением

• Программируемый полный дуплексный UART

• Два внешних и десять внутренних источников сигнала прерывания

• Программируемый сторожевой таймер с собственным встроенным генератором

• Встроенный аналоговый компаратор

• Режимы энергосбережения: пассивный (idle) и стоповый (power down)

• Блокировка режима программирования

• Промышленный (-40°C...85°C) и коммерческий (0°C...70°C) диапазоны температур

• 40-выводной корпус PDIP и 44-выводные корпуса TQFP и PLCC

КМОП микроконтроллер AT90S8515 реализован по AVR RISC архитектуре

(Гарвардская архитектура с раздельной памятью и раздельными шинами для памятипрограмм и данных) и совместим по исходным кодам и тактированию с 8-разряднымимикроконтроллерами семейства AVR (AT90SXXX). Выполняя команды за один тактовыйцикл, прибор обеспечивает производительность, приближающуюся к 1 MIPS/МГц. AVRядро объединяет мощную систему команд с 32 8-разрядными регистрами общегоназначения и конвейерное обращение к памяти программ. Шесть из 32 регистровмогут использоваться как три 16-разрядных регистра-указателя при косвенной адресациипространства памяти. Выполнение относительных переходов и команд вызовареализуется с прямой адресацией всех 4К адресного пространства. Адресапериферийных функций содержатся в пространстве памяти ввода/вывода. Архитектураэффективно поддерживает как языки высокого уровня, так и программы на языкахассемблера.Встроенная загружаемая Flash память обеспечивает внутрисистемноеперепрограммирование с использованием интерфейса SPI (в последовательномВстроенная загружаемая Flash память обеспечивает внутрисистемноеперепрограммирование с использованием интерфейса SPI (в последовательномнизковольтовом режиме) или с использованием стандартных программаторовэнергонезависимой памяти (в 12-вольтовом параллельном режиме).Потребление прибора в активном режиме составляет 3,5 мА и в пассивномрежиме 1 мА (при VCC =3 В и f=4 МГц). В стоповом режиме, при работающемсторожевом таймере, микроконтроллер потребляет 50 мкА.низковольтовом режиме) или с использованием стандартных программаторовэнергонезависимой памяти (в 12-вольтовом параллельном режиме).Потребление прибора в активном режиме составляет 3,5 мА и в пассивномрежиме 1 мА (при VCC =3 В и f=4 МГц). В стоповом режиме, при работающемсторожевом таймере, микроконтроллер потребляет 50 мкА.

mirznanii.com

Генератор сигналов произвольной формы на микроконтроллере AVR

Библиографическое описание:

Литовченко А. А., Ерусалимский Ю. А. Генератор сигналов произвольной формы на микроконтроллере AVR // Молодой ученый. — 2016. — №21. — С. 173-177. — URL https://moluch.ru/archive/125/34400/ (дата обращения: 10.07.2018).



В статье описаны этапы разработки и исследования генератора сигналов произвольной формы для исследовательских целей на МК типа AVR. Проведена разработка принципиальной схемы генератора и программного обеспечения для его работы, изготовлен макет генератора и проведены его экспериментальные исследования.

Ключевые слова: AVR, генерация сигнала

На настоящий момент сложно обнаружить какое-либо оборудование без использования микроконтроллеров (МК), являющихся вычислительной микросхемой, управляющей электронными устройствами. Как известно, типовой МК выполнен на одном кристалле и содержит процессор, периферийные устройства, ОЗУ (оперативное запоминающее устройство) и/или ПЗУ (постоянное запоминающее устройство), в зависимости от применяемого назначения. Другими словами, микроконтроллер можно представить в виде миникомпьютера, способного решать несложные вычислительные задачи.

Разработка структурной схемы

Сигнал формируется микроконтроллером путём выполнения алгоритма, записанного в его ПЗУ. На выходе МК выдаёт двоичный код, который необходимо преобразовать в напряжение. Для выполнения данной задачи применяется цифро-аналоговый преобразователь (ЦАП) с последующим использованием фильтра нижних частот (ФНЧ) для подавления ступенек на сигнале. Из-за большой частоты, амплитуда сигнала очень маленькая, поэтому для усиления сигнала применяется усилитель. Для выбора формы сигнала, который будет генерировать МК, используется блок управления, так же, как и индикация выбора сигнала для визуализации выбранной формы сигнала. Структурная схема генератора сигналов изображена на рисунке 1.

C:\Users\Aleksey\Desktop\Диплом\структурная схема-восстановлено.jpg

Рис. 1. Структурная схема генератора сигналов

Выбор элементов принципиальной схемы

Главной частью генератора является МК ATMEGA328P-MU в корпусе MLF-32. Микроконтроллер уже распаян на платформе Arduino, что существенно упрощает монтаж и наладку МК и позволяет уделить больше внимания разработке самого генератора.

Основные параметры МК ATMEGA328P-MU описаны в таблице 1.

Таблица 1

Основные параметры МК ATMEGA328P-MU

ЦПУ: Ядро

AVR

ЦПУ:F, МГц

от 0 до 20

Память:Flash, КБайт

32

Память:RAM, КБайт

2

Память:EEPROM, КБайт

1

I/O (макс.), шт.

23

Таймеры:8-бит, шт.

2

Таймеры:16-бит, шт.

1

Таймеры:Каналов ШИМ, шт.

6

Таймеры:RTC

Да

Интерфейсы:UART, шт.

1

Интерфейсы:SPI, шт.

1

Интерфейсы:I2C, шт.

1

Аналоговые входы:Разрядов АЦП, бит

10

Аналоговые входы:Каналов АЦП, шт.

8

Аналоговые входы:Быстродействие АЦП, kSPS

76.9

Аналоговые входы:Аналоговый компаратор, шт.

2

VCC, В

от 1.8 до 5.5

ICC, мА

40

TA, °C

от -40 до 85

Блок управления состоит из четырёх клавиш выбора и трёх потенциометров. Для выбора сигнала используется соответствующая кнопка. Потенциометры предназначены для регулирования частоты, скважности (ШИМ) и управления усилением, при этом регулировать ШИМ возможно только при генерации прямоугольного сигнала.

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

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

Принципиальная электрическая схема генератора представлена на рисунке 2.

Рис. 2. Электрическая схема генератора

Разработка программного обеспечения

Для выполнения инструкций, определяющих, как и в каком порядке работать компонентам, подключённым к микроконтроллеру, реализована программа для данного микроконтроллера на языке программирования Arduino. Окно среды разработки с фрагментом программы показано на рисунке 3.

C:\Users\Aleksey\Desktop\Диплом\arduinoc.jpg

Рис. 3. Окно среды разработки Arduino

Исследование генератора

Созданный генератор формирует сигналы прямоугольной, пилообразной, синусоидальной и треугольной формы (рисунки 4–7).

C:\Users\Aleksey\Desktop\Диплом\прямоугольный.jpg

Рис. 4. Сигнал прямоугольной формы

C:\Users\Aleksey\Desktop\Диплом\пила.jpg

Рис. 5. Сигнал пилообразной формы

C:\Users\Aleksey\Desktop\Диплом\sin.jpg

Рис. 6. Сигнал синусоидальной формы

C:\Users\Aleksey\Desktop\Диплом\треугольный.jpg

Рис. 7. Сигнал треугольной формы

Литература:
  1. Кравченко А. В. 10 практических устройств AVR-микроконтроллерах. — Книга 2. — СПб.: МК-Экспресс, 2009. — 320 с.
  2. Соммер У. Программирование микроконтроллерных плат Arduino/Freeduino. — СПб.: БХВ-Петербург, 2012. — 256 с.
  3. Arduino IDE — установка, настройка и интерфейс. Проверка соединения с платой Arduino // Программирование микроконтроллеров AVR, Atmega, Arduino и др. URL: http://progmk.ru/ (дата обращения: 14.09.2016).
  4. ATmega328P Overview // Atmel Corporation — Microcontrollers, 32-bit, and touch solutions. URL: http://www.atmel.com/devices/ATMEGA328P.aspx (дата обращения: 02.09.2016).
  5. From Arduino to a Microcontroller on a Breadboard // Arduino. URL: https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard (дата обращения: 02.09.2016).

Основные термины (генерируются автоматически): AVR, треугольная форма, структурная схема генератора сигналов, программное обеспечение, основной параметр МК, двоичный код, блок управления, VCC, ICC, цифро-аналоговый преобразователь.

moluch.ru

Бесконтактный тахометр на микроконтроллере AVR. Часть 1. Схема и принцип работы

Рассматриваемый бесконтактный тахометр – это компактное устройство на микроконтроллере ATMega48 производства компании Atmel, позволяющее измерять высокие скорости вращения бесконтактным способом. Для измерения используется ИК сенсор (оптопара, ИК светодиод и ИК фотодиод в одном корпусе). Вывод данных осуществляется на двухстрочный символьный ЖК дисплей на базе контроллера HD44780.

1

Принцип работы

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

2

Благодаря этой наклейке, каждый оборот вала вызывает появление отраженного импульса ИК излучения. Используемый сенсор производства компании Vishay Semiconductor имеет маркировку TCND-5000.

3

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

Таким образом, используя оптопару мы можем подсчитать время полного оборота вала, а далее, зная время (обозначим это время T в секундах), мы можем вычислит количество оборотов в минуту, используя простое выражение 60/T.

Получение данных от сенсора

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

На рисунке ниже изображена диаграмма аналогового сигнала от ИК сенсора (фотодиода)

4

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

Решение было найдено в оценке средней интенсивности, основанной на максимальном и минимальном значении интенсивности сигнала от сенсора, и включением гистерезиса в районе средней интенсивности. Гистерезис используется для предотвращения многократного счета циклов зашумленных импульсов.

Рисунок ниже поясняет работу такого алгоритма.

5

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

Принципиальная схема устройства

6

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

Как вы, наверное, заметили, отсутствует потенциометр регулировки контрастности дисплея (что также позволяет уменьшить размер устройства). Это возможно благодаря программной реализации алгоритма автоматической подстройки контрастности в зависимости от уровня напряжения питания с применением ШИМ и фильтра низких частот на элементах R3, R4 и C2. Пользователи могут ознакомиться с текстом алгоритма в исходном коде ПО микроконтроллера во второй части статьи.

Разъем JP1 предназначен для внутрисхемного программирования микроконтроллера. Разъем JP2 предназначен для подключения дополнительного пользовательского датчика.

Список примененных компонентов

Обозначение в схеме

Наименование, номинал

IC1 Микроконтроллер ATmega48
Q1, Q2 Транзистор BCW66G
C1, C2 10 нФ
C4, C5 33 пФ
X1 Кварцевый резонатор 20 МГц
R1, R2, R7 470 Ом
R3 1 кОм
R4 1.5 кОм
R5 1 МОм
R6 110 Ом
R8 70 Ом
LED3 Светодиод
IR1 Оптопара TCND-5000
B1 Кнопка
B2 Выключатель питания
JP1 Разъем внутрисхемного программирования
JP2 Разъем расширения

Демонстрация работы бесконтактного тахометра на микроконтроллере AVR можно посмотреть

 

Во второй части статьи будет рассмотрена конструкция прибора и основные моменты в программном обеспечении микроконтроллера, включая аналого-цифровое преобразование и организацию обмена данными с ЖК дисплеем.

meandr.org

Сайт ПАЯЛЬНИК. Все для радиолюбителя

02:41

r9o-11 написал комментарий:

Да, в оригинальном аппарате стоят по другому. Но импульс на наших транзисторах формируется стабильнее, если диоды перевернуть. Читать комментарий

00:14

Алексей написал комментарий:

Здравствуйте! Неисправен блок питания монитора Схему прилагаю. Уже всю голову сломал, нет напряжения во вторичных цепях, помогите если можно. Читать комментарий

21:57

mag155 написал комментарий:

Тиристоры мтт 80. Трансформаторы МИТ 4. Ширину импульсов менял эффект примерно тот же. Читать комментарий

21:30

e_c_c написал комментарий:

Что за тиристоры у вас, и какие трансформаторы используете? Может импульс слишком широкий ? Или происходит насыщение сердечника ? Читать комментарий

16:06

r9o-11 написал комментарий:

Не знаю. Никогда не измерял. Читать комментарий

13:26

andro написал комментарий:

А что если использовать биполярные транзисторы MJE13003 ? Читать комментарий

12:52

andro написал комментарий:

Какое напряжение развивается на излучателе? Читать комментарий

10:30

Lion59 написал комментарий:

На схеме оригинального аппарата в блоке управления мощными транзисторами диоды в цепи базы D7и D8 в схеме управления реле подключены ... Читать комментарий

10:16

Станислав Пимшин написал комментарий:

Кто собирал? Как работает? Какие подводные камни? Читать комментарий

06:24

boba74 написал комментарий:

Вопрос по системе полива растений. На дисплее после включения не отображается никакая информация, одни кубики. Помогите, пожалуйста , разобраться. Читать комментарий

cxem.net

Автомобильный измеритель «МММетр». - AVR - AVR - Электросхемы в помощниках.

Источник материала сайт http://c2.at.ua. 

Различные параметры в автомобиле, такие как напряжение АКБ, давление в масляной системе, количество об/мин коленчатого вала, температура охлаждающей жидкости, количество топлива.

Все это возможно визуально просматривать и контролировать с помощью этой схемы на микроконтроллере.

(Так же, нет препятствий применить эту схему, в двух колесном транспортном средстве, грузовике или тракторе)

Вот такому событию посвящена эта универсальная разработка.

В схеме реализовано;

·         ВольтМетр от 0.0 до 30.0V   ·         МаноМетр от 0.0 до 10.0 кг/см   ·         ТахоМетр  от 0 до 9999 об/мин   ·         ТермоМетр  -55 до +125 °С ·           Измеритель уровня топлива (это по умолчанию, а далее в статье подробней про этот канал универсального измерителя,  который назван тут как  "МММетр").

Все перечисленные измерения, имеют настраиваемые из пользовательского меню значения порога сработки, на какое либо событие, и далее эти сигналы (0 или 1) управляют портами МК на выход.

Схема:

 

Комплектующие схемы;

                 ЖКИ 8х2 на базе контроллера HD44780 или KS0006, МК ATmega8 с любой буквой.

Вольтметр – реализация схемы как всегда примитивна, на входе используем схему резисторного делителя. Правильность показаний , подстраивается резистором  R-1.         

 Манометр – по схеме используется датчик— ММ393А ( подойдут и другие автомобильные датчики всех серий ММ3ххх) на  ОУ Lm2904 (Lm328).

  Используется классическая схема ОУ, для усиления  напряжения с датчика, милливольт в вольты. Подстройка усиления  R-2.

Тахометр – это для него в схеме применен кварцевый резонатор на частоту 8MHz для большей точности и стабильности измерений частоты.

   Если  это измерение для вас не имеет большого значения,  можно сконфигурировать  FUSE на внутренний генератор МК.

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

   Такая схема хорошо себя зарекомендовала и в случае с контактным зажиганием, и в случае с электронным зажиганием.

                      Для  вычисления об/мин и вывода показаний на экран, используется такая формула  Р =F *60/t.

                       Где Р-показания=F- частота импульсов подаваемых на вход *60сек/t- коэффициент деления,( коэффициент  пользователь выбирает в меню самостоятельно (1,2,3,4,5,6,7,8)по умолчанию установлен 2)

Термометр - используется датчик DS18b20, точность показаний  1°C "МММетр" - а здесь уже можно сказать, что это конкретно «измеритель для радиолюбителя» ,  для творчества  самое то (варианты применения, имеют широкий выбор).

И вот почему; в настройках через пользовательское меню, можно настроить, 

1) инверсию входного сигнала,     2) установку  положения разделительной точки,   3) диапазон измерения (макс. до 10,0 или до 90,0…. или  от 100 или 900).   4) возможность замены буквы в измеряемом значении. В данном случае этот канал измерения, по умолчанию представлен, как этакий «бакометр» с измерением в L.

Но тут фантазию можно и не ограничивать, и использовать этот канал для всего, что может измерять канал АЦП (измерение давления, уровня жидкости, освещенности, влажности, температуры, тока, напряжения и т.д.)

Значит, конечный результат, будет выглядеть так 0,0А или 0,0V …..300L ……100% ……50S …… 240V ….. 175C ….. в общем, что это для вас значит решайте сами, потому что тут на выбор,  весь алфавит и дополнительные символы.

Рассмотрим одно из возможных применений, этого канала измерения «МММетра»,  в качестве уровнемера или бакомера, назвать это можно как угодно.

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

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

Объем бака, также можно настроить в пользовательском меню (10.0L, 20.0., 30.0., 40.0., 50.0., 60.0., 70.0., 80.0., 90.0., 100.. 200... 300.. ..............900L). Также в меню устанавливается   значение на  остаток топлива, при его меньшем количестве, будет подан сигнал на порт РВ4, для световой или звуковой сигнализации......

Подключение такого резистивного датчика уровня к схеме, практически такое же, как и датчика давления.

Схема L.

 

Далее при желании, еще  варианты схем  А , V ,% ,C, S для различных измерений несложно будет дополнить к этому каналу (порт РС3) АЦП измерения.

 

И, конечно же,  все измерительные каналы с настраиваемым порогом срабатывания, 

и далее управление  и  выход этих команд на исполнительные  или сигнализирующие устройства,  

делает это устройство реально интересным и полезным.

 

 

Фото, отображение показаний на ЖКИ экране.

 

Управление кнопками:

В основном режиме экрана, кнопки Кн1, Кн3 устанавливают  по выбору пользователя, отображение функций, в режиме основного  экрана.

( Кн1 верхняя строка дисплея, Кн3 нижняя строка дисплея, одновременно отбражение не более 2х функций)

 

Движение по пунктам меню, осуществляется очень просто, кнопкой Кн2.

Тут же, при этом с помощью кнопок Кн1, Кн3 осуществляем выбор подменю (вольтметр,  давление,  тахометр, термометр, "МММетр") и установку  порогов сработки для всех этих функций.

  

FUSE. Схема МК работает с кварцем,  на  частоте 8MHz.

 

 

С навигацией по меню несложно будет разобраться,  при симуляции проекта  в proteus.

 

 

Все настройки и параметры устройства, выбранной пользователем конфигурации, сохраняются в памяти МК.

 

P.S. Еще в этой схеме есть такой бонус, частотомер, по всей видимости он вполне пригоден для измерения частоты до 10.000Гц, тоже для каких либо целей вполне пригодится.

Испытания проводил генератором (на микросхеме К176ИЕ12) с фиксироваными частотами 1,2, 60, 128, 1024, 32768Гц.

На измерении часовой частоты 32.768Гц тут он уже  по всей видимости  начинает привирать…:(

  

Файлы:

      Архив файлов здесь

        http://sxem.org 

 

 

 

c2.at.ua

Частотомер-тестер кварцев на atmega8

О приборе

Частотомер - полезный прибор в лаборатории радиолюбителя (особенно, при отсутствии осциллографа). Кроме частотомера лично мне часто недоставало тестера кварцевых резонаторов - слишком много стало приходить брака из Китая. Не раз случалось такое, что собираешь устройство, программируешь микроконтроллер, записываешь фьюзы, чтобы он тактировался от внешнего кварца и всё - после записи фьюзов программатор перестаёт видеть МК. Причина - "битый" кварц, реже - "глючный" микроконтроллер (или заботливо перемаркированый китайцами с добавлением, например, буквы “А" на конце). И таких неисправных кварцев мне попадалось до 5% из партии. Кстати, достаточно известный китайский набор частотомера с тестером кварцев на PIC-микроконтроллере и светодиодном дисплее с Алиэкспресса мне категорически не понравился, т.к. часто вместо частоты показывал то ли погоду в Зимбабве, то ли частоты "неинтересных" гармоник (ну или это мне не повезло).

Есть достаточно старый проект частотомера на ATMEGA8 и символьном дисплее 16x2. Предел измерения - до 40..50МГц с погрешностью менее 1%. Такой точности обычно более, чем достаточно. Помимо частоты умеет измерять период и скважность импульсов. Теоретически, если заменить микроконтроллер на ATMEGA48/88, то можно поставить кварц на 20 МГц и тогда максимальная измеряемая частота может быть увеличена до ~80 МГц (естественно, для этого придётся пересобрать прошивку).

Прибор имеет 9 режимов измерения:

  1. Измерение частоты с предделителем на 16, время измерения - 0.25 сек, результат в Гц.
  2. Измерение частоты без предделителя, время измерения - 0.25 сек, результат в Гц.
  3. Измерение периода следования импульсов и вычисление частоты на его основе, результат в 0.01 Гц.
  4. Изменение циклов в минуту (без предделителя), вычисляемых по измеренному периоду, результат в rpm.
  5. Измерение длительности полного цикла, результат в микросекундах.
  6. Измерение длительности высокого полупериода, результат в микросекундах.
  7. Измерение длительности низкого полупериода, результат в микросекундах .
  8. Длительность высокого полупериода в процентах.
  9. Длительность низкого полупериода в процентах.

Схема

Исходная схема прибора была доработана следующим образом (схема кликабельна):

Схема частотомера
  1. Добавлен альтернативный входной формирователь (блок Analog-1), схема найдена на просторах интернета (к сожалению, не смог определить первоисточник). Имеет вход для проверки кварцевых резонаторов (работает с кварцами от 1МГц до 40МГц). Исходный входной формирователь тоже сохранён (блок Analog-2) и разведён на печатной плате, но распаять можно только один из этих формирователей.
  2. Переменный резистор выбора режимов заменён на более долговечный энкодер
  3. Питается прибор от USB. На вход добавлены LC-фильтр помех и предохранитель
  4. RS232 и преобразователь MAX232 из схемы убраны, вместо них добавлен разъём для подключения преобразователя USB-UART для связи с ПК (если захочется управлять прибором с ПК)
  5. Вольтметр 0..5В из исходной схемы также убран, т.к., учитывая обилие дешёвых китайских мультиметров, смысла в нём не видится никакого.

Аналоговый входной сигнал поступает на усилитель, а затем на формирователь на основе триггер Шмитта 74HCT132. Далее, этот сигнал подаётся на вход микроконтроллера непосредственно, либо через делитель на 16, выполненный на 74HCT93. Делитель этот управляется сигналом от пина PC5: высокий уровень на пине отключает предделитель, низкий уровень, соответственно, включает деление на 16.

Микроконтроллер подключён по типовой схеме и тактируется от кварцевого резонатора 16 МГц. Кстати, о кварце - его качество (точность, термостабильность) целиком определяет точность прибора. Т.е., возникает проблема добычи эталонного кварца (ну или точное измерение его частоты с последующим введением поправки в вычислении). Но об этом чуть позже..

Я не стал разводить на плате разъём ISP-программатора, т.к. микросхема всё равно стоит на панели, а для обновления прошивки можно использовать загрузчик. Неиспользуемые выводы микроконтроллера разведены так, что в будущем к ним можно было что-нибудь подключить. Например, джампер для активации того же bootloader-а. Или термодатчик, чтобы в будущем учитывать температурное изменение частоты кварцевого резонатора. Или ещё что-нибудь. Все выводы от miniUSB-разъёма также разведены на плате. Это сделано для того, чтобы можно было легко установить USB-UART-преобразователь внутри прибора (если он будет нужен).

Сборка

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

На плате надо распаять только один из формирователей Analog-1 или Analog-2. Вообще, в использовании оригинального формирователя Analog-2 сейчас нет никакого смысла (ну разве что отсутствие необходимых для Analog-1 деталей и потребности проверять кварцы).

Плата в сборе:

Плата в сборе

К сожалению, на изготовленных платах обнаружилось пара ошибок. Первая - в формирователе Analog-1 - вывод резистора R15 (470 Ом) висит в воздухе. Исправить можно просверлив рядом отверстие и прокинув небольшую перемычку как показано на фото. Как вариант, можно кинуть провод через одно из свободных отверстий чтобы не сверлить новые.

Исправление ошибок на платеИсправление ошибок на плате

Вторая ошибка - пропущено соединение между выводом 5 микросхем 74hct132 и выводом 2 микросхемы 74hct93, для исправления надо кинуть проводок как на фото:

Исправление ошибок на плате

Использование прибора

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

Режим Измеряемая величина Метод Формат отображения
1.Frequency (16) Частота Подсчёт с предделителем на 16 F=99,999,999 Hz
2.Frequency Частота Подсчёт без предделителем f=9,999,999 Hz
3.Time HL, f Частота Длительность периода v= 9,999.999 Hz
4.Time HL, rpm Изменений в минуту Длительность периода u= 9,999,999 rpm
5.Time HL, us Длительность периода следования Длительность периода t=99,999,999 us
6.Time H Длительность "высокой" части периода Длительность периода h=99,999,999 us
7.Time L Длительность "низкой" части периода Длительность периода l=99,999,999 us
8.PW ratio H Доля "высокой" части периода Длительность периода P=100.0%
9.PW ratio L Доля "низкой" части периода Длительность периода p=100,0%

В режиме тестера кварцев прибор успешно работал с разными резонаторами от 4 МГц до 27МГц. С часовыми кварцами генератор, увы, совсем не запускается, для них придётся делать отдельную приблуду.

Корпус

Корпус для частотомера был распечатан на 3D-принтере, для чего спроектирована 3D-моделька. Верхняя часть состоит из двух деталей - основы и части для дисплея.

Модель корпуса частотомераМодель корпуса частотомераМодель корпуса частотомера

Отверстия на лицевой панели вырезаны не да конца - умышленно оставлен один слой пластика (0.35мм). Это сделано для того, чтобы заливка лицевой поверхности была равномерной, без обводных контуров вокруг отверстий. Пластик над отверстиями легко убирается при помощи ножа и напильника. Корпус я печатал из ABS, части склеивал при помощи ацетона с растворённым пластиком. Сам корпус также был обработан ацетоном (прошёлся пару раз кисточкой).

На фрагменте под дисплей также намечено прямоугольное отверстие для 3-пинового разъёма цифрового входа. Да, вообще, этот разъём должен быть 2-пиновый, но тогда было бы не понятно, где у него "земля", а где вход. Чтобы не делать пояснительных надписей на лицевой панели, добавлен третий контакт. Так получаятся, что то вход по центру, земля - по краям, запомнить просто. Либо, как вариант, сюда можно вывести напряжение +5В. Например, для приставки-измерятора частоты часовых кварцев.

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

Собранное устройство в корпусе выглядит так (вставлен кварц на 20 МГц):

Частотомер-тестер кварцев

Точность прибора

Основным фактором, влияющим на точность частотомера является точность используемого кварцевого резонатора. Т.е., имеем проблему добывания где-то эталонного кварца. При производстве кварцы разделяются на группы по отклонению их частоты от заявленной. Разумеется, стоимость у резонаторов с минимальным отклонением будет намного выше, чем у остальных. Все точные кварцы будут использованы в критичном оборудовании, менее точные - в менее критичном оборудовании, а весь оставшийся "мусор" с максимальным отклонением частоты будет распродан где-нибудь на Алиэкспрессе по 50 рублей за ведро.

Кроме точности частоты, не меньшее значение имеет её термостабильность. Если температура в помещении в течение года может изменятсья в диапазоне около 15°С, то и частота резонатора может значительно "уплывать".

Для достижения максимально высокой точности измерения потребуется либо точный кварц на 16 МГц, либо другой поверенный частотомер, которым можно будет измерить реальную частоту используемого кварца и сделать на это поправку (в коде прошивки, либо вручную пересчитывать результат измерений).

Но как быть, если нет ни первого, ни второго? Тут мне видится такое решение: вместо эталонного источника частоты можно использовать системные часы компьютера. Если часы синхронизируются по протоколу NTP, а в версии 4 этот протокол способен обеспечить точность до 10 мс (1/100 с) при работе через Интернет (и до 0.2 мс и лучше внутри локальных сетей). Имея такой точный источник времени, можно написать прошивку, реализующие часы для частотомера. Если запустить такие часы на длительное время, то погрешность их хода будет накапливаться, и рано или поздно достигнет легко измеряемой величины. Тогда не составит труда вычислить погрешность кварца по погрешности хода часов, что позволит либо попробовать отобрать кварц с частотой, максимальной близкой к 16МГц, либо скомпилировать прошивку для измеренной частоты кварца. Вообщем, пока есть такие планы на будущее..

Излишки печатных плат есть в магазине сайта.

Файлы

DownloadСхема частотомера в PDF DownloadМодель корпуса DownloadИсходник и прошивка

trolsoft.ru

ЧАСТОТОМЕР НА МИКРОКОНТРОЛЛЕРЕ

   Очень полезный и несложный прибор, который просто незаменим в творческой лаборатории радиолюбителя, можно сделать на МК PIC16F628A. Для измерения частот до 30 Мгц и предназначен данный цифровой частотомер на распространённой микросхеме-контроллере PIC16F628A. Его принципиальная схема состоит из базового модуля, с подключенным к его счетному входу входным формирователем. Схема частотомера приведена на рисунке ниже:

   Данный измерительный прибор может использоваться в двух режимах - цифровая шкала и измеритель частоты. При включении питания, частотомер переходит в тот режим, в котором он работало до последнего выключения питания. Если это был режим частотомера - в левом разряде индикатора высветится режим частотомера "F.". Так-же в младшем разряде индикатора высветится "0". Частотомер автоматически перейдет в режим измерения частоты и будет находиться в режиме ожидания. При подаче на вход какого-то сигнала, признак режима частотомера "F." гасится и индикатор отобразит значение измеряемой частоты в килогерцах.Схема входного формирователя частотомера - цифровой шкалы, приведена на рисунке:

Схема входного формирователя частотомера

   Если на момент включения питания, на входе частотомера присутствует измеряемый сигнал, то, после включения питания, признак работы частотомера "F.", высветится в течение 1-й секунды, а затем погаснет.Для того чтобы перейти на время измерения 0,1 сек. или 10 сек., необходимо нажать либо кнопку № 1, либо одновременно нажать кнопку № 1 и кнопку № 2 соответственно (см. раскладку клавиатуры для режима частотомера), затем дождаться изменения положения десятичной точки, после чего отпустить кнопку (кнопки). Если после этого необходимо вернуться к времени измерения 1 сек., то необходимо нажать кнопку № 2 и дождаться изменения положения десятичной точки, после чего отпустить кнопку. Для любого времени измерения десятичная точка отмечает килогерцы.

самодельный частотомер на PIC16F628A

   Раскладка клавиатуры режима частотомераКнопки Время измерения ПоясненияКнопка № 1 0,1 сек. Переход на время измерения 0,1 сек.Кнопка № 2 1 сек. Переход на время измерения 1 сек.Кнопка № 1 +кнопка № 2 10 сек. Переход на время измерения 10 сек. (кнопки нажимаются одновременно)

   Если перед выключением питания происходила работа в режиме цифровой шкалы, то при следующем включении питания будет установлен именно этот режим, а внутри режима цифровой шкалы будет установлен именно тот подрежим ("минус ПЧ" или "плюс ПЧ"), в котором происходила работа до последнего выключения питания. Признаки подрежимов цифровой шкалы ("L." или "H." соответственно) будут постоянно высвечиваться в левом разряде индикатора. При отсутствии сигнала на входе цифровой шкалы, индикатор будет показывать значение записанной в память контроллера промежуточной частоты, а при его наличии - результат вычитания или сложения частоты сигнала, присутствующего на входе цифровой шкалы, и значения промежуточной частоты, записанной в энергонезависимую память PIC контроллера.

цифровая шкала и измеритель частоты

   Режим цифровой шкалы имеет 4 подрежима.- При нажатии на кнопку № 1 происходит переход в подрежим "минус ПЧ".- При этом, в левом разряде индикатора, высветится признак подрежима "L.".- При нажатии на кнопку № 2 происходит переход в подрежим "плюс ПЧ".- При этом, в левом разряде индикатора, высветится признак подрежима "H.".

   В процессе "прошивки" контроллера, в его энергонезависимую память записывается значение промежуточной частоты = 5,5 мГц., но потом может будет самостоятельно записать в нее любое значение и использовать ее в качестве промежуточной. Для этого надо подать на вход ЦШ внешний сигнал с частотой, которая далее будет использоваться в качестве промежуточной. Проконтролировать значение этой частоты можно, перейдя в режим частотомера.

   Раскладка клавиатуры режима цифровой шкалы:Кнопки Время измерения ПоясненияКнопка № 1 "минус ПЧ" Промежуточная частота вычитается изизмеряемой частотыКнопка № 2 "плюс ПЧ" Промежуточная частота суммируется сизмеряемой частотойКнопка № 1 +кнопка № 2 Установка ПЧ Запись в оперативную память значенияизмеряемой частоты (ПЧ)Повторно:Кнопка № 1 +кнопка № 2 Запись ПЧ Копирование значения измеряемой частоты из оперативной памяти в энергонезависимую с целью дальнейшего ее использования в качестве промежуточной

частотомер своими руками на микроконтроллере

   При смене режима работы, меняется раскладка клавиатуры. Если кнопка № 1 находится в нажатом состоянии меньше определенного времени, то переключения в другой режим не происходит и кнопка № 1 может либо устанавливать время измерения 0,1 сек. (в режиме частотомера), либо включать подрежим "минус ПЧ" (в режиме цифровой шкалы). Если этот порог превышен, происходит переключение в другой режим. Величина этого порога - около 4 сек., и этот интервал времени отсчитывается с момента окончания цикла счета, приходящегося на момент нажатия кнопки № 1. 

частотомер с динамической индикацией на микроконтроллере

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

Печатная плата частотомера на МК

   Прошивки для микроконтроллера PIC16F84A, а также полный текст статьи Цифровой частотомер на контроллере качаем тут. Схему испытал - ZU77.

el-shema.ru