模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

1196查看 | 2回复

Arduino超简单PPM编码器可玩模拟器

[复制链接]
发表于 2022-4-16 14:02:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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));
}

电路图

Arduino超简单PPM编码器可玩模拟器 模拟器,2022-04-16,arduino,编码器,电脑 作者:漂油和尚 3100
发表于 2022-4-17 09:35:53 | 显示全部楼层
简单高效 方便实用 赞一个 Arduino超简单PPM编码器可玩模拟器 模拟器,2022-04-16,arduino,编码器,电脑 作者:twl66630 9748
回复 支持 反对

使用道具 举报

发表于 2022-4-19 09:33:53 来自手机 | 显示全部楼层
厉害厉害厉害厉害厉害
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|关于模吧|APP下载|广告报价|小黑屋|手机版|企业会员|商城入驻|联系我们|模吧 ( 冀公网安备13080502000084号 )

© 2013-2020 Moz8.com 模吧,玩出精彩!