没有合适的资源?快使用搜索试试~ 我知道了~
大创项目分享-基于单片机的智能窗帘的研究与设计
需积分: 2 0 下载量 81 浏览量
2024-01-26
11:13:00
上传
评论
收藏 38KB DOCX 举报
温馨提示
试读
12页
大创项目分享-基于单片机的智能窗帘的研究与设计 下面开始说这个项目把。这个智能窗帘要完成的功能也比较简单,就是有手动控制模式和自动控制模式,手动通过红外遥控器实现,自动就是通过光敏电阻测光强度来自动调整窗帘位置,这个项目比较适合用上下升降的窗帘。在手动模式下,只能通过红外遥控控制,但是光强等其它一些参数还是会测量显示;自动模式下,就是先测光强,然后更设定阈值进行比较,然后调整窗帘升降,阈值可以通过按键或者遥控器设置。
资源推荐
资源详情
资源评论
大创项目分享-基于单片机的智能窗帘的研究与设计
基于单片机的智能窗帘的研究与设计 这是一个很老也很简单的项目了,当时大二寻找题目申请大创的时候,
还是个连 51 单片机都才学一般的菜鸟,总怕自己最后做不出来,大创结题不了(事实证明,想要结题还
是很容易的,毕竟学校也不想让你毕不了业),所以一直在找哪种名字听起来比较高级,实际比较简单的
题目,于是就找到了这个题目。
一开始是想用 51 单片机做的,毕竟网上资料也比较多,但是很快就发现,其实 51 单片机的市场
应用已经太久了,比较老了,既然学校有经费资助,于是我就想从头开始学性能更好,资源更加多的 STM32
单片机了,因为之前学过 51 了,所以在学习 32 时概念理解上会比较快,比较容易上手,其实去学后会发
现在库函数的帮助下,32 用起来不会比 51 难很多,我当时也是直接买了正点的 mini 板开始自学,后来
参加电设也用上了,所以还是比较值的,不过我觉得学任何东西还是要有目标的去学,比如说要完成一个
什么功能,一个什么项目这种,不能拿来视频就开始看,虽然随便一个视频可能都是你没学过的,但是没
有项目来督促或则说激励你,要么就会学不下去,要么学完很快就忘了,我学习 51 就是这样,自己买了
开发板开始学,看完视频感觉自己开发板已经掌握的差不多了就搁那不管了,到申请大创项目时,我脑子
里也没有一个基本的程序思路。以后想深入学习下 matlab,也是想先找几个项目开始学,目标是完成项目,
所以就要先学项目所需要的一些功能。
下面开始说这个项目把。这个智能窗帘要完成的功能也比较简单,就是有手动控制模式和自动控制
模式,手动通过红外遥控器实现,自动就是通过光敏电阻测光强度来自动调整窗帘位置,这个项目比较适
合用上下升降的窗帘。在手动模式下,只能通过红外遥控控制,但是光强等其它一些参数还是会测量显示;
自动模式下,就是先测光强,然后更设定阈值进行比较,然后调整窗帘升降,阈值可以通过按键或者遥控
器设置。TFT-LCD 屏幕的显示界面如下,界面其实是可以优化一下的,比较懒就没去弄。
然后验证功能我用的是28BYJ-48步进电机,但是单片机直接驱动不了,需要一个驱动,我用的是ULN2003,
演示的时候还是搭了一个模型的,不过已经被我拆了,没有照片了。
贴个主函数吧,完整的工程我用百度云分享。
我 MDK 里是有打注释的,不过一复制到外面就乱码了,变量含义我截图放一下,其他不清楚就下载工程
看一下吧
主函数代码如下:
顺便说一下我编整个程序的思路,可以看到我设置了很多标志位或者变量,因为我从显示界面开
始编写的,有时候也会从按键开始,然后期间每用到一个参数或需要判断的标志就定义一个变量,然后显
示界面跟按键写完后,然后根据设置的需要的变量去编写这些参数来源的代码,如光强度通过 ADC 读取光
敏电阻两端电压换算而来,然后再慢慢把用到的变量的来源补充完整,整个程序就慢慢成形了,其他再修
修补补就好了。先写显示的代码其实是为了后面写代码过程中可以将一些参数暂时显示出来,这样方便找
错,或验证程序运行是否正确。
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "remote.h"
#include "rtc.h"
#include "stdio.h"
#include "adc.h"
#include "key.h"
#include "motor.h"
#include "ds18b20.h"
#define Left 0
#define Right 1
************************************±äÁ¿¶¨Òå************************************//
u8 Remote_scan; //ºìÍâɨÃè·µ»Ø¼üÖµ
u8 Remote_Cmd=0; //0Ϊ×Ô¶¯Ä£Ê½£¬1ΪºìÍâÒ£¿Øģʽ
u8 Remote_Left_Right; //0 left 1 right
u8* Remote_Key_Str;
u8 Time_Record=0; //
u8 Motor_Update=1;
u8 Motor_CW_Cmd=1;
u8 Motor_CCW_Cmd=1;
u8 Key_Scan_Cmd=1;
u8 Key_Scan;
u8 RTC_Sec=0; //RTC Ãë¸üÐÂ
//u8 LCD_dir=1;
u8 LCD_Display_Update=1; //LCD ¸üÐÂÏÔʾ
u8 LCD_Display_Page=0; //LCDÏÔʾҳÃæ
u8 LCD_Display_Line=1; //LCDÏÔʾҳÃæ
u8 LCD_Clear_Old=0;
u8 LCD_Clear_New=0;
u8 Temp_Light_Get_Cmd=1;
float Light_voltage; //ADC»»ËãµçѹºóÖ
float Light_Intensity=0; //0-100 ¹âÇ¿¶È
u8 Light_HighLimit=35; //µÚ¶þÒ³¹âÇ¿ÉÏÏÞ
u8 Light_LowLimit=30; //µÚ¶þÒ³¹âÇ¿ÏÂÏÞ
short DS18B20_Temperature; //18B20Ëù²âζÈ
u8 Temperature_HighLimit=30;//µÚ¶þҳζÈÉÏÏÞ
u8 Temperature_LowLimit=10; //µÚ¶þҳζÈÏÂÏÞ
u8 LCD_Str[30]; //ÏÔʾ×Ö·ûÔÝ´æÊý×é
u8 Motor_Opendegree=0; //´°Á±¿ªºÏ³Ì¶È
//************************************º¯Êý¶¨Òå************************************//
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
delay_init(); //ÑÓʱº¯Êý³õʼ»¯
uart_init(9600); //´®¿Ú³õʼ»¯Îª9600
LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú
KEY_Init();
Adc_Init();
Moto_Init();
Remote_Init();
Motor_Locate(100,2000); // ÉèÖà ´°Á±³õ ʼλÖÃ
LCD_Init();
LCD_Display_Dir(1);
POINT_COLOR=BLUE;
LCD_DrawRectangle(20,20,300,220); //»·½¿ò x1 y1; x2 y2
// while(DS18B20_Init())
// {
// LCD_ShowString(40,100,60,12,12,"DS18B20 error!!!");
// delay_ms(500);
// }
while(RTC_Init()) / RTC³õʼ»¯£¬ÉèÖÿªÊ¼Ê±¼ä
{
LCD_ShowString(20,20,60,12,12,"error!!!");
delay_ms(800);
}
LCD_ShowString(30,180,300,16,16,"real time : - - ");
LCD_ShowString(30,200,300,16,16,"real time : : : ");
POINT_COLOR=BLUE;
LCD_ShowNum(126,180,calendar.w_year,4,16);
LCD_ShowNum(166,180,calendar.w_month,2,16);
LCD_ShowNum(190,180,calendar.w_date,2,16);
剩余11页未读,继续阅读
资源评论
smartsmile2012
- 粉丝: 863
- 资源: 83
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 3122080306 邹子轩 实验报告二.docx
- 基于STM32 NUCLEO板设计彩色LED照明灯(纯cubeMX开发)(大赛作品,文档完整,可直接运行)
- 发那科工业机器人保养大全
- Sphere.h
- REMD固有时间尺度分解信号分量可视化(Matlab完整源码和数据)
- 嵌入式系统双单片机STC89C52+STC15W104多功能学习板电路图可扩展 适用于单片机初学者和教学
- 基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)大赛作品
- XILINXFPGA源码基于Spartan3火龙刀系列FPGA开发板VGA测试例程
- Java聊天室的设计与实现【尚学堂·百战程序员】
- python中matplotlib教程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功