# 从machine模块导入Pin(引脚控制)和ADC(模数转换)类
# ADC用于将光敏传感器输出的模拟信号(电压变化)转换为数字信号供单片机处理
from machine import Pin, ADC
# 初始化光敏传感器:将GPIO引脚33配置为ADC输入模式,创建ADC对象light
# 光敏传感器会根据环境光照强度输出不同的模拟电压,通过ADC转换为数字值
light = ADC(Pin(33)) # 引脚33连接光敏模块的信号输出端
# 设置ADC的衰减模式(量程):ATTN_11DB表示衰减11分贝
# 该模式下ADC可测量的电压范围更广(通常支持0-3.3V),适配光敏传感器的输出电压范围
light.atten(ADC.ATTN_11DB)
# 初始化LED:将GPIO引脚13配置为输出模式,创建Pin对象led控制LED
led = Pin(13, Pin.OUT)
# 无限循环:持续检测光照强度并控制LED状态
while 1:
# 注释说明:light.read()用于读取ADC转换后的数字值(范围通常为0-4095)
# 并标注了光敏传感器的数值特性:环境最暗时约为4063,最亮时约为32
# (即数值越大,环境越暗;数值越小,环境越亮)
# print(light.read()) # 取消注释可在串口打印实时光照数值
# 条件判断:当光照数值大于1800时(环境较暗),控制LED点亮
if light.read() > 1800:
led.on() # LED引脚输出高电平(假设高电平点亮,具体取决于硬件接线)
else:
led.off() # 否则(环境较亮),LED熄灭(输出低电平)
# 以下是对if-else条件语句的语法示例(帮助理解上面的判断逻辑)
'''
if 条件:
条件成立时执行的代码1
else:
条件不成立时执行的代码2
# 示例:判断年龄是否满18岁
age = 17
if age >= 18:
print("可以") # 年龄>=18时执行
else:
print("不可以") # 年龄<18时执行
'''