ШИМ генератор с магазин ICstation
Фото генератора.
Что может этот генератор? Взглянем на параметры.
- Рабочее напряжение: 3.3 - 30V;
- Частота генерации: 1Hz - 150KHz;
- Точность генерации частоты: 2%;
- Мощность нагрузки: 5…30mА;
- Амплитуда выходного сигнала равна напряжению питания;
- Температура окружающей среды: -20 … +70 °С.
На дисплей можно вывести только 2 числа по 3 цифры в каждом. В нижней строке отображается скважность ШИМ в процентах, а в верхней – частота. Частота выводится на дисплей по следующим правилам:
- XXX, шаг в 1Гц, в диапазоне 1 – 999Гц;
- X.XX, шаг в 0.01кГц, в диапазоне 1.00 - 9.99кГц;
- XX.X, шаг в 0.1кГц; в диапазоне 10.0 - 99.9кГц;
- X.X.X, шаг в 1 кГц; в диапазоне 100 - 150 кГц.
Дисплей управляется микросхемой HT1621B, дисплей универсальный, на нем имеются символы, необходимые для построения термометра, гигрометра, вольтметра, амперметра и ваттметра, но в нашем случае они не используются. Дисплей имеет яркую синюю подсветку. К слову, замечу, что дисплей на моем генераторе оказался потертым, будто его откуда-то сняли.
Главной микросхемой генератора является микроконтроллер STM8S003F3P6. И поскольку этот микроконтроллер имеет EEPROM память, то настройки сохраняются при выключении.
Управлять генератором можно двумя способами: кнопками и по UART. С кнопками всё ясно, одна пара кнопок управляет частотой, вторая скважностью. А вот с UART всё намного интереснее. Обмен данными должен происходить со следующими параметрами:
- 9600 bps Data bits: 8
- Stop bit: 1
- Check digit: none
- Flow control: none
Для того, чтобы установить частоту генерации, необходимо отправить частоту так, как она отображается на дисплее прибавив перед значением частоты букву F. Например, для установки частоты в 100 Гц необходимо отправить F100, для 105 кГц - F1.0.5, для 10.5 кГц - F10.5 и так далее.
Для установки скважности необходимо отправить трехзначное число скважности добавив перед ним букву D . Например, D050, D100, D001.
Что бы прочитать установленные параметры, необходимо отправить слово "read".
Если отправлена верная команда, то генератор ответит DOWN, если ошибочная – FALL. Но есть одно НО, я так и не смог настроить работу с генератором через UART.
Я решил проверить генератор при помощи логического анализатора. Вот что получилось.
Частота 1 Гц, скважность 1%. Как видим погрешность пока небольшая.
Частота 1 Гц, скважность 50%.
Частота 1 Гц, скважность 99%.
Частота 1 кГц, скважность 1%.
Частота 1 кГц, скважность 50%.
Частота 1 кГц, скважность 99%. Тут мы видим, что при установленных 99% скважности на самом деле заполнение составляет 100%.
Частота 1 кГц, скважность 91%. Я начал снижать скважность, и вплоть до 92% заполнение составляло 100%, и только при 91% ситуация исправляется.
Частота 50 кГц, скважность 1%. Как видим что тут всего 0,2% вместо 1%.
Частота 50 кГц, скважность 50%. Здесь отличается на 1%.
Частота 50 кГц, скважность 99%. И тут снова отклонение -1%.
Частота 100 кГц, скважность 1%. А вот тут ещё ничего нет.
Частота 100 кГц, скважность 2%. А при 2% сигнал появляется, но на самом деле заполнение 0,4%.
Частота 100 кГц, скважность 50%. Отклонение почти -2%.
Частота 100 кГц, скважность 99%. И тут почти -1%.
Частота 150 кГц, скважность 1%. Снова нет сигнала.
Частота 150 Гц, скважность 3%. И появляется сигнал только при 3%, но заполнение составляет 0,6%.
Частота 150 кГц, скважность 50%. Но на самом деле заполнение 46,5%, на -3,5% уже отличие.
Частота 150 кГц, скважность 99%. И тут погрешность, но всего 1,5%.
Выборка достаточно грубая, но на этом исследования не закончены. Я решил измерить скважность при различном заполнении (шаг 5%) и на различных частотах (шаг 25000 Гц) и занести их в таблицу.
Верхняя строка содержит частоту, я выбрал шаг в 25 кГц, левый столбец – установленная скважность, в остальных ячейках замеренная скважность.
В этой таблице указана разница в установленной и замеренной скважности.
Чем выше частота, тем больше отклонение между установленной и замеренной скважностями. Так же замеренная скважность всегда ниже установленной, но строгой закономерности в отклонении не наблюдается.
Так же я проверил соответствие установленной и замеренной частоты. Результат так же занес в таблицу.
Заявленная точность в 2% от установленной частоты соблюдается.
В итоге, если вам необходимо установить точные значения генерации, то проверяйте установленные параметры перед использованием генератора. Если же необходимо просто управлять яркостью светодиода или скоростью вращения двигателя, то этот генератор без проблем подойдет для этих задач.
Комментарии (16) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]
[Автор]
Сразу увидел "что дисплей на моем генераторе оказался потертым, будто его откуда-то сняли." - ан нет - оказалась пленочка наклеена как на мобильниках, ногтиком подцепил и он новый. Хотя догадаться сложно - уж больно впритык обрезпна.
Вот код
SoftwareSerial Serial2(5,6);
void setup(){
Serial.begin(9600);
Serial2.begin(9600);
}
void loop () {
if (Serial.available()){
char* buf = new char[Serial.available()+1];
char* p_buf = buf;
while(Serial.available())
*p_buf++= (char)Serial.read();
Serial2.write(buf);
delete []buf;}
if(Serial2.available()>0){
char z=Serial2.read();
Serial.print(z);
}
}
В мониторе компьютера/телефона набираем код переключения, и делаем ретрансляцию на модуль
[Автор]
Что же тогда такое ШИМ-генератор?