14《项目十四 智能空调控制》题库答案_第1页
14《项目十四 智能空调控制》题库答案_第2页
14《项目十四 智能空调控制》题库答案_第3页
14《项目十四 智能空调控制》题库答案_第4页
14《项目十四 智能空调控制》题库答案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

------《项目十一》参考答案------一、单项选择题(每小题3分,共45分)题号12345678910答案BCADAABCBA二、判断题(每空1分,共10分)题号12345678910判断×√××√√√×√×三、填空题(每空1分共20分)1.时钟芯片2.控制寄存器 日历3.04.下降沿5.紫外线 红外线6.电信号 放大器7.调制 发射8.脉冲宽度调制9.占空比10.get_datetime()四、操作题1.将DS1302时钟模块和LCD1602模块按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:在LCD屏上实时显示当前时间(YYYY-MM-DDHH:MM:SS)。fromdatetimeimportdatetime

fromDS1302importDS1302

importLCD1602

importtime

DS1302=DS1302()#实例化ds1302对象

#设置时间为2021年8月17日20点26分0秒

DS1302.set_datetime(datetime(2021,8,17,20,26,0))#设置时间

whileTrue:

#获取时间

ds_dt=DS1302.get_datetime()

LCD1602.init()

LCD1602.write(0,0,str(ds_dt.year)+'-'+str(ds_dt.month)+'-'+str(ds_dt.day)+'')

LCD1602.write(0,1,str(ds_dt.hour)+'.'+str(ds_dt.minute)+'.'+str(ds_dt.second)+'')

print(str(ds_dt.year)+'年'+str(ds_dt.month)+'月'+str(ds_dt.day)+'日')

print(str(ds_dt.hour)+'时'+str(ds_dt.minute)+'分'+str(ds_dt.second)+'秒')

time.sleep(1)

将DS1302时钟模块和LCD1602模块按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:在LCD屏上实时显示当前时间(YYYY-MM-DDHH:MM:SS),用户可以在消息控制台中设置一个时间,当时间到达设置时间时在LCD屏上提示“时间已到达”。fromdatetimeimportdatetime

fromDS1302importDS1302

importLCD1602

importtime

DS1302=DS1302()#实例化ds1302对象

#设置时间为2021年8月17日20点26分0秒

DS1302.set_datetime(datetime(2021,8,17,20,26,0))#设置时间

date_set=input("请设置计时时间:")

set_Hour=date_set[0:1]

set_Min=date_set[3:4]

set_Sec=date_set[6:7]

whileTrue:

#获取时间

ds_dt=DS1302.get_datetime()

LCD1602.init()

LCD1602.write(0,0,str(ds_dt.year)+'-'+str(ds_dt.month)+'-'+str(ds_dt.day)+'')

LCD1602.write(0,1,str(ds_dt.hour)+'.'+str(ds_dt.minute)+'.'+str(ds_dt.second)+'')

print(str(ds_dt.year)+'年'+str(ds_dt.month)+'月'+str(ds_dt.day)+'日')

print(str(ds_dt.hour)+'时'+str(ds_dt.minute)+'分'+str(ds_dt.second)+'秒')

ifset_Hour==ds_dt.hourandset_Min==ds_dt.minuteandset_Sec==ds_dt.second:

LCD1602.write(0,2,"时间已到达")

time.sleep(1)

将DS1302时钟模块和LCD1602模块、风扇模块按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:在LCD屏上实时显示当前时间(YYYY-MM-DDHH:MM:SS),用户可以在消息控制台中设置一个时间段开启风扇,当时间在设置时间段时开启风扇,否则关闭风扇。fromdatetimeimportdatetime

fromDS1302importDS1302

importfan

importLCD1602

importtime

fan.init()

fan.Fan_Start()

DS1302=DS1302()#实例化ds1302对象

DS1302.set_datetime(datetime.now())#设置时间

date_open_set=input("请设置风扇开始时间:")

set_open_Hour=date_open_set[0:1]

set_open_Min=date_open_set[3:4]

set_open_Sec=date_open_set[6:7]

date_close_set=input("请设置风扇结束时间:")

set_close_Hour=date_close_set[0:1]

set_close_Min=date_close_set[3:4]

set_close_Sec=date_close_set[6:7]

whileTrue:

#获取时间

ds_dt=DS1302.get_datetime()

LCD1602.init()

LCD1602.write(0,0,str(ds_dt.year)+'-'+str(ds_dt.month)+'-'+str(ds_dt.day)+'')

LCD1602.write(0,1,str(ds_dt.hour)+'.'+str(ds_dt.minute)+'.'+str(ds_dt.second)+'')

print(str(ds_dt.year)+'年'+str(ds_dt.month)+'月'+str(ds_dt.day)+'日')

print(str(ds_dt.hour)+'时'+str(ds_dt.minute)+'分'+str(ds_dt.second)+'秒')

ifset_open_Hour==ds_dt.hourandset_open_Min==ds_dt.minuteandset_open_Sec==ds_dt.second:

fan.FAN_control(100)

ifset_close_Hour==ds_dt.hourandset_close_Min==ds_dt.minuteandset_close_Sec==ds_dt.second:

fan.FAN_control(0)

time.sleep(1)

将红外遥控接收器和LCD1602模块按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:当红外接收信号接收到数据时在LCD屏上显示接收到的数据。#-*-coding:utf-8-*-#支持中文注释

importpylirc

importtime

importLCD1602

importRPi.GPIOasGPIO

Ir_received=17#有无收到红外遥控信号

#GPIO初始化设置

definit():

GPIO.setmode(GPIO.BCM)#采用BCM映射管脚给GPIO口

GPIO.setwarnings(False)#忽略GPIO操作注意警告

#载入配置参数

pylirc.init("pylirc","/etc/lirc/conf",Ir_received)

#循环函数

defread():

try:

read_data=pylirc.nextcode(1)#获取红外遥控器码值

returnread_data[0]['config']

except:

return""

init()

LCD1602.init()

whileTrue:

s=read()

LCD1602.write(0,0,s)

time.sleep(1)

print(s)将红外遥控接收器和LCD1602模块按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:程序初始时LCD屏上显示数值为0,用户可以通过红外遥控器的“+”“-”符号实现对数字的+1或者-1。importtime

importReadControl

importLCD1602

ReadControl.init()

LCD1602.init()

num=0

whileTrue:

result=ReadControl.read()#获取红外遥控数据

print(result)

ifresult=='KEY_VOLUMEUP':

num+=1

ifresult=='KEY_VOLUMEDOWN':

num-=1

LCD1602.write(0,0,str(num))

time.sleep(0.01)

将红外遥控接收器和风扇模块按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:当按下红外遥控器上的1键开启风扇,按下红外遥控器上的0键关闭风扇。importtime

importfan

importReadControl

importLCD1602

ReadControl.init()

LCD1602.init()

fan.init()

num=0

whileTrue:

result=ReadControl.read()#获取红外遥控数据

print(result)

ifresult=='1':

fan.Fan_Start()

ifresult=='0':

fan.stop()

time.sleep(0.01)

将红外遥控接收器、风扇模块和LCD1602模块按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:控制风扇风速,风扇速度分为3个挡位,初始开启挡位为2;当按下红外遥控器上的1键开启风扇,按下红外遥控器上的0键关闭风扇;用户可以通过红外遥控器的“+”“-”符号实现对风速的控制,并且LCD屏上实时显示当前风扇状态及挡位。importtime

importfan

importReadControl

importLCD1602

ReadControl.init()

LCD1602.init()

fan.init()

num=0

whileTrue:

result=ReadControl.read()#获取红外遥控数据

print(result)

ifresult=='1':

fan.Fan_Start()

ifresult=='0':

fan.stop()

ifresult=='KEY_VOLUMEUP':

Fan_speed+=10

ifFan_speed>100:

Fan_speed=100

fan.FAN_control(Fan_speed)

print(Fan_speed)

ifresult=='KEY_VOLUMEDOWN':

Fan_speed-=10

ifFan_speed<0:

Fan_speed=0

fan.FAN_control(Fan_speed)

time.sleep(0.01)

将红外遥控接收器、风扇模块和LCD1602模块、温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:当室内温度过高是开启风扇,用户可以通过红外遥控器控制风扇风速,也可以手动开启或关闭风扇;在LCD屏上显示当前温湿度数据、风扇状态、风速。fromdatetimeimportdatetime

fromDS1302importDS1302

importLCD1602

importReadControl

importfan

importtime

importthreading

mode=0

Fan_speed=0

DHT11_pin=16

#模块初始化代码

if__name__=="__main__":

try:

DS1302=DS1302()#实例化ds1302对象y

#设置时间为2021年8月17日20点26分0秒

DS1302.set_datetime(datetime(2021,8,17,20,26,0))#设置时间

LCD1602.init()

ReadControl.init()

fan.init()

fan.Fan_Start()

whileTrue:

#获取红外传感器数据

result=ReadControl.read()

ifresult=='KEY_EQUAL':

#两种模式切换

ifmode==0:

mode=1

else:

mode=0

#清屏

LCD1602.write(0,0,"")

LCD1602.write(0,1,"")

ifresult=='KEY_VOLUMEUP'andmode==1:

Fan_speed+=10

ifFan_speed>100:

Fan_speed=100

fan.FAN_control(Fan_speed)

ifresult=='KEY_VOLUMEDOWN'andmode==1:

Fan_speed-=10

ifFan_speed<0:

Fan_speed=0

fan.FAN_control(Fan_speed)

#模式-显示温度和时间

ifmode==0:

#获取温度

humidity,temperature=Adafruit_DHT.read_retry(sensor,DHT11_pin)

print('温度:'+str(temperature)+'湿度:'+str(humidity))

LCD1602.write(0,0,str(ds_dt.year)+'-'+str(ds_dt.month)+'-'+str(ds_dt.day)+'T:'+str(

temperature))

LCD1602.write(0,1,str(ds_dt.hour)+'.'+str(ds_dt.minute)+'.'+str(ds_dt.second)+'H:'+str(

humidity))

#模式-显示风扇速度

ifmode==1:

LCD1602.write(0,0,"fanmode")

LCD1602.write(0,1,"speed:"+str(Fan_speed)+"%")

time.sleep(0.1)

exceptKeyboardInterrupt:

fan.stop()

GPIO.cleanup()#释放资源

pylirc.exit()#退出红外遥控器接收

将红外遥控接收器、风扇模块和LCD1602模块、DS1302时钟模块按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:用户可以设置开启风扇时间及关闭风扇时间,当到达时间时自动开启关闭风扇;用户还可以通过红外遥控器手动控制风扇开启关闭及风速;在LCD屏上显示当前时间、风扇状态、风速。fromdatetimeimportdatetime

fromDS1302importDS1302

importLCD1602

importReadControl

importfan

importtime

importthreading

mode=0

Fan_speed=0

DHT11_pin=16

#模块初始化代码

if__name__=="__main__":

try:

DS1302=DS1302()#实例化ds1302对象y

#设置时间为2021年8月17日20点26分0秒

DS1302.set_datetime(datetime(2021,8,17,20,26,0))#设置时间

LCD1602.init()

ReadControl.init()

fan.init()

fan.Fan_Start()

whileTrue:

#获取红外传感器数据

result=ReadControl.read()

ifresult=='KEY_EQUAL':

#两种模式切换

ifmode==0:

mode=1

else:

mode=0

#清屏

LCD1602.write(0,0,"")

LCD1602.write(0,1,"")

ifresult=='KEY_VOLUMEUP'andmode==1:

Fan_speed+=10

ifFan_speed>100:

Fan_speed=100

fan.FAN_control(Fan_speed)

ifresult=='KEY_VOLUMEDOWN'andmode==1:

Fan_speed-=10

ifFan_speed<0:

Fan_speed=0

fan.FAN_control(Fan_speed)

#模式-显示温度和时间

ifmode==0:

#获取时间

ds_dt=DS1302.get_datetime()

#显示数据

print(str(ds_dt.year)+'年'+str(ds_dt.month)+'月'+str(ds_dt.day)+'日')

print(str(ds_dt.hour)+'时'+str(ds_dt.minute)+'分'+str(ds_dt.second)+'秒')

#模式-显示风扇速度

ifmode==1:

LCD1602.write(0,0,"fanmode")

LCD1602.write(0,1,"speed:"+str(Fan_speed)+"%")

time.sleep(0.1)

exceptKeyboardInterrupt:

fan.stop()

GPIO.cleanup()#释放资源

pylirc.exit()#退出红外遥控器接收

将红外遥控接收器、风扇模块和LCD1602模块、DS1302时钟模块、温湿度模块按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:用户可以设置开启风扇时间及关闭风扇时间、室内温度临界值,当室内温度超过临界或到达设定时间段自动开启关闭风扇;用户还可以通过红外遥控器手动控制风扇开启关闭及风速;在LCD屏上显示当前时间、室内温湿fromdatetimeimportdatetime

fromDS1302importDS1302

importAdafruit_DHT

importLCD1602

importReadControl

importfan

importtime

importthreading

mode=0

Fan_speed=0

DHT11_pin=16

#模块初始化代码

sensor=Adafruit_DHT.DHT11

if__name__=="__main__":

try:

DS1302=DS1302()#实例化ds1302对象y

#设置时间为2021年8月17日20点26分0秒

DS1302.set_datetime(datetime(2021,8,17,20,26,0))#设置时间

LCD1602.init()

ReadControl.init()

fan.init()

fan.Fan_Start()

whileTrue:

#获取红外传感器数据

result=ReadControl.read()

ifresult=='KEY_EQUAL':

#两种模式切换

ifmode==0:

mode=1

else:

mode=0

#清屏

LCD1602.write(0,0,"")

LCD1602.write(0,1,"")

ifresult=='KEY_VOLUMEUP'andmode==1:

Fan_speed+=10

ifFan_speed>100:

Fan_speed=100

fan.FAN_control(Fan_speed)

ifresult=='KEY_VOLUMEDOWN'andmode==1:

Fan_speed-=10

ifFan_speed<0:

Fan_speed=0

fan.FAN_control(Fan_speed)

#模式-显示温度和时间

ifmode==0:

#获取时间

ds_dt=DS1302.get_datetime()

#获取温度

humidity,temperature=Adafruit_DHT.read_retry(sensor,DHT11_pin)

print('温度:'+str(temperature)+'湿度:'+str(humidity))

LCD1602.write(0,0,str(ds_dt.year)+'-'+str(ds_dt.month)+'-'+str(ds_dt.day)+'T:'+str(

temperature))

LCD1602.write(0,1,str(ds_dt.hour)+'.'+str(ds_dt.minute)+'.'+str(ds_dt.second)+'H:'+str(

humidity))

#显示数据

print(str(ds_dt.year)+'年'+str(ds_dt.month)+'月'+str(ds_dt.day)+'日')

print(str(ds_dt.hour)+'时'+str(ds_dt.minute)+'分'+str(ds_dt.second)+'秒')

#模式-显示风扇速度

ifmode==1:

LCD1602.write(0,0,"fanmode

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论