当前位置:文档之家› 全自动遥控、光控窗帘设计说明书

全自动遥控、光控窗帘设计说明书

“迪瑞杯”第五届吉林省大学生机械创新设计大赛“幸福生活——今天和明天”全自动窗帘设计说明书参赛者:QCR WZC ZLG RJX SSD指导教师: ZZY CWL二〇一二年四月前言如今伴随着信息时代的到来,人们的生活水平日益提高,方便、快捷、自动、智能成为时代的主题,在现代家庭生活环境中,居家环境早已不仅仅局限在物理空间上,人们更为关注的是一个安全、方便、舒适的环境,自动化的电子产品自然成为人们追求的目标。

窗是人心灵的眼睛,窗帘则是眼睛上的睫毛,窗帘在防止强光射入,帮助人们合理的安排时间,美化室内环境,保证个人隐私,增强居家环境方面有重要作用。

随着人们生活节奏的加快,窗帘的自动化随之产生。

本产品是在学习机械原理及设计和电工学等知识,通过实践,观察,思考的基础上设计而成的,且人性化的思想理念也体现了科学技术在人们生活中的作用。

通过几个月的努力,使我们深刻感受到了电学,力学,加工工艺,理论知识与实践相结合在机械设计中的重要性。

加强和拓展这些方面的知识对机械学子们是很有必要的。

由于我们能力、经验以及一些方面的知识有限,许多地方未能深入的研究,如有误漏之处,敬请评委老师批评指正。

编者目录薄窗帘一、薄窗帘传动示意图 (1)二、工作原理 (1)三、执行机构选定 (2)四、电动机的选择 (3)五、轴的设计计算 (5)六、轴承的校核 (7)七、轴承端盖与轴承支座 (8)八、螺栓及连接件的选择与校核 (9)九、薄窗帘电路图 (10)十、电学原件引脚的功能及使用方法 (10)十一、程序流程图 (14)十二、ATmega16单片机程序 (14)厚窗帘一、厚窗帘传动示意图 (20)二、工作原理 (21)三、执行机构选定 (21)四、电动机的选择 (23)五、轴承的选择与校核 (25)六、厚窗帘电路图 (26)七、程序流程图 (26)八、电学原件引脚的功能及使用方法 (28)九、AT89C2051程序 (29)主要创新点 (32)推广应用价值 (32)设计小结 (33)参考文献 (34)薄窗帘薄窗帘属于智能窗帘,能够根据光照的强度,调节窗帘的自动升降。

一、薄窗帘传动示意图:二、工作原理:1、由于光照强度的不同,光敏电阻的阻值发生变化;2、光敏电阻输出不同的电压,通过A/D转换器将模拟信号转化成数字信号;3、将数字信号输入单片机(mega16),通过单片机内部程序,控制L298电机驱动板与74LS595显示驱动板;4、电动机驱动板,控制电动机正反转起停,从而实现根据光的强弱不同完成自动升降与数码管的显示;1三、执行机构选定:1、连接装置方案一:键连接由于键连接在细轴上不宜加工,费用高,所以不适合;方案二:过盈配合连接由于过盈配合不宜拆装,所以不适合;方案三:销连接由于容易加工,费用低,拆装方便,所以适合:实物如图2、传动装置方案一:摩擦传动由于摩擦阻力大,对加工表面粗糙度要求高,易磨损,所以不适合;方案二:滑动轴承由于滑动轴承摩擦力较滚动轴承大,润滑维护较滚动轴承复杂,所以不适合;2方案三:滚动轴承由于启动阻力小,润滑维护方便,在市场上容易买到,所以适合;四、电动机的选择原始数据1、确定电动机转速卷筒工作转速n w=60*1000V/πD=60*1000*0.03/3.14*35=16.4 r/min2、电动机容量选择:①工作所需P w =FV=mgV=1*9.8*0.03=0.294wm———窗帘重量V———窗帘上升速度②电动机输出功率P d3考虑滚动轴承的功率损耗,电动机的输出功率为P d=P w/η aηa为从电动机到工作机主动轴之间的总效率,即ηa=η12η1为滚动轴承的传动效率0.98P d=FV/η a=mgv/η a=1*9.8*0.03/0.98 2=0.31w根据计算得到的数据选电动机型号:37JB555电动机数据:型号:37JB555电压:DC12V空载转速: 20r/min负载转速:16r/min输出扭矩:23kg.cm输出功率:4.8w重量:0.35kg外形尺寸:4五、轴的设计计算1、轴上的功率P,转速n和转矩TP1= P d*η1=4.8*0.98=4.7 wn w= n=16r/minT=9.55*10 3* P1/ n w=9.55*10 3*4.7*10 -3/16=2.8 N·m2、卷筒受力分析F—薄窗帘和卷筒的总重力约为15 N5根据《简明机械零件设计手册》初选0基本游隙组,标准精度等级的单列深沟球轴承6002,基本尺寸为d*D*B=15mm*25mm*10mm3、轴的结构设计:轴的材料选择聚甲醛①1段和5段要安装轴承,根据轴承的基本数据d*D*B=15mm*25mm*10mm,则取d1=15mmd5=15mm,L1= L5=12 mm ;3段为薄窗帘位置,d3=35 mm,L3=958 mm6②1段与三段之间和3段与5段之间为轴肩,取该段d=30 mm,L=10 mm ;③确定轴上圆角和倒角尺寸取轴端倒角为2*45度,轴肩处的倒角可按R1.6—R2适当选取4、求轴上的载荷(6002型的B=10 mm,所以两轴承之间支点的距离为988 mm)5、按弯扭合成应力校核轴的强度根据图可知中间点截面为危险截面,轴的计算应力为бca=M/W=3705/0.1*35 3=0.86MPa.前已选定轴的材料为聚甲醛,由《机械设计计算手册》查的[б-1]=69MPa,бca<[б-1],故安全。

六、轴承的校核初选0基本游隙组,标准精度等级的单列深沟球轴承6002,基本7尺寸为d*D*B=15mm*25mm*10mm额定工作时间L h=365*24*20=175200h径向力F r =7.5N .则Fr1 = 7.5N Fr2 = 7.5NPr1=Pr2=7.5N则=(10 6/60/12)*(5.6*10 3/7.5) 3=5.8*10 11h>L h=175200h故合格.七、轴承端盖与轴承支座。

如图所示:8八、螺栓及连接件的选择与校核1、螺栓将塑料的轴承支座固定顶板上,由于需要的螺栓比较细,粗选螺栓直径d=4mm,螺栓选用材料Q235,性能等级为3.6,,бB=300 MPa . 螺栓的预紧力F0=2100N,螺栓的相对刚度C b/(C b+C n)=0.3,螺栓所受拉力F=30N。

计算螺栓的总拉力F2=F0+ C b*F/(C b+C n)=2100+0.3*30=2109N校核螺栓直径d>=(4*1.3 F2/π/бB) 1/2=(4*1.3*2109/3.14/300) 1/2=3.4mm<=4mm故合格92、塑料轴承支座较薄,容易产生塑性变形,故需要校核。

轴承支座的强度取[б]=140MPa.螺帽的D=6mm,螺栓的d=4mm.校核连接件强度бca=F2/(π*D 2/4 +π*d 2/4)= 2109/(3.14*36 2/4 +3.14*4 2/4)=134.3MPa<=140 MPa故合格。

九、薄窗帘电路图十、电学原件引脚的功能及使用方法1、74LS595显示驱动板各个引脚的功能:10Q1~7 是并行数据输出口,即储寄存器的数据输出口Q7' 串行输出口,其应该接SPI总线的MISO接口STcp 存储寄存器的时钟脉冲输入口SHcp 移位寄存器的时钟脉冲输入口OE低电平有效输出使能端MR低电平有效芯片复位端Ds 串行数据输入端2、ATmega16 的引脚功能及使用方法11引脚说明VCC 数字电路的电源GND 地端口A(PA7..PA0) 端口A 做为A/D 转换器的模拟输入端。

端口A 为8 位双向I/O 口,具有可编程的内部上拉电阻。

其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。

作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。

在复位过程中,即使系统时钟还未起振,端口A 处于高阻状态。

端口B(PB7..PB0) 端口B 为8 位双向I/O 口,具有可编程的内部上拉电阻。

其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。

作为输入使用时,若11 内部上拉电阻使能,端口被外部电路拉低时将输出电流。

在复位过程中,即使系统时钟还未起振,端口B 处于高阻状态。

端口B 也可以用做其他不同的特殊功能端口C(PC7..PC0) 端口C 为8 位双向I/O 口,具有可编程的内部上拉电阻。

其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。

作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。

在复位过程中,即使系统时钟还未起振,端口C 处于高阻状态。

如果JTAG接口使能,即使复位出现引脚PC5(TDI)、PC3(TMS)与PC2(TCK)的上拉电阻被激活。

端口C 也可以用做其他不同的特殊功能端口D(PD7..PD0) 端口D 为8 位双向I/O 口,具有可编程的内部上拉电阻。

其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。

作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。

在复位过程中,即使系统时钟还未起振,端口D 处于高阻状态。

端口D 也可以用做其他不同的特殊功能RESET 复位输入引脚。

持续时间超过最小门限时间的低电平将引起系统复位。

门限时间见P36Table 15。

持续时间小于门限间的脉冲不能保证可靠复位。

XTAL1 反向振荡放大器与片内时钟操作电路的输入端。

XTAL2 反向振荡放大器的输出端。

AVCC AVCC是端口A与A/D转换器的电源。

不使用ADC时,该引脚应直接与VCC 连接。

使用ADC时应通过一个低通滤波器与VCC 连接。

AREF A/D 的模拟基准输入引脚。

122、L298电机驱动板各个引脚的功能:L298有Mutiwatt15和PowerSO20两种封装MW.15的1、15和PowerSO的2、19用法一样,SEN1、SEN2 分别为两个H桥的电流反馈脚,不用时可以直接接地(MW.15)2、3=(PowerSO)4、5,1Y1、1Y2输出端,与对κ淙攵耍ㄈ?A1与1Y1)同逻辑4=6,VS驱动电压,最小值须比输入的低电平电压高2.5v5、7=7、9,1A1、1A2输入端,TTL电平兼容6、11=8、14,1EN、2EN使能端,低电平禁止输出8=1、10、11、20,GND地9=12,Vss逻辑电源,4.5--7V10、12=13、15,2A1、2A2 输入端,TTL电平兼容13、14=16、17,2Y1、2Y2 输出端3、18,NC,无连接13十一、程序流程图十二、ATmega16单片机程序#include <iom16v.h>#include <macros.h>#include "595.h"unsigned char cs=0,num_1=0,num_2=0,num_3=0,num_4=0;unsigned int AD_value=0,NUM_1=0,NUM_2=0,NUM_3=0;unsigned char AD[4]={0};char t=0;int T=0;int AD_compare=0;/*******************************************函数名称: port_init功能: 端口初始化/********************************************/void port_init(void){PORTA = 0x00;14DDRA = 0x00;PORTB = 0x00;DDRB = 0x00;PORTC = 0x00; //m103 output onlyDDRC = 0x00;PORTD = 0x00;DDRD = 0x00;}/*******************************************函数名称: timer0_init功能: 定时器0初始化/********************************************///TIMER0 initialize - prescale:64// WGM: Normal// desired value: 1KHz// actual value: 1.003KHz (0.3%)void timer0_init(void){TCCR0 = 0x00; //stopTCNT0 = 0x45; //set countOCR0 = 0xbb; //set compareTCCR0 = 0x03; //start timer}/*******************************************函数名称: timer0_ovf_isr功能: 定时器0溢出中断/********************************************/#pragma interrupt_handler timer0_ovf_isr:10void timer0_ovf_isr(void){TCNT0 = 0x45; //reload counter valuet++;if(t>=55){t=0;if(T<AD_compare){PORTA=0X18;T++;}if(T>AD_compare){PORTA=0X14;15T--;}if(T==AD_compare){PORTA=0X00;}}cs++;if(cs==1) //进行第一个数码管的显示{write595(tab_num[num_4]) ;PORTB = CS[0];}if(cs==2) //进行第二个数码管的显示{write595(tab_num[num_3]) ;PORTB = CS[1];}if(cs==3) //进行第三个数码管的显示{write595(tab_num[num_2]) ;PORTB = CS[2];}if(cs==4) //进行第四个数码管的显示{write595(tab_num[num_1]) ;PORTB = CS[3];cs = 0;//片选标志位清零}}/*******************************************函数名称: adc_init功能: AD初始化/********************************************///ADC initialize// Conversion time: 138uSvoid adc_init(void){ADCSR = 0x00; //disable adcADMUX = 0x40; //select adc input portACSR = 0x80;16ADCSR = 0xef;}/*******************************************函数名称: adc_isr/********************************************/#pragma interrupt_handler adc_isr:15void adc_isr(void){AD_value=ADCL; //先读取低八位AD_value|=(int)ADCH << 8; //再读取高二位if(AD_value>999)AD_value=999;num_1 = (AD_value/1000); //取出AD转换的千位NUM_1 = num_1*1000;num_2 =((AD_value-NUM_1)/100); //取出AD转换的百位NUM_2=num_2*100;num_3=((AD_value-NUM_1-NUM_2)/10); //取出AD转换的十位NUM_3=num_3*10;num_4=(AD_value-NUM_1-NUM_2-NUM_3); //取出AD转换的个位AD_compare=NUM_2;AD_value=999-AD_value;num_1 = (AD_value/1000); //取出AD转换的千位NUM_1 = num_1*1000;num_2 =((AD_value-NUM_1)/100); //取出AD转换的百位NUM_2=num_2*100;num_3=((AD_value-NUM_1-NUM_2)/10); //取出AD转换的十位NUM_3=num_3*10;num_4=(AD_value-NUM_1-NUM_2-NUM_3); //取出AD转换的个位}/*******************************************函数名称: init_devices/********************************************/void init_devices(void){//stop errant interrupts until set upCLI(); //disable all interruptsport_init();timer0_init();adc_init();MCUCR = 0x00;GICR = 0x00;TIMSK = 0x01; //timer interrupt sourcesSEI(); //re-enable interrupts17}void delay(void){int a =0,b=0;for(a=0;a<30000;a++)for(b=0;b<90;b++);}/*******************************************函数名称: main()/********************************************/void main(void){init_devices();//设备初始化DDRA = 0X04; //将PA口作为输入DDRD = 0Xff; //将PD口作为输出,用作数码管的显示DDRB = 0Xff; //将PB口作为输出,用作数码管的显示T=0;t=0;while(1){}}#include <iom16v.h>#define uint unsigned int#define uchar unsigned char#define SET_DATA() PORTD |=(1<<4);DDRD |= (1<<4);#define SET_SH_CP() PORTD |=(1<<6);DDRD |= (1<<6);#define SET_ST_CP() PORTD |=(1<<5);DDRD |= (1<<5);#define CLR_DATA() PORTD &=~(1<<4);DDRD |= (1<<4);#define CLR_SH_CP() PORTD &=~(1<<6);DDRD |= (1<<6);#define CLR_ST_CP() PORTD &=~(1<<5);DDRD |= (1<<5);18unsigned char tab_num[12] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x80};//0,1,2,3,4,5,6,7,8,9,.,unsigned char CS[4] = {0b00011010,0b00011001,0b00010011,0b00001011};//分别为选通四个不同的数码管void write595(unsigned char c){uchar num,i=0,j=0;for(j=0;j<9;j++){num=c;for(i=0;i<8;i++){CLR_SH_CP();if(num&0x80){ SET_DATA()}else{ CLR_DATA()}SET_SH_CP();num<<=1;}}CLR_ST_CP();SET_ST_CP();}19厚窗帘厚窗帘属于遥控型,可根据人的需求,只需要按动遥控器上的按钮,即可实现打开与关闭。

相关主题