光敏电阻控制继电器(STM32F103C8T6)

本文介绍了一种使用STM32微控制器、光敏电阻和XPT2046转换器实现的环境亮度检测系统。当环境亮度低于设定值时,通过继电器打开,高于设定值则关闭。光敏电阻利用内光电效应,随着光照强度增加,阻值降低。STM32通过库函数读取XPT2046转换的光敏电阻值,根据阈值控制继电器状态,实现自动控制。
摘要由CSDN通过智能技术生成

一、前言

        本文是通过光敏电阻检测环境亮度,当亮度小于设定值时控制继电器打开,超过设定时关闭继电器。光敏电阻的数值转换是通过XP2046进行转换,使用STM32作为主控,用库函数进行编程实现功能。

二、概述

(一)继电器

        继电器是一种电控制器件,是当输入量的变化达到规定要求时,在电气输出电咱中使用被控量发生预定的阶跃变化的一种电器。

单片机是一个弱电器件,一般工作于5v甚至更低的电压下。驱动电流在mA级以下,而在一些大功率场合下,如控制电动机,显然是不行的。因此,需要一个环节进行连接,这个环节称为“功率驱动”,而电继器驱动则是一个典型的、简单的功率驱动环节。继电器本身对于单片机来说是一个功率器件,继电器就是单片机实现控制大功率负载的接口。

        本例程的继电器电路是使用三极管,控制继电器开关,当MCU输出高电平时,打开继电器;当MCU输出低电平时,继电器则闭合。所使用的是电磁式继电器。

(二)光敏电阻

光敏电阻是用硫化镉等半导体材料的特殊电阻器件,其工作原理是基于内光电效应。光照越强,阻值就越低,随着光照强度的升高,电阻值讯速降低。

三、硬件连接

 

四、程序例程

1、XPT2046程序请参考: XPT2046程序例程

2、主函数

int main(void)
{
	int relay_vlaue = 0;

	Relay_Pin_Init();  // 继电器控制引脚初始化
	XPT2046_Pin_Init();
	Sys_Delay_Init();
	Usart1_Pin_Init(115200);
	printf("初始化成功\r\n");
	
	while(1)
	{
		relay_vlaue = XPT2046_Read_Date(0xA4);
		
		if (relay_vlaue < 200) {
			PBout(1) = 0;  // 开
		} 
		else {
			PBout(1) = 1;  // 关
		}
		
        printf("光敏电阻的值 = %d\r\n",relay_vlaue);*/
		delay_ms(500);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员超庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值