
温度传感器 +放大器 在给 AD转换器
光控传感器 +放大器 在给 AD转换器
推荐放大器用 NE5534的 集成运放 电路在网上找。因为AD转换器很难接收到小的信号 ,需要放大小的信号 NE5534的 集成运放 能接受很小的信号 并进行不失真的放大。
步进电机随便
步进电机驱动器网上很好找。
设定开关窗帘的温度,当白天温度或者是日光的亮度高于某设定值时,窗帘拉开,当晚上温度或日光低于设定温度时,关窗保温。
备注:有的时候白天是阴天,日光不强将低于设定的亮度,窗帘会自动关上;但是用户并不想关窗帘,因为室外的温度却高于设定的温度,所以这时温控启动,光控是关闭着的。晚上,不论室内的光亮多大或者室内温度有多高,窗帘都是关着的。这一部分就是程序了 。
QQ469045513
先发一个接收的程序,未完结(本程序已验证通过)
#include<reg52h>
#include<intrinsh>
#define data 1000 //设置定时器1的计数周期
#define lcdfiraddr 0x80 //LCD液晶第一行首地址
#define lcdsecaddr 0xc0 //LCD液晶第二行首地址
#define uchar unsigned char
#define uint unsigned int
uchar disbuff[5]; //显示缓冲区
//#include"delayc"
//#include"clockc"
#include"nrf24l01c"
#include"lcddisplayc" //LED数码管显示函数"
#include"tongdaoc" //通道转换文件
bit tf=0;
uint msecond; //毫秒
uchar second,minute,hour; // 秒, 分 ,时
/
定时器1中断服务程序
/
ClockT()
{
msecond++;
if (msecond<1000) return;
second++;
msecond=0;
if (second<60) return;
minute++;
second=0;
if (minute<60) return;
{
hour++;
minute=0;
if(hour>=24)
{
hour=0;
}
}
}
/
定时器1中断服务函数
功能:
/
void time1_int() interrupt 3
{
ClockT(); //时钟函数
TH1=(65536-data)>>8;
TL1=(65536-data) % 256;
if(msecond%100==5)
{
tf=1;
}
}
/
初始化CPU函数
功能: 初始化定时器和各个I/O口
/
void initcpu()
{
TMOD=0X11;
TH1=(65536-data)>>8;//初始化定时时间为data
TL1=(65536-data) % 256;
ET1=1; //开启定时器1
TR1=1; //允许定时器1中断
EA=1; //开启总中断
}
/
初始化函数
/
init()
{
lcd_init(); //LCD初始化函数
wc51rr(0x01); //写 0x01 清屏
road();
initcpu(); //I/0口定义
}
/
主函数
功能: 程序的执行从这开始
/
void main(void)
{
init(); //初始化
init_NRF24L01() ;
SetRX_Mode();
while(1)
{
//----------------------主机主接收-----------------------------
if(nRF24L01_RxPacket(RxBuf))
{
updisp(RxBuf[0]);
wc51rr(lcdfiraddr+0x03); //第一行
display(disbuff);
updisp(RxBuf[1]);
wc51rr(lcdfiraddr+0x0b); //第一行
display(disbuff);
TxBuf[0]=second;
TxBuf[1]=second;
nRF24L01_TxPacket(TxBuf); // Transmit Tx buffer data
sta=SPI_Read(STATUS);
SPI_RW_Reg(WRITE_REG+STATUS,sta);
SetRX_Mode();
}
//
updisp(second);
wc51rr(lcdsecaddr+0x03); //第一行
display(disbuff);
}
}
/
主函数
功能: 程序的执行从这开始
/
/
void main(void)
{
init(); //初始化
init_NRF24L01() ;
SetRX_Mode();
while(1)
{
//----------------------主机主发送-----------------------------
updisp(second);
wc51rr(lcdsecaddr+0x03); //第一行
display(disbuff);
if(tf==1)
{
TxBuf[0]=second;
TxBuf[1]=second;
nRF24L01_TxPacket(TxBuf);
tf=0;
sta=SPI_Read(STATUS);
SPI_RW_Reg(WRITE_REG+STATUS,sta);
SetRX_Mode();
}
if(nRF24L01_RxPacket (RxBuf) )
{
updisp(RxBuf[0]);
wc51rr(lcdfiraddr+0x03); //第一行
display(disbuff);
updisp(RxBuf[1]);
wc51rr(lcdfiraddr+0x0b); //第一行
display(disbuff);
}
//
}
}
/
连接LED灯模拟温度。
本设计以AT89C51单片机为控制的核心,硬件上外加温度传感器作为检测室内温度并且采集室内温度数据的工具,以及对室内温度自动控制的作用。其中对于温度的自由设定,用户可以用按键简单直观来实现,对采集回来的数据设计中则通过LCD1602液晶显示来对环境温度的实时监控。另外为了更加有效的实现温度的调节,设计中利用LED灯模拟温度升温和降温。
温度控制模块:设计中利用LED灯模拟温度升温和降温。在设计工作时,当系统检测到环境温度对比系统中设定的极限值温度过高或过低时,系统中的单片机则控制继电器发出信号来完成系统中负载的驱动,此时系统中的报警灯则随之启动工作。通过一旦温度过低则报警灯工作来提醒使用者,一旦温度过高则蓝灯亮来模拟降温。
第1章 硬件电路分析
第11节 硬件电路概述该测温系统由五部分组成:电源模块、侦测模块、显示模块、控制模块、通讯模块。电源模块完成将200V,50Hz市电转换为稳定的直流+5V电源的任务,包含变压、整流、滤波和稳压四部分,其中稳压部分采用LM7805集成块。串口通信模块的任务是实现单片机与计算机的通信,通过软件将程序下载至单片机中进行运行调试
以上内容来自5173论文网 >
给您思路:第一,你需要使用温控元件测温,比如DS18B20温度传感器。
第二:你所需要使用的控制芯片可以选择单片机,比如STC89C55(带掉电参数保存功能)。
第三:使用数码管或者LCD1602显示您所检测的温度或者显示您所需要设置的温度范围。
第四:按键,根据你所需要的温度范围,根据按键来设置参数范围。
第五:使用定时器1或者2输出PWM波,控制可控硅(BTA06等),根据您的电流大小吧。
第七:在单片机里处理您的各类控制。大概就是如此吧。
以上就是关于基于51单片机温控光控智能窗帘智能系统设计全部的内容,包括:基于51单片机温控光控智能窗帘智能系统设计、谁有51单片机控制nrf2401做的无线智能温控系统的收法C程序!!!急急急!!!、51单片机TCE系统怎样接温控器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)