|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 漂油和尚 于 2022-4-17 16:35 编辑
一块Arduino + 两个遥杆,用PPMEncoder库,十多行代码就能实现PPM编码输出。
使用SmartPropoPlus,通过电脑声卡就能玩FPVFreerider
SmartPropoPlus地址:
https://sourceforge.net/projects/smartpropoplus/
完整代码(arduino-1.8.3 编译):
/*
漂油和尚 2022-04-16
这是一个应用PPMEncoder库实现四通道PPM输出的代码
可增加到八通
可以通过声卡用来玩模拟器
https://github.com/schinken/PPMEncoder 应用库地址
*/
#include "PPMEncoder.h" //调用PPM输出库,默认8通道
#define OUTPUT_PIN 9 //定义Arduino第9脚为PPM输出
int ch1,ch2,ch3,ch4; //声明4个通道变量
void setup()
{
Serial.begin(115200); //串口通信,修改PPM最高、最低量后删除或注释掉
ppmEncoder.begin(OUTPUT_PIN); //PPM输出
}
void loop()
{
//将数据通过串口输出,写入后实测4个通道最高、最低值,然后修改PPM最高、最低量,删除注释掉后重新下载到单片机
Serial.print("\t");Serial.print(analogRead(A0));
Serial.print("\t");Serial.print(analogRead(A1));
Serial.print("\t");Serial.print(analogRead(A2));
Serial.print("\t");Serial.println(analogRead(A3));
// 读取4个通道值
ch1 = analogRead(A0);
ch2 = analogRead(A1);
ch3 = analogRead(A2);
ch4 = analogRead(A3);
//把摇杆0 - 1023 的值转换为 0 - 50 以PPM编码方式输出
ppmEncoder.setChannelPercent(0, map(ch1, 0, 1023, 0, 50)); //修改自己的电位器最高、最低数值
ppmEncoder.setChannelPercent(1, map(ch2, 0, 1023, 0, 50));
ppmEncoder.setChannelPercent(2, map(ch3, 0, 1023, 0, 50));
ppmEncoder.setChannelPercent(3, map(ch4, 0, 1023, 0, 50));
}
|
-
电路图
| |