智能感光声控灯---STM32
- 原理
- 光照传感器
- 结构
- 特性
- 作用与应用
- 光敏电阻器主要参数
- 定义程序
- 声音传感器
- 原理
- 结构
- 定义程序
- LED
- 驱动原理
- 定义程序
- 主函数
原理
光照传感器
结构
通常由光敏层、玻璃基片(或树枝防潮膜)和电极等组成的。
特性
光敏电阻器是利用半导体光电导效应制成的一种特殊电阻器,对光线十分敏感,它的电阻值能随着外界光照强弱(明暗)变化而变化。它在无光照射时,呈高阻状态;当有光照射时,其电阻值迅速减小。
作用与应用
广泛应用于各种自动控制电路(如自动照明灯控制电路、自动报警电路等)、家用电器(如电视机中的亮度自动调节,照相机的自动曝光控制等)及各种测量仪器中。
光敏电阻器主要参数
1)亮电阻(kΩ):指光敏电阻器受到光照射时的电阻值。
2)暗电阻(MΩ):指光敏电阻器在无光照射(黑暗环境)时的电阻值。
3)最高工作电压(V):指光敏电阻器在额定功率下所允许承受的最高电压
4)亮电流:指光敏电阻器在规定的外加电压下受到光照射时所通过的电流。
5)暗电流(mA):指在无光照射时,光敏电阻器在规定的外加电压下通过的电流。
6)时间常数(s):指光敏电阻器从光照跃变开始到稳定亮电流的63%时所需的时间。
7)电阻温度系数:指光敏电阻器在环境温度改变1℃时,其电阻值的相对变化。
8)灵敏度:指光敏电阻器在有光照射和无光照射时电阻值的相对变化。
定义程序
#ifndef __GUANGMIN_DO_H
#define __GUANGMIN_DO_H
#include "stm32f10x.h"
#define guangmin_OUT GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)
void guangmin_Init(void);
#endif /* __GUANGMIN_DO_H */
#include "guangmin_DO.h"
void guangmin_Init(void)
{ GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIOA, &GPIO_InitStructure);
}
声音传感器
原理
声音传感器是通过麦克风接收声音信号转化为音频信号,根据音频的变化确定电压的变化,从而输出所感知的声音信号的强度。
结构
声音传感器一般有四个接口,AO表示模拟量输出,用来实时输出麦克风所检测声音电压信号,DO表示当声音到达某个阈值时,输出高低电平信号。
定义程序
#ifndef __shengyin_H
#define __shengyin_H
#include "stm32f10x.h"
#define shengyin_OUT GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)
void shengyin_Init(void);
#endif /* __SHENGYIN_H */
#include "shengyin.h"
void shengyin_Init(void)
{ GPIO_InitTypeDef GPIO_InitStructure1;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStructure1.GPIO_Pin = GPIO_Pin_4;GPIO_InitStructure1.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIOA, &GPIO_InitStructure1);
}
LED
驱动原理
定义程序
#ifndef __LED_H
#define __LED_H
#include "stm32f10x.h"
#include "delay.h"
#define LED PAout(8)
void LED_Init(void);
#endif /* __LED_H */
#include "LED.h"
#include "stm32f10x_gpio.h"
#include "delay.h"
void LED_Init(void)
{ GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);LED = 1;
}
主函数
if(shengyin_OUT==0 && guangmin_OUT){LED = 0; }else{LED = 1;}
想关注更多项目实战,可以关注项目实战专栏