100КГц шим


Искал для себя, но думаю многим будет полезно.

Собственно по этой ссылке показано как сделать 100КГц ШИМ
http://forum.arduino.cc/index.php/topic,10537.0.html

// Link http://forum.arduino.cc/index.php/topic,10537.0.html

#include "arduino.h"

void setup()
{
  // configure hardware timer2 to generate a fast PWM on OC2B (Arduino digital pin 3)
  // set pin high on overflow, clear on compare match with OCR2B
  TCCR2A = 0x23;
  TCCR2B = 0x09;  // select timer2 clock as unscaled 16 MHz I/O clock
  OCR2A = 159;  // top/overflow value is 159 => produces a 100 kHz PWM
  pinMode(9, OUTPUT);  // enable the PWM output (you now have a PWM signal on digital pin 3)
  OCR2B = 80;  // set the PWM to 50% duty cycle
  Serial.begin(57600);
}

void loop()
{
	if(Serial.available()>0){
		if(Serial.read()=='1'){
			OCR2B++;
		}
		else{
			OCR2B--;
		}
	}
}

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


0 комментариев на «“100КГц шим”»

  1. TCCR2B = 0x09; // select timer2 clock as unscaled 16 MHz I/O clock

    0x09 это скорость ШИМ медленнее системного такта в 256 раз. Для максимальной скорости ШИМ нужно использовать TCCR2B = 0x01;
    Спасибо за код. Использовал его для ATTiny861, работает, только использовал 1 таймер (там нет второго), то есть регистры TCCR1A, TCCR1B, OCR1A, OCR1B.

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна конкурс манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение