历史上的今天
返回首页

历史上的今天

今天是:2024年10月12日(星期六)

正在发生

2021年10月12日 | 基于51单片机的智能自动窗帘设计

2021-10-12 来源:eefocus

一.硬件方案

自动窗帘系统硬件电路主要由感光检测电路,时钟电路,电机控制电路、按键电路等外围电路构成。该设计则主要讨论了自动窗帘系统的设计过程,硬件电路设计,软件调试过程。通过本系统可以实现通过光照强度实现窗帘开关自动控制、定时控制和手动控制等不同的控制方式。


硬件主要采用51单片机+LCD1602液晶显示+DS18B20+光敏电阻+DS1302+步进电机+ULN2003设计而成;如图:

二.设计功能

(1)液晶实时显示目前的状态,包括温度、模式、光线强度、时间等信息。

(2)智能窗帘可以根据外界光线的强弱来进行自动开关窗户,光线强弱的上下限可以按键调节。

(3)具有手动控制功能,可以手动开/关窗户。

(4)可以通过按键设定窗帘开启的时间和自行关闭的时间。

(5)可以通过按键设定温度值,低于或者高于设定值进行开/关窗户。


三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:

(2)Protues仿真图如下:

(3)PCB图如下:

四.软件设计

(1)程序流程图

(2)主程序源码


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

// 主函数

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

void main()

{

uchar light;

LcdInit(); // 执行液晶初始化

DS1302_Init(); // 时钟芯片的初始化

LcdShowInit(); // 液晶显示内容的初始化

if(DS1302_Read_Byte(0x81)>=128) // 判断时钟芯片是否正在运行

{

DS1302_Write_Time(); // 如果没有,则初始化一个时间

}

while(1)

{

DS1302_Read_Time(); // 获取当前时钟芯片的时间,存在数组time_buf中

FlashTime(); // 刷新时间显示


light=Get_ADC0832(); // 读取光照强度

light=light/2.5; // 缩小光照检测结果(在0-99)

if(light>99) // 如果大于99

light=99; // 则依然保持99

LcdGotoXY(1,14); // 光标定位

LcdPrintNum(light); // 显示光照强度

KeyScanf1(); // 按键扫描(时间的设置)

KeyScanf2(); // 按键扫描(阈值的设置)

KeyScanf3(); // 按键扫描(模式切换)

/*手动控制模式*/

if(gMode==1)

{

if(KeyDown_P==0) // 如果关窗帘键按下了

{

if(Led_P==0) // 如果窗帘当前是打开的

{

Close(); // 则光标窗帘

}

}

if(KeyUp_P==0) // 如果开窗帘键按下了

{

if(Led_P==1) // 如果窗帘当前是关闭的

{

Open(); // 则打开窗帘

}

}

}

/*时间控制模式*/

if(gMode==2)

{

if((TimeBuff[4]==CloseHour)&&(TimeBuff[5]==CloseMinute)&&(TimeBuff[6]==0)) // 如果到了关窗帘的时间

{

if(Led_P==0) // 如果窗帘当前是打开的

{

Close(); // 则光标窗帘

}

}

if((TimeBuff[4]==OpenHour)&&(TimeBuff[5]==OpenMinute)&&(TimeBuff[6]==0)) // 如果到了开窗帘的时间

{

if(Led_P==1) // 如果窗帘当前是关闭的

{

Open(); // 则打开窗帘

}

}

}

/*光线控制模式*/

if(gMode==3)

{

if(light {

if(Led_P==0) // 如果窗帘当前是打开的

{

Close(); // 则光标窗帘

}

}

else // 当前光线大于或等于设置的阈值

{

if(Led_P==1) // 如果窗帘当前是关闭的

{

Open(); // 则打开窗帘

}

}

}

DelayMs(100); // 延时0.1秒

}

}

推荐阅读

史海拾趣

Goldstar Electron Co Ltd公司的发展小趣事

对于27MHz晶体振荡器电路,网友可能会提出多种问题,以下是一些常见问题及其详细回答:

一、电路设计相关问题

  1. 如何设计一个简单的27MHz晶体振荡器电路?
    • 回答:设计一个简单的27MHz晶体振荡器电路通常包括晶体本身、两个反馈电容、一个或多个电阻以及可能的放大元件(如晶体管或集成电路中的振荡器部分)。例如,可以使用一个并联型晶体振荡器电路,其中晶体与两个电容形成谐振电路,并通过一个放大元件(如CMOS反相器)提供正反馈以维持振荡。具体设计可参考技术资料(如华强电子网)提供的电路图,并根据实际需要进行调整。
  2. 如何选择合适的反馈电容和电阻值?
    • 回答:反馈电容和电阻的选择对振荡器的稳定性和频率精度至关重要。电容值通常根据晶体的规格和所需的振荡频率来确定,而电阻值则用于限制放大器的增益,以防止振荡器过度放大并产生不稳定现象。选择时,建议参考晶体振荡器的数据手册或相关设计指南,并结合实验测试来找到最佳值。

二、电路性能相关问题

  1. 如何减少27MHz晶体振荡器的谐波失真?
    • 回答:谐波失真通常是由于电路中的非线性元件或设计不当引起的。为了减少谐波失真,可以采取以下措施:
      • 选择低谐波失真的晶体振荡器。
      • 在电路中添加低通滤波器以滤除高频谐波。
      • 优化电路设计,减少非线性元件的使用,并确保电路元件的匹配性。
  2. 如何提高27MHz晶体振荡器的频率稳定性?
    • 回答:频率稳定性受多种因素影响,包括晶体的物理特性、环境温度、电源电压波动等。提高频率稳定性的方法包括:
      • 选择高质量的晶体振荡器,确保其具有较低的频率漂移和温度系数。
      • 在电路中添加温度补偿电路,以抵消温度变化对频率的影响。
      • 使用稳定的电源电压,并在必要时添加电压稳压器。
      • 优化电路布局和接地设计,减少电磁干扰和噪声。

三、电路调试与测试相关问题

  1. 如何调试27MHz晶体振荡器电路以确保其正常工作?
    • 回答:调试晶体振荡器电路时,可以按照以下步骤进行:
      • 检查电路连接是否正确,确保所有元件都已正确安装。
      • 使用示波器观察振荡波形,确认其频率和幅度是否符合要求。
      • 调整反馈电容和电阻值,以优化振荡器的性能和稳定性。
      • 检查电源电压和电流是否稳定,并调整至推荐值。
      • 如果发现谐波失真或其他问题,根据具体情况采取相应的解决措施。
  2. 如何测试27MHz晶体振荡器的输出频率和相位噪声?
    • 回答:测试晶体振荡器的输出频率和相位噪声通常需要使用专业的测试设备,如频率计和相位噪声分析仪。测试时,将振荡器的输出连接到测试设备的输入端,并设置适当的测试参数。通过测试设备可以准确测量振荡器的输出频率和相位噪声水平,从而评估其性能是否符合要求。

四、其他常见问题

  1. 27MHz晶体振荡器适用于哪些应用场景?
    • 回答:27MHz晶体振荡器由于其较高的频率和较好的稳定性,广泛应用于无线通信、雷达系统、电子测量仪器等领域。在这些应用场景中,晶体振荡器作为时钟源或频率基准,为系统提供稳定的频率信号。
  2. 如何延长27MHz晶体振荡器的使用寿命?
    • 回答:延长晶体振荡器的使用寿命需要注意以下几点:
      • 避免在极端温度或湿度条件下使用。
      • 保持电源电压稳定,避免频繁波动。
      • 定期检查电路连接和元件状态,及时更换损坏的元件。
      • 避免机械冲击和振动对晶体振荡器的影响。
      • 选择质量可靠、性能稳定的晶体振荡器产品。
Bliley Technologies Inc公司的发展小趣事

Bliley Technologies Inc.的历史可以追溯到1930年,当时它作为Bliley压电公司成立,专注于为业余无线电市场生产石英晶体。石英晶体的精确频率控制特性使其成为无线电通信领域的理想选择。随着技术的不断进步和市场需求的扩大,Bliley很快发现其产品的潜力远不止于此。到了20世纪30年代中期,Bliley的客户和产品范围迅速扩展到新兴的军事和商业通信领域,公司也因此更名为Bliley Electric Company。这一转变标志着Bliley从一家小型压电公司成长为晶振行业的佼佼者。

GradConn Ltd公司的发展小趣事

GradConn始终将技术创新作为公司发展的核心驱动力。公司拥有一支专业的研发团队,致力于开发新型连接器和电缆组件,以满足不断变化的市场需求。同时,GradConn的所有工厂均通过了ISO 9001:2015和ISO 14001:2015等国际质量管理体系认证,确保了产品的高质量和环境友好性。这些认证不仅提升了GradConn的品牌形象,还为其在全球市场上赢得了更多客户的信任和支持。

EXCELSEMI [ EXCEL SEMICONDUCTOR INC. ]公司的发展小趣事

EXCELSEMI公司始终将品质和客户满意度放在首位。公司建立了一套完善的质量管理体系和客户服务体系,确保每一款产品都符合高标准的质量要求。同时,公司还注重与客户的沟通和反馈,不断优化产品和服务以满足客户的需求。这种品质至上、客户为本的经营理念使得EXCELSEMI在市场中赢得了良好的口碑和信任。

Dynachip Corp公司的发展小趣事

随着公司的发展,Dynachip Corp不断投入研发,取得了多项技术突破。他们不仅优化了原有的芯片技术,还成功开发出了一系列针对不同应用场景的芯片产品,如高性能计算芯片、物联网芯片等。这些多样化的产品满足了市场的不同需求,使Dynachip Corp在行业中逐渐崭露头角。

国兴(GOODSKY)公司的发展小趣事

随着公司的发展,Dynachip Corp不断投入研发,取得了多项技术突破。他们不仅优化了原有的芯片技术,还成功开发出了一系列针对不同应用场景的芯片产品,如高性能计算芯片、物联网芯片等。这些多样化的产品满足了市场的不同需求,使Dynachip Corp在行业中逐渐崭露头角。

问答坊 | AI 解惑

【讨论】s7-300模拟量(温度、压力、流量)怎么处理?

s7-300模拟量(温度、压力、流量)怎么处理?    S7-300中温度、压力及流量的输入值,这样处理为PLC可以处理的数据,并实现数值的显示???  …

查看全部问答>

【输入法】标点符号输入问题

    WINCE下如何输入单引号 \',它的值和VK_RIGHT的值是一样的,每次调用SendString发送它时都是发送向右键消息,请问各位是如何输入单引号 \' 的。    …

查看全部问答>

求串口多路复用(GSM07.10)的源代码

找了很久了,还是没有找到,没有时间自己研究协议了,听说西门子有一个WinMUX2k有源代码,不知道哪位有吗?急用,谢谢!…

查看全部问答>

数控机床开发?

开发数控机床的控制系统,用什么软件进行编写啊?用什么软件进行模拟,谢谢!…

查看全部问答>

铝线的问题

240平方的一根3芯电缆,相当于多少平方的铜线?如果长度为100米,可以运行多少安倍的电流?…

查看全部问答>

【已送】【赠送帖】毕业了送几颗申请的美信得芯片

MAX11040  2片  贴片MAX7221    2片  直插邮费自理 韵达快递  需要的坛友可以跟帖(这个是我当初申请的,后来没有用上,全新的未用,原包装) [ 本帖最后由 wanghongyang 于 2011-6-25 11:00 编辑 ]…

查看全部问答>

10KV高压感应供电,不用线圈,能用什么取电

看了网上高压取电还是用线圈,有没有办法用电容取电呢,大家聊聊 …

查看全部问答>

PSoC4 Cortex-M0开发板免费申请,分享心得赢惊喜大礼!

Cypress联合EEWORLD举行大规模的PSoC 4 ARM Cortex-M0开发板免费试用活动!将通过线上、线下、大学计划等多种渠道发放板子!分享心得,还将有机会获赠5000元RMB外加价值300美金的Oscium混合信号示波器(个税自理)、TP-Link二合一3G路由器!速来!…

查看全部问答>

提问+stm8要停产了?

stm8要停产了?,网上在一直风传! …

查看全部问答>

为什么12864绘直线一个字节只能出现一个点呢 难道论坛都没人做过?

昨天发了个问题  没人理睬  自己解决了   今天遇到了个新的   相信做过12864绘图的也遇到过 当描一个直线时    在一个字节内   连续的点不能描出来    出来的直线是8个断 ...…

查看全部问答>