资讯详情

android 蓝牙控制继电器——单片机控制端

我从来没有写过多少博客,所以我发布了一个相对简单的小例子我以前做过的) android 通过wifi实现通用遥控器 中拆分的小案例):

android客户通过蓝牙协议控制继电器(想控制其他东西,自己设计)

图示:

27065a765f75b94a37c8545782f122dd.png

今晚先说硬件电路和单片机。

最小单片机系统板和外围电路,这个电路很简单(注意继电器的连接),不要做太多介绍。

单片机端程序(串口使用蓝牙模块):

/***********************************************************

C52与蓝牙连接:

单片机程序需要一次复位 有效接收

注意设置比特

蓝牙模块连接

蓝牙 51

RXD TXD

TXD RXD

unsigned int tmp=0x00; //初始tmp定义 主要表明tmp接收16进制数据

unsigned char tmp 表明tmp接收的字符型数据

其他连线:

P接一个继电器

串口采用蓝牙模块

***********************************************************/

#include #include unsigned int tmp=0x00; //初始tmp定义 主要表明tmp接收16进制数据

//unsigned char tmp 表明tmp接收的字符数据

sbit ji=P1^1; //继电器

void init(); //初始化

void delay(unsigned int i); ///延迟函数

void ctrl(); ///根据接收信息进行操作

void main()

{

init();

ji=0;

while(1)

{

//RI 用于接收和发送的标志位RI==1.表示收到了 RI==0,表示出去了

if(RI==1) // 是否有数据

{

tmp = SBUF;

RI = 0; // 临时存储接收到的数据

ctrl(); ///根据接收信息进行操作

}

}

}

void init() //初始化

{

TMOD = 0x20; // 定时器1在8位自动重载模式下工作, 用于产生波特率

TH1=0xFD;

TL1=0xFD; // 波特率9600

SCON = 0x50; // 设置串行口工作方式1 允许接收相当于以下三句话

PCON =0x00; // 波特率不翻倍

TR1 = 1;

EA=1;

ES=1;

}

void delay(unsigned int i)

{

unsigned char j;

for(i; i > 0; i--)

for(j = 200; j > 0; j--) ;

}

void ctrl() //

{

switch(tmp) //已经把SBUF中数据赋值tmp中了

{

case 0x01:

ji=1; ///接收字符1,继电器0关

break;

case 0x02: ///接收字符2,继电器打开

ji=0;

break;

default:

break;

}

}

标签: 控制继电器串口es220继电器tr50继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台