2025 Make Blocks阶段2 - 基于LM393的光控开关模块
该项目使用了LM393,实现了光控开关模块的设计,它的主要功能为:光敏电阻控制数字输出,可调节触发阈值。
标签
比较器
LM393
make block
光控开关模块
空耳-
更新2025-11-27
77
KiCad文件
全屏

2025 Make Blocks阶段2 - 基于LM393的光控开关模块

一,任务介绍

本次任务选择的是第四期的任务三,设计⼀个光控开关模块,主要的功能是光敏电阻控制数字输出。

题目要求:光敏电阻控制数字输出(光线阈值触发)

  1. 输入:光敏电阻
  2. 输出:数字信号
  3. 阈值调节:电位器可调
  4. 主要器件:需在DigiKey官网上有货且正常售卖

二,模块介绍

本光敏电阻传感器模块采用灵敏型光敏电阻与宽电压LM393比较器,工作稳定可靠。

  • 输出信号:提供数字开关量(0/1)与模拟量双路输出,兼容性强。
  • 灵敏度可调:板载可调电位器,可精确设定光线感应阈值。
  • 驱动能力强:数字输出驱动电流超过15mA,可直接驱动继电器、蜂鸣器等负载。
  • 宽电压供电:支持3.3V至5V直流电源,兼容各类开发板。
  • 便于安装:PCB尺寸30mm × 30mm,并设有固定螺栓孔,安装便捷。

LM393介绍:

LM393内部包括有两个独立、高精度电压比较器 组成的集成电路,失调电压低,最大为2.0mV。专为获得宽电压范围、单电源供电而设计,也可以双电源供电。而且无论电源电压大小,电源消耗的电流都很低。即使是单电源供电,比较器的共模输入电压范围接近地电平。LM393能直接连接TTL和CMOS,当用双电源供电时,能兼容MOS逻辑电路。

LM393:LM393 Shenzhen Slkormicro Semicon Co., Ltd. | 集成电路(IC) | DigiKey


三,设计框图

image.png

四,原理图及PCB介绍

1,原理图介绍

image.png

2,PCB介绍

本次pcb设计调试过程还是比较顺利的,一次就ok了。

image.png

image.png

image.png

五,模块调试

核心代码:

int main(void)
{
/* USER CODE BEGIN 1 */

/* USER CODE END 1 */

/* MCU Configuration--------------------------------------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();

/* USER CODE BEGIN Init */

/* USER CODE END Init */

/* Configure the system clock */
SystemClock_Config();

/* USER CODE BEGIN SysInit */

/* USER CODE END SysInit */

/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART1_UART_Init();
MX_USART2_UART_Init();
MX_ADC2_Init();
/* USER CODE BEGIN 2 */
HAL_UART_Receive_IT( &huart2, &pdata, 1);


HAL_ADCEx_Calibration_Start(&hadc2,ADC_SINGLE_ENDED);   //AD校准
/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{

HAL_ADC_Start(&hadc2);     //启动ADC转换
HAL_ADC_PollForConversion(&hadc2, 100);   //等待转换完成,50为最大等待时间,单位为ms
if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc2), HAL_ADC_STATE_REG_EOC))
{
ADC2_Value = HAL_ADC_GetValue(&hadc2);   //获取AD值
printf("ADC2 Reading : %d \r\n",ADC2_Value);
printf("VOUT True Voltage value : %.4f \r\n",ADC2_Value*3.3f/4096 );
}
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_3))
{
printf("天黑了\r\n");
}
HAL_Delay(1000);
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}

代码流程图:

image.png

正常情况,可以看到led是亮的。

image.png

image.png

将手覆盖上去,可以看到led熄灭了。

image.png

image.png

六,心得体会

本次设计的模块,数字量Do输出端可以直接驱动继电器,由此可以组成一个光控开关。模拟量AO可以和AD模块相连,通过AD转换,可以获得环境光强的数值,可广泛应用于智能家居等领域。唯一可惜的一点就是,浪费了一个比较器通道。

附件下载
03_光控开关模块_2025-09-07.kicad_pcb
03_光控开关模块_2025-09-07.kicad_sch
03_LM393.zip
团队介绍
kone
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号