# Arduino多通道RCPWM **Repository Path**: giao2199/arduino-multi-channel---rcpwm ## Basic Information - **Project Name**: Arduino多通道RCPWM - **Description**: 基于ATMEGA328P的多通道RC PWM发生器,用于舵机控制。占用TIMER1。 - **Primary Language**: C++ - **License**: CC-BY-SA-4.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-21 - **Last Updated**: 2023-04-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Arduino多通道RCPWM #### 介绍 基于ATMEGA328P的多通道RC PWM发生器,用于舵机控制。占用TIMER1。 #### 基本原理 众所周知,Arduino 328P的TIMER1只有3个时间,即溢出、比较器A和B,想要在这个基础上实现多通道的RCPWM输出是较为困难的。 但是328P却没有限制比较器A、B事件在同一周期内的多次触发,因此如果在一周期的开始打开端口,并在需要的时候关闭是可能的,无非是取决于关几次而已。那么可以这样子做: 1. 对PWM数据进行排序,按小到大排列,这样小数据先触发; 2. 对近似的PWM数据筛选,将接近的PWM合并为同时关断,防止比较器A、B来不及触发; 3. 按照数据从小到大依次关断对应通道,实现低电平输出。 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. 下载本代码 2. 将CPP和H文件加到你的Arduino项目中 3. 调用RCPWM[]数组