ujfjiaihc 发表于 2022-3-2 10:19
楼主你好,我是新手,碰到了一个问题。我用的是FS i6控及对应的sbus接收,功能正常。全部准备妥当,也做了取反器的情况下,串口读到的是乱码是为什么呢?(如图)望解答,谢谢。Hitomi21 发表于 2022-3-4 15:14
试图看懂:dizzy:WenK 发表于 2022-3-8 12:39
太棒了,正好需要arduino接受sbushan8680713 发表于 2022-3-13 09:37
学习 学习方的馒头 发表于 2022-3-13 13:57
感谢楼主分享green_forg 发表于 2022-3-17 18:35
好评!好评!好评!好评!好评!好评!好评!好评!好评!gkyywhui 发表于 2022-3-20 16:24
谢谢分享!!!学习了!6qdn 发表于 2022-3-22 21:54
来学习一下。coolrun 发表于 2022-3-22 23:24
感谢楼主tigerzq 发表于 2022-3-23 07:52
本帖最后由 wzzzq 于 2021-2-20 20:57 编辑 市面上有很多sbus接收机,它只有一根线就可以实现很多通道的通信,其本质利用了串口通讯的原理,所以arduino也可以解码sbus有很多优点,特别是应用于单片机开发的时候 传统的PWM接收机一根线对应一个通道,要用n个通道就要n根线,而sbus用n个通道(n<=遥控支持的最大通道数)只要1根线,只要一根线!而这还不是最大的优点,有人会说PPM也是一根线,arduino也能解码呀.但是,PPM和PWM读取方式都是pulseIn读取,具体说就是计时脉冲的时间. 那就是说,读取一个1500微秒的脉冲就要1500微秒反观sbus,sbus的原理是串口通信,信号会被放到arduino的缓冲区,arduino按固定周期读取时只要读取一下信号即可,时间缩短了很多很多 但是sbus的缺点就是读取复杂,不像PWM只要计时就行一 硬件准备 你需要一个sbus接收机,可以是天地飞的,也可以是futaba的,等等,是sbus都行 还需要一个取反器,线若干前面我做的机甲大师就用了这种接收机,非常好用 但是sbus的输出信号是反的,所以我们需要一个反向电路来对它取反 淘宝上也有很多这样的取反器,自己做也可以,按照上面的图就可以 然后按照图上接线 将5V,GND接好,这里很简单,然后要接信号线 信号线取反完以后连接至arduino的RX,如果用的是mega这种有很多RX的主板,建议连接到RX2,RX3这样的串口,不要连到RX 因为arduino的RX是用于和电脑串口通讯的,串口监视器就是依靠RX0,TX0实现的,如果连到RX的话会导致串口监视器不可用,会给调试带来大麻烦 如果用的是UNO,NANO这样的主板,那就没有办法 ,只能用RX0了,这时烧程序的时候要把RX0拔掉,烧好了再插回去,否则会烧不上去二 软件我们需要一个sbus的库,有国外的大佬已经开发好了这个库,我们只要用就行了,省去了很多程序(文末下载库) 实例代码: 如果用的是Serial n,就把sbus.begin(Serial);改成sbus.begin(Serialn); tigerzq,如果您要查看本帖隐藏内容请回复在void dataReceived(ChannelData channels) 对数据操作 可以写一个这样的函数 void dataReceived(ChannelData channels) { // do something with the data for(int i=1;i<=16;i++) { rcsig=channels.data; } rcsig=channels.channels.channel17; rcsig=channels.channels.channel18; } 复制代码 这样就存起来了数据可以再打印一下数据,看一下对不对 你会发现sbus的精确度和时间优势令人赞叹最后,希望本文能帮到你,有问题可以回帖