博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
arduino 驱动电调
阅读量:4680 次
发布时间:2019-06-09

本文共 815 字,大约阅读时间需要 2 分钟。

#include 
#define PPMPIN 7byte ppm=1; //0-9byte count=0;void setup() { // put your setup code here, to run once: pinMode(PPMPIN,OUTPUT); Serial.begin(9600); Timer1.initialize(100);// 设置定时器中断时间,单位微秒,此处为1秒 Timer1.attachInterrupt( timerIsr ); // 打开定时器中断}void loop() { // put your main code here, to run repeatedly: while(Serial.available()){ char c= Serial.read(); if(c>='0' && c<='9'){ ppm=((byte)c) - 38; Serial.println(ppm); } }}//定时器中断处理函数void timerIsr(){ if(count>200)count=0; if(count<=ppm){ digitalWrite(PPMPIN,HIGH); }else{ digitalWrite(PPMPIN,LOW); } count++;}
View Code

采用TimeOne组件,这个通过T/C定时触发中断处理, 设置100微秒,每次中断累加1,直到200,这样产生的50HZ的PWM,控制比较参数ppm可以调节脉款

电调低油门是0.7ms高油门是1.7ms

 

可以设置ppm1,ppm2,ppm3等多个输出,

转载于:https://www.cnblogs.com/wdfrog/p/5229631.html

你可能感兴趣的文章
阻止重复提交
查看>>
设计模式之创建型工厂模式
查看>>
HTML5判断设备在线离线及监听网络状态变化例子
查看>>
CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedChangeListener冲突
查看>>
间谍网络(tarjan缩点)
查看>>
hdu 1394 Minimum Inversion Number
查看>>
CSS3 动画
查看>>
记住的小知识点
查看>>
系统设计
查看>>
matlab运行过程中出现找不到指定模块问题解决
查看>>
java JNI开发
查看>>
linux网络编程之socket(十四):基于UDP协议的网络程序
查看>>
输出有序数组的中两个元素差值为指定值diff的两个元素
查看>>
Verilog实现同步FIFO
查看>>
APACHE支持静态化
查看>>
redis数据类型的使用和介绍
查看>>
(C语言)共用体union的用法举例
查看>>
Linux监控本机当前状态命令
查看>>
Python输出&输入
查看>>
重新认识Attributes.add
查看>>