智能感光声控灯

智能感光声控灯---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

驱动原理

智能感光声控灯_第1张图片

定义程序

#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;
  }

想关注更多项目实战,可以关注项目实战专栏

你可能感兴趣的:(STM32课程项目设计)