基于32的遥控设计与制作

  之前运用PS2实现遥控,这次通过自己设计并制作了一个原创遥控。

  所需材料:STM32F103C8、摇杆、OLED 显示器、NRF24L01、电池、导线。



引脚使用:


附上代码:

#include "stm32f10x.h"
#include "adc.h"  
#include "led.h"
#include "key.h"
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "spi.h"
#include "24l01.h"

int main(void)
{
    u8 t0,t1,tmp_buf[3],i;  	
	u16 adcx0,adcx1,adcx2,adcx3;
    delay_init();	    	   
	NVIC_Configuration(); 		
  	SystemInit();
	NRF24L01_Init();    		
    Adc_Init();		 
  	LEDA_GPIO_Config();
	KEY_Init();       
	OLED_Init();			
	t0=' ';
	
	for(i=0;i<3;i++)
       tmp_buf[i]=i;
	while(NRF24L01_Check())
	{
		OLED_Clear();
	    OLED_ShowString(6,4,"0.96' OLED TEST",16);
    	OLED_ShowString(0,0,"Error",16);  
	}
	OLED_Clear();
    OLED_ShowString(0,0,"OK",16);  
	NRF24L01_TX_Mode(); 
	delay_ms(1000);
  	while (1)
  	{
		t1=KEY_Scan(0);	
		switch(t1)
		{				 
			case KEY0_PRES:
				GPIO_ResetBits(GPIOC, GPIO_Pin_13);
				break;
			case KEY1_PRES:
				GPIO_SetBits(GPIOC, GPIO_Pin_13);
				break;
			default:
				delay_ms(10);	
		} 
		adcx0=Get_Adc_Average(ADC_Channel_0,10);
		adcx1=Get_Adc_Average(ADC_Channel_1,10);
		adcx2=Get_Adc_Average(ADC_Channel_2,10);
		adcx3=Get_Adc_Average(ADC_Channel_3,10);
		if(adcx1>=3000)			
			tmp_buf[0]=128;
		else 
			tmp_buf[0]=0;
		
		OLED_ShowNum(32,0,adcx0,4,16);//显示ASCII字符的码值
		OLED_ShowNum(72,0,adcx1,4,16);//显示ASCII字符的码值
		OLED_ShowNum(0,2,adcx2,4,16);//显示ASCII字符的码值
		OLED_ShowNum(64,2,adcx3,4,16);//显示ASCII字符的码值
//		OLED_ShowChar(48,6,t0,16);//显示ASCII字符	   
//		t0++;
//		if(t0>'~')t=' ';
		while(NRF24L01_TxPacket(tmp_buf)!=TX_OK)
		{
	        OLED_ShowString(0,6,"Failed",16);  
		}
        OLED_ShowString(0,6,"Succeed",16);  

  	}
}




1 引言 温度采集系统所采集的温度通常通过RS485、CAN总线通信方式传输至上位机,但这种方式维护较困难,不利于工业现场生产;而无线通信GPRS技术传输距离长,通信可靠稳定,但设计复杂、成本昂贵。这里采用工业级内置硬件链路层协议的低成本单芯片nRF24L01型无线收发器件实现系统间的无线通信,完成无线信号的接收、显示及报警功能。 2 nRF24L01简介 nRF24L01是一款工业级内置硬件链路层协议的低成本无线收发器。该器件工作于2.4 GHz全球开放ISM频段,内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合增强型ShockBurst技术,其输出功率和通信频道可通过程序配置。拥有ShockBurst和Enhanced ShockBurst两种数据传输模式。可直接与单片机I/O连接,外接元件数目少。nRF24L01功耗低,以-6 dBm的功率发射时,工作电流仅9 mA;接收时,工作电流仅12.3 mA,多种低功率工作模式(掉电和空闲模式)更利于节能设计。 3 系统硬件设计 4 系统软件设计 5 结束语   本文介绍了nRF24L01和STC12LE5408组成的无线温度采集系统。采用高度集成的nRF24L01器件。大大简化了系统硬件和软件设计,减小了体积,提高了系统工作的可靠性。采用新一代增强型8051单片机STC12LE5408降低了系统成本,缩短了开发时间。实践证明该系统设计简单,成本低廉,通信可靠,运行稳定,性能可靠,具有较高的实用价值。 详情请下载附件参考
评论 52
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值