全自动遥控光控窗帘设计说明书Word下载.docx
《全自动遥控光控窗帘设计说明书Word下载.docx》由会员分享,可在线阅读,更多相关《全自动遥控光控窗帘设计说明书Word下载.docx(34页珍藏版)》请在冰豆网上搜索。
![全自动遥控光控窗帘设计说明书Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/3/cb18da61-8fe3-4e74-9803-e109255d314d/cb18da61-8fe3-4e74-9803-e109255d314d1.gif)
设计小结……………………………………………………………………………………..……..33
参考文献…………………………………………………………………………………………….34
薄窗帘属于智能窗帘,能够根据光照的强度,调节窗帘的自动升降。
一、薄窗帘传动示意图:
二、工作原理:
1、由于光照强度的不同,光敏电阻的阻值发生变化;
2、光敏电阻输出不同的电压,通过A/D转换器将模拟信号转化成数字信号;
3、将数字信号输入单片机(mega16),通过单片机内部程序,控制L298电机驱动板与74LS595显示驱动板;
4、电动机驱动板,控制电动机正反转起停,从而实现根据光的强弱不同完成自动升降与数码管的显示;
1
三、执行机构选定:
1、连接装置
方案一:
键连接
由于键连接在细轴上不宜加工,费用高,所以不适合;
方案二:
过盈配合连接
由于过盈配合不宜拆装,所以不适合;
方案三:
销连接
由于容易加工,费用低,拆装方便,所以适合:
实物如图
2、传动装置
摩擦传动
由于摩擦阻力大,对加工表面粗糙度要求高,易磨损,所以不适合;
滑动轴承
由于滑动轴承摩擦力较滚动轴承大,润滑维护较滚动轴承复杂,所以不适合;
2
滚动轴承
由于启动阻力小,润滑维护方便,在市场上容易买到,所以适合;
四、电动机的选择
原始数据
窗帘高度h(m)
窗帘质量m(kg)
滚筒直径D(mm)
上升速度V(m/s)
1
35
0.03
1、确定电动机转速
卷筒工作转速
nw=60*1000V/πD
=60*1000*0.03/3.14*35=16.4r/min
2、电动机容量选择:
①工作所需Pw=FV
=mgV
=1*9.8*0.03
=0.294w
m———窗帘重量
V———窗帘上升速度
②电动机输出功率Pd
3
考虑滚动轴承的功率损耗,电动机的输出功率为
Pd=Pw/ηa
ηa为从电动机到工作机主动轴之间的总效率,即
ηa=η12
η1为滚动轴承的传动效率0.98
Pd=FV/ηa
=mgv/ηa
=1*9.8*0.03/0.982
=0.31w
根据计算得到的数据选电动机型号:
37JB555
电动机数据:
型号:
电压:
DC12V
空载转速:
20r/min
负载转速:
16r/min
输出扭矩:
23kg.cm
输出功率:
4.8w
重量:
0.35kg
外形尺寸:
4
五、轴的设计计算
1、轴上的功率P,转速n和转矩T
P1=Pd*η1
=4.8*0.98
=4.7w
nw=n=16r/min
T=9.55*103*P1/nw
=9.55*103*4.7*10-3/16
=2.8N·
m
2、卷筒受力分析
F—薄窗帘和卷筒的总重力约为15N
5
根据《简明机械零件设计手册》初选0基本游隙组,标准精度等级
的单列深沟球轴承6002,基本尺寸为
d*D*B=15mm*25mm*10mm
3、轴的结构设计:
轴的材料选择聚甲醛
①1段和5段要安装轴承,根据轴承的基本数据
d*D*B=15mm*25mm*10mm,则取d1=15mm
d5=15mm,L1=L5=12mm;
3段为薄窗帘位置,d3=35mm,L3=958mm
6
21段与三段之间和3段与5段之间为轴肩,取该段
d=30mm,L=10mm;
3确定轴上圆角和倒角尺寸
取轴端倒角为2*45度,轴肩处的倒角可按R1.6—R2适当选取
4、求轴上的载荷(6002型的B=10mm,所以两轴承之间支点的距离为988mm)
载荷
垂直面V
支反力
FNV1=7.5N
FNV2=7.5N
弯矩
MV=3705N·
mm
总弯矩
M=MV=3705N·
扭矩
T=1660N·
5、按弯扭合成应力校核轴的强度
根据图可知中间点截面为危险截面,轴的计算应力为
бca=M/W=3705/0.1*353=0.86MPa.
前已选定轴的材料为聚甲醛,由《机械设计计算手册》查的
[б-1]=69MPa,бca<
[б-1],故安全。
六、轴承的校核
初选0基本游隙组,标准精度等级的单列深沟球轴承6002,基本
7
尺寸为
额定工作时间Lh=365*24*20=175200h
径向力Fr=7.5N.
垂直面V
支反力F
则Fr1=7.5NFr2=7.5N
则Pr1=Pr2=7.5N
=(106/60/12)*(5.6*103/7.5)3=5.8*1011h>
Lh=175200h
故合格.
七、轴承端盖与轴承支座。
如图所示:
8
八、螺栓及连接件的选择与校核
1、螺栓将塑料的轴承支座固定顶板上,由于需要的螺栓比较细,粗选螺栓直径d=4mm,螺栓选用材料Q235,性能等级为3.6,,бB=300MPa.螺栓的预紧力F0=2100N,螺栓的相对刚度Cb/(Cb+Cn)=0.3,螺栓所受拉力F=30N。
计算螺栓的总拉力
F2=F0+Cb*F/(Cb+Cn)=2100+0.3*30=2109N
校核螺栓直径
d>
=(4*1.3F2/π/бB)1/2
=(4*1.3*2109/3.14/300)1/2=3.4mm<
=4mm
故合格
9
2、塑料轴承支座较薄,容易产生塑性变形,故需要校核。
轴承支座的强度取[б]=140MPa.螺帽的D=6mm,螺栓的d=4mm.
校核连接件强度
бca=F2/(π*D2/4+π*d2/4)
=2109/(3.14*362/4+3.14*42/4)=134.3MPa<
=140MPa
故合格。
九、薄窗帘电路图
十、电学原件引脚的功能及使用方法
1、74LS595显示驱动板各个引脚的功能:
10
Q1~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口,具有可编程的内部上拉电阻。
作为输入使用时,若
内部上拉电阻使能,端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口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复位输入引脚。
持续时间超过最小门限时间的低电平将引起系统复位。
门限时间见P36Table15。
持续时间小于门限间的脉冲不能保证可靠复位。
XTAL1反向振荡放大器与片内时钟操作电路的输入端。
XTAL2反向振荡放大器的输出端。
AVCCAVCC是端口A与A/D转换器的电源。
不使用ADC时,该引脚应直接与VCC连接。
使用ADC时应通过一个低通滤波器与VCC连接。
AREFA/D的模拟基准输入引脚。
12
2、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.5v
5、7=7、9,1A1、1A2输入端,TTL电平兼容
6、11=8、14,1EN、2EN使能端,低电平禁止输出
8=1、10、11、20,GND地9=12,Vss逻辑电源,4.5--7V
10、12=13、15,2A1、2A2输入端,TTL电平兼容
13、14=16、17,2Y1、2Y2输出端3、18,NC,无连接
13
十一、程序流程图
十二、ATmega16单片机程序
#include<
iom16v.h>
macros.h>
#include"
595.h"
unsignedcharcs=0,num_1=0,num_2=0,num_3=0,num_4=0;
unsignedintAD_value=0,NUM_1=0,NUM_2=0,NUM_3=0;
unsignedcharAD[4]={0};
chart=0;
intT=0;
intAD_compare=0;
/*******************************************
函数名称:
port_init
功能:
端口初始化
/********************************************/
voidport_init(void)
{
PORTA=0x00;
14
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
//m103outputonly
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
}
timer0_init
定时器0初始化
//TIMER0initialize-prescale:
64
//WGM:
Normal
//desiredvalue:
1KHz
//actualvalue:
1.003KHz(0.3%)
voidtimer0_init(void)
TCCR0=0x00;
//stop
TCNT0=0x45;
//setcount
OCR0=0xbb;
//setcompare
TCCR0=0x03;
//starttimer
timer0_ovf_isr
定时器0溢出中断
#pragmainterrupt_handlertimer0_ovf_isr:
voidtimer0_ovf_isr(void)
//reloadcountervalue
t++;
if(t>
=55)
{
t=0;
if(T<
AD_compare)
PORTA=0X18;
T++;
}
if(T>
AD_compare)
PORTA=0X14;
15
T--;
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初始化
//ADCinitialize
//Conversiontime:
138uS
voidadc_init(void)
ADCSR=0x00;
//disableadc
ADMUX=0x40;
//selectadcinputport
ACSR=0x80;
16
ADCSR=0xef;
adc_isr
#pragmainterrupt_handleradc_isr:
voidadc_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;
init_devices
voidinit_devices(void)
//stoperrantinterruptsuntilsetup
CLI();
//disableallinterrupts
port_init();
timer0_init();
adc_init();
MCUCR=0x00;
GICR=0x00;
TIMSK=0x01;
//timerinterruptsources
SEI();
//re-enableinterrupts
17
voiddelay(void)
inta=0,b=0;
for(a=0;
a<
30000;
a++)
for(b=0;
b<
90;
b++);
main()
voidmain(void)
init_devices();
//设备初始化
DDRA=0X04;
//将PA口作为输入
DDRD=0Xff;
//将PD口作为输出,用作数码管的显示
DDRB=0Xff;
//将PB口作为输出,用作数码管的显示
T=0;
while
(1)
#defineuintunsignedint
#defineucharunsignedchar
#defineSET_DATA()PORTD|=(1<
4);
DDRD|=(1<
#defineSET_SH_CP()PORTD|=(1<
6);
#defineSET_ST_CP()PORTD|=(1<
5);
#defineCLR_DATA()PORTD&
=~(1<
#defineCLR_SH_CP()PORTD&
#defineCLR_ST_CP()PORTD&
18
unsignedchartab_num[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x80};
//0,1,2,3,4,5,6,7,8,9,.,
unsignedcharCS[4]={0b00011010,0b00011001,0b00010011,0b00001011};
//分别为选通四个不同的数码管
voidwrite595(unsignedcharc)
{
ucharnum,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