Главная страница
Навигация по странице:

  • ИТОГОВОЕ ПРАКТИЧЕСКОЕ ЗАДАНИЕ по дисциплине « Проектная деятельность »

  • ФИО студента Ярматов Ягшимурат Жумамуратович Направление подготовки

  • Москва 2023 ШИМ СИГНАЛ

  • } Рассмотренный пример меняет яркость светодиода в зависимости от положения рукоятки потенциометра. Особенности Arduino Nano

  • Таймер Пины Частота Разрядность

  • Особенности Wemos Mini

  • Разрядность

  • ИПЗ проект Ярматов. Я. Российский государственный социальный университет итоговое практическое задание по дисциплине Проектная деятельность


    Скачать 304.71 Kb.
    НазваниеРоссийский государственный социальный университет итоговое практическое задание по дисциплине Проектная деятельность
    Дата18.05.2023
    Размер304.71 Kb.
    Формат файлаdocx
    Имя файлаИПЗ проект Ярматов. Я.docx
    ТипДокументы
    #1142336






    Российский государственный социальный университет




    ИТОГОВОЕ ПРАКТИЧЕСКОЕ ЗАДАНИЕ

    по дисциплине «Проектная деятельность»


    1. Какой командой осуществляется формирование ШИМ-сигнала?

    2. Какая разрядность ШИМ-преобразования?

    (тема практического задания)


    ФИО студента

    Ярматов Ягшимурат Жумамуратович

    Направление подготовки

    Информационные системы и технологии в экономической сфере

    Группа

    ДО-ИСТ-Б-01-З-2022-А






















    Москва 2023

    ШИМ СИГНАЛ




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


    Можно ли добиться плавного управления цифровым сигналом? Можно! Представьте себе вентилятор, вращающийся на полной мощности, напряжение постоянное. Представим теперь, что секунду напряжение подаётся, и секунду – нет, и так продолжается “по кругу”. Вентилятор начнёт крутиться в два раза медленнее, но мы скорее всего будем замечать моменты включения и выключения, особенно если вентилятор маленький и быстро останавливается. Теперь давайте включать напряжение на 0.5 секунды, а на остальные 1.5 секунды – выключать. Вентилятор будет крутиться со скоростью 25% от максимальной. Мы с вами смогли представить так называемый ШИМ сигнал, широтно-импульсную

    модуляцию:


    С лампочкой накаливания оно тоже будет работать, она ведь весьма инертна, но вот со светодиодом мы будем видеть, как он включается и выключается, потому что он практически не имеет задержки включения/выключения. Что же делать? Всё очень просто, поднять частоту. В мысленном эксперименте у нас был период 2 секунды, что есть 0.5 Гц. А теперь представьте себе такой сигнал с частотой скажем 1000 Гц. Или 25’000 Гц (25 кГц). Теперь роль играет инертность глаза, он не заметит вспышек на такой частоте, для него это будет просто уменьшение яркости.

    Задача решена! Изменяя так называемое “заполнение” ШИМ сигнала можно менять “суммарное” (интегрированное) напряжение за некоторый период. Чем больше заполнение ШИМ, тем выше напряжение. Но не выше напряжения,которое мы “ШИМим”:



    При помощи ШИМ сигнала можно даже модулировать сложные аналоговые сигналы, например – синусоиду. На картинке ниже показан ШИМ (снизу) и этот же ШИМ после фильтров

    Вот таким образом кстати и работают инвертеры DC-AC. Возвращаясь к свойствам ШИМ сигнала, их всего два: частота (frequency) и заполнение (duty), с ними мы разобрались. Давайте перейдём к генерации ШИМ при помощи Arduino.

    ШИМ пины




    Взглянем на распиновку популярных плат Arduino Nano и Wemos Mini:





    Пины, на которых можно запустить ШИМ сигнал стандартными средствами Arduino, помечены как PWM:

    • На Arduino Nano есть 6 таких пинов. Дело в том, что ШИМ сигнал генерируется отдельными аппаратными блоками (таймерами), поэтому их количество ограничено. В то же время генерация ШИМ на повышенной частоте не нагружает микроконтроллер, сигнал генерируется самостоятельно.

    • На Wemos Mini можно запустить ШИМ на любом пине, кроме GPIO16. Здесь генерация ШИМ реализована программно, поэтому работает на любом пине, но использование одновременно нескольких пинов на повышенной частоте будет тормозить работу микроконтроллера.



    Включаем ШИМ




    Для генерации ШИМ у нас есть готовая функция 

    analogWrite(pin, duty)

    :

    • pin – PWM пин (см. распиновку выше). Нумерация пинов такая же, как в уроке про цифровые пины.

    • duty – заполнение ШИМ сигнала. По умолчанию имеет разрядность 8 бит, то есть принимает значение 0.. 255Примечание: у esp8266 на версии ядра до 3.0 разрядность была 10 бит, то есть 0.. 1023.


    Совместим эти знания с прошлым уроком и попробуем менять яркость светодиода, подключенного через резистор к пину D3 (Arduino Nano). Потенциометр подключен к пину A0:

    void setup() {

    }

    void loop() {

    // 3,1023/4 = 255 - перевели диапазон

    analogWrite(3, analogRead(0) / 4);

    }

    Рассмотренный пример меняет яркость светодиода в зависимости от положения рукоятки потенциометра.

    Особенности Arduino Nano




    Стандартные параметры ШИМ сигнала:

    Таймер

    Пины

    Частота

    Разрядность

    Timer 0

    D5 и D6

    976 Гц

    8 бит (0.. 255)

    Timer 1

    D9 и D10

    488 Гц

    8 бит (0.. 255)

    Timer 2

    D3 и D11

    488 Гц

    8 бит (0.. 255)



    Особенности Wemos Mini




    Частота ШИМ по умолчанию 1 кГц.

    • Частоту можно настроить в 

    analogWriteFreq(100.. 40000 Гц)

    Разрядность ШИМ по умолчанию 8 бит (0.. 255) на версиях ядра 3.x. На ранних версиях – 10 бит (0.. 1023). Скажем спасибо индусам за совместимость.

    • Разрядность можно настроить в 

    analogWriteResolution(4...16 бит)


    написать администратору сайта