Меню

Генератор импульсов с регулировкой частоты и скважности на ардуино

Сообщества › Arduino для автомобиля › Блог › Генератор с возможностью регулировки частоты и скважности за 100 руб

Был момент, мне как то понадобился генератор.
Да ещё и со специфическими требованиями.
Основной импульс с регулируемой частотой и скважностью
+ пачка импульсов запускаемая по синхроимпульсу
(можно от основного импульса)
Пачка — с регулируемым количеством, скважностью и задержкой от основного импульса.

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

Вырезал из кода все прибамбасы
касаемые генерации пачки по синхроимпульсу

и решил выложить сюда.

Информация о режиме, частоте и скважности выводится в терминал.
Естественно, не нужно возлагать на него какие-то фантастические надежды.
Это всего лишь программная генерация,
чем выше частота, тем более искажёнными будут фронты.
Частоту выжимал около 1 мГц,
если поменять кварц, то можно и более попробовать выжать.

Скетч и необходимые для работы библиотеки внизу страницы
——————-
#include «CyberLib.h»
#include

// PWM должно быть заглавными буквами

bool p1, p2, p3;
int pwm = 9; // the pin that the pwm out
int32_t f=100; //стартовая частота
int duty=128; //стартовая скважность

int mode=1;
// 1 — частота ШИМ
// 2 — ширина ШИМ
// 3 — Сохранение настроек
// 4 — Загрузка настроек

void setup()
<
Serial.begin(115200);
Serial.println(«Init device»);
Serial.println(«mode: PWM Frequency HZ»);
InitTimersSafe();
bool success = SetPinFrequencySafe(pwm, f);

D9_Out; //Настраиваем пин D9 на выход

// пины кнопок
D4_In; //Настраиваем пин D4 на вход
D5_In; //Настраиваем пин D5 на вход
D6_In; //Настраиваем пин D6 на вход

case 2:
Serial.println(«mode: PWM Duty %»); // Ширина импульса
break;

case 3:
Serial.println(«mode: Save Data»); // Сохранение параметров
break;

case 4:
Serial.println(«mode: Load Data»); // загрузка параметров
break;

case 2: // если режим 2 (регулировка скважности), то прибавляем сважность
duty++;
if (duty>255) duty=255;
success = SetPinFrequencySafe(pwm, f);
pwmWrite(pwm, duty);
Serial.println(duty);
break;

case 3:
WriteEEPROM_Long(0, f);
WriteEEPROM_Byte(10, duty);
Serial.println(«Data saved!»);
break;

case 4:
f = ReadEEPROM_Long(0);
duty = ReadEEPROM_Byte(10);
success = SetPinFrequencySafe(pwm, f);
pwmWrite(pwm, duty);

Источник

Очень простой генератор из ардуины.

ТехнарьКто

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

Читайте также:  Регулировка частоты видеокарты nvidia

Генератор частоты от 1 Гц до 8 000 000 Гц. Вырабатывает однополярный меандр со скважность 2. По русски это значит длительность импульса и длительность паузы между импульсами равны, а сигнал имеет прямоугольную форму.

Вопрос: Что такое генератор?
Ответ: Это устройство которое преобразует энергию источника питания в энергию выходных электрических импульсов заданной частоты и формы.

Вопрос: А мне то это зачем?
Ответ: Очень хороший вопрос, ответ на который Вы вряд ли найдете в интернете. Вы сможете проверить работоспособность усилителя. Проверить диапазон воспроизводимых усилителем частот. Проверить целостность динамика, даже без усилителя с помощью только этого генератора. Найти обрыв силового провода в проводке, обрыв телефонного провода, обрыв в электропроводке автомобиля. Правда кроме генератора нужен будет еще и детектор сигнала. Для поиска обрыва проводки генератор присоединяют к исследуемой линии, а частота генератора лежит в пределах килогерца. Поиск производится детектором. По резкому уменьшения громкости звука, определяется место разрыва. Генератор позволит проверить работу микропроцессора ардуины или PIC контроллера при использовании его как тактового. Можно сделать звуковую сирену с тональностью сигнала который Вам нравиться. Сделать передатчик с использованием генератора в качестве задающего несущую частоту. Настроить фильтр низкой частоты, настроить фильтр высокой частоты, настроить режекторный фильтр. Фильтры используют в цветомузыке, в каскадах радиоприемников, в импульсной технике для защиты от помех, для очистки информационного сигнала от сопутствующих работе помех. Подать сигнал низкой частоты на устройства работающие на шине I2C и посмотреть обмен информации хоть с помощью вольтметра. С помощью генератора можно измерять индуктивность и емкость с очень высокой точностью. Да и вообще сейчас трудно назвать современное электронное устройство в котором нет генератора и для быстрой проверки работы устройства не требовался бы внешний генератор, хотя бы такой. Кроме этого при использовании генератора показывающего все знаки неизменно возникнет вопрос, почему во всех генераторах частота немного отличается. Поэтому этот генератор позволит заинтересоваться вопросом точности и что же такое ppm, ppb зачем и когда это нужно.

Теперь Вы знаете зачем нужен генератор. Практические примеры использования выходят за рамки данного сообщения. Здесь только про создание самого генератора.

Читайте также:  Регулировка карбюратора ирбис альфа

Итак схема.

Я же обещал очень простой генератор

На выход сигнала можно смело цеплять динамик для проверки его работоспособности. Без конденсатора можно сразу подавать сигнал на микроконтроллеры и электронные схемы у которых 5V питание.

Из терминала послать требуемую частоту в герцах. Только цифру. В ответ в терминал будет выведена частота в герцах, а на выходе генератора появиться сигнал с частотой как в терминале.
Пример для частоты 200 кГц. В терминале набирал 200000

Пример для частоты 8 мегагерц. В терминале набирал 8000000

Меандр кривой из за малого частотного диапазона осциллографа. Но это совершенно другой вопрос.

Надо понимать, что выводимая в терминале частота будет отличаться от реальной. Выводимая в терминале частота была бы при идеальном кварце работающем точно на частоте 16 000 000 Гц. У ардуин такого не бывает. Если кому интересно, то могу написать о кварцевых резонаторах. Для понимания, почему в ардуино не бывает точных кварцев.

Источник

Делаем генератор частоты на базе Ардуино микроконтроллера

Генератор частоты на Ардуино – это прибор для преобразования электрической энергии источника постоянного тока.

Что такое генератор

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

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

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

Такой прибор, как генератор сигналов на Ардуино, легко сделать в домашних условиях. Основа конструкции – микроконтроллер Arduino.

Где применяется генератор частоты на Ардуино

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

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

Читайте также:  Форд фиеста регулировка клапанов видео

Частотные измерители могут изменять выходные сигналы с определенным скачком.

Поэтому устройства с такими свойствами играют немаловажную роль в конструировании электронных приборов. Перечислим другие значительные функции Ардуино-генератора:

Комплектующие

Для создания генератора прямоугольных импульсов на Ардуино понадобятся следующие компоненты:

Также во втором случае можно собрать устройство на основе AD9850 DDS модуля и 1,8-дюймового TFT-дисплея (контроллер ST7735).

В таком случае схема соединения будет выглядеть так:

Код для Ардуино

Листинг программы для проекта «генератор импульсов с регулировкой частоты на Ардуино» для первого нашего варианта:

Во втором случае программный код будет таким (позаимствовано на просторах интернета):

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

Для второго варианта нужны следующие технические спецификации:

И библиотеки для Arduino:

Сборка генератора

Алгоритм сборки проекта Arduino-генератор импульсов:

Настройка

Если по окончанию загрузки пользователь получил сообщение «Done uploading», значит, генератор сигналов на Ардуино с дисплеем готов к работе. Следующий шаг – соединение модулей.

Выходные сигнальные волны снимаются с контактов генератора:

После сборочных работ следует тщательно проверить, правильно ли подключены все контакты. Если все правильно подключено – подаем питание в устройство из электросети.

По истечению пары секунд на дисплее загорится стандартное значение частоты – 10 кГц. Значение можно изменить в любое время – для этого в листинге выше запрограммированы кнопки вверх, вниз, влево и вправо.

Проверка работы

В первом случае после конструирования должен получиться стандартный мотор-редуктор Ардуино синусоидальных и прямоугольных волновых сигналов, диапазон которых регулируется от до 40 МГц.

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

Во втором случае итоговое решение будет выглядеть так:

Кроме того, перед переносом программы, указанной в разделе «Программное обеспечение», нужно проверить правильность кода с помощью компилирования.

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

Источник