标题:
基于51单片机的无线遥控船程序设计思路
[打印本页]
作者:
1768106
时间:
2019-3-24 15:53
标题:
基于51单片机的无线遥控船程序设计思路
说一下怎样去做一个遥控器,必须要买的东西: 2 片 STC12C5A60S2 单片机,2 个 NRF24L01 模块,一个电机驱动(如果要驱动功率较大的电机,不建议买 LN298,最好大功率一些的),两个 L7805 稳压管,1 个AMS1117-3.3 稳压芯片,两个摇杆电位器(注意有一个是要不能自动复位的,用于油门,另外一个要自动复位,用于转弯。还有一些电阻电容等,主要是用来构建一个最小单片机系统,使单片机运行起来。液晶屏不是必要的,这里我用的是 nokia5110 液晶屏,用来显示遥控车的电压和电量,当然电量不会很准确,是用单片机上的 A/D 转换器采集电池的电压,然后根据电压电量曲线得出电量的。
0.png
(46.63 KB, 下载次数: 75)
下载附件
2019-3-25 00:11 上传
单片机源程序如下:
#include <stc12c5a60s2.H>
#include <intrins.h>
#include <math.h>
#include"2_4G.h"
#include"stc12_ADC.h"
#include"stc12_pwm.h"
void delay(unsigned int k)
{
unsigned int i,j;
for(i=0;i<k;i++)
{
for(j=0;j<121;j++)
{;}
}
}
void main(void)
{
uchar RxBuf[32]={0},TxBuf[32]; // 接收的数据 数组
delay(500);
init_NRF24L01() ; //模块初始化
Init_ADC();
PWM_init();
PWM_clock(2); // PCA/PWM时钟源为定时器0的溢出
while(1)
{
SetRX_Mode(); //设置成接受模式
nRF24L01_RxPacket(RxBuf);
delay(10);
if(RxBuf[1]==0) //前进
{
up=1;
dw=0;
up1=0;
dw1=1;
PWM_start(RxBuf[2],RxBuf[3]);
}
else
{
if(RxBuf[0]==0)
{
up=1;
dw=1;
up1=1;
dw1=1;
}
else //后退
{
up=0;
dw=1;
up1=1;
dw1=0;
PWM_start(RxBuf[0],RxBuf[0]);
}
}
TxBuf[4]=(uchar)AD_av(0); //测锂电池电压
nRF24L01_TxPacket(TxBuf); //发送数据 Transmit Tx buffer data
delay(50);
}
}
复制代码
所有资料51hei提供下载:
Keil代码下载:
遥控船.rar
(137.82 KB, 下载次数: 116)
2019-3-24 15:53 上传
点击文件名下载附件
下载积分: 黑币 -5
sldprt文件:
遥控器.rar
(8.7 MB, 下载次数: 136)
2019-3-24 15:53 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
160328318
时间:
2019-3-28 17:23
谢谢楼主 好资料,51黑有你更精彩!!!
作者:
风158
时间:
2019-3-28 18:41
谢谢分享!
作者:
hellangle89
时间:
2019-3-31 01:54
楼主怎么没有原理图?
作者:
949160270
时间:
2019-4-5 11:42
赚点黑币去下载
作者:
江渚鹭鸶
时间:
2019-5-23 18:48
下载下来学习学习
作者:
这个世界会好吗
时间:
2020-3-25 16:27
感谢分享
作者:
RESEUT
时间:
2020-5-16 19:30
感谢楼主分享
作者:
sdpylee
时间:
2022-2-17 10:54
SLDPRT是什么文件?预览图里没看到.C.H文件啊!因为黑币不多,所以没舍得下载。
作者:
haokanma77
时间:
2022-5-28 21:21
感觉跟萝丽遥控器用的原件差不多
作者:
5474727
时间:
2023-7-31 01:13
多谢分想,楼主长命百岁
作者:
5474727
时间:
2023-8-14 22:17
我测了好像不能行了,怎么回事
作者:
liruoning
时间:
2023-9-9 20:18
楼主分享一下原理图呗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1