Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Введение Arduino PWM

Arduino Mega 2560 имеет 15 контактов, которые могут быть использованы для вывода ШИМ. Обычно вы делаете это с помощью команды analogWrite (), тем не менее, вы можете получить доступ к Atmel регистрирует непосредственно для более точного управления ШИМ на Arduino в том числе изменение типа, диапазон и частоту модуляции ШИМ ширины импульса.

Какие Arduino Mega контакты карта, в которой регистрируется в микроконтроллер ATMEL?

В следующей таблице приведены пин-код Arduino и соответствующий регистр для управления рабочего цикла

Arduino Pin

 Register

2

OCR3B

3

OCR3C

4

OCR4C

5

OCR3A

6

OCR4A

7

OCR4B

8

OCR4C

9

OCR2B

10

OCR2A

11

OCR1A

12

OCR1B

13

OCR0A

44

OCR5C

45

OCR5B

46

OCR5A

Как мы можем использовать эту информацию в регистрах PWM?

Очень просто, мы можем использовать регистр, чтобы установить цикл вместо команды analogWrite. Использование регистра немного быстрее.

Сначала мы устанавливаем пин для вывода и использовать analogWrite команду для инициализации PWM

pinMode(2,OUTPUT);
analogWrite(2,1);

//Теперь мы можем изменить цикл, используя только регистр
OCR3B = 128;
OCR3B = 4;

//И так далее

Как изменить частоту и диапазон Arduino PWM?

Одним из наиболее раздражающих аспектов нативных Arduino команд ШИМ, что частота ШИМ устанавливается в значение, которое слышно. Это очень раздражает, как она производит неприятный шум при работе постоянного тока или шаговыми двигателями с помощью ШИМ.

Мы должны смотреть на управляющие регистры счетчика таймера. Они управляют тип, диапазон и частоту ШИМ, генерируемого Arduino. Пожалуйста, смотрите раздел 17.9 в техническом описании. Об этом свидетельствует приведенный ниже код. Обратите внимание, что регистры управления 4, разделы А и Б будет эффект PWM на всех OCR4n пинах, смотри таблицу выше.

sbi(TCCR4B, CS40);
cbi(TCCR4B, CS41);
cbi(TCCR4B, CS42);

sbi(TCCR4B, WGM43);
sbi(TCCR4B, WGM42);
sbi(TCCR4A, WGM41);
cbi(TCCR4A, WGM40);

ICR4 = 400;

В 4 утверждения, относящиеся к битам WGM контролировать режим работы ШИМ. Мы установили ее в режим 14, который является быстрый ШИМ с IC используется в качестве максимума для счетчика. Биты CS относятся к выбору часов, смотрите таблицу 17-6 в техническом описании. Мы не выбран ни один, что предварительное деление частоты соответствует частоте 16МГц нативного тактового сигнала Arduino.

Фактическая частота ШИМ является функцией этих параметров и последняя запись, входной регистр захвата. Установка этого параметра 400 приводит к частоте ШИМ на Arduino Mega штифт 16МГц / 400 = 47304 Гц, или, возможно, в два раза меньше! Цикл затем изменяется путем установки OCR 4 A или B до некоторого значения от 0 до 400 .

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

Обратите внимание, что не все в режиме ШИМ доступны на всех частотах.