Stm32使用蜂鸣器、按键和光、热、反射、对射传感器

LED:发光二极管,正向通电点亮,反向通电不亮

有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定,基级给低电平时导通则蜂鸣器响。

无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音。

按键:常见的输入设备,按下导通,松手断开

按键抖动:由于按键内部使用的是机械式弹簧片来进行通断的,所以在按下和松手的瞬间会伴随有一连串的抖动。

传感器模块:传感器元件(光敏电阻/热敏电阻/红外接收管等)的电阻会随外界模拟量的变化而变化,通过与定值电阻分压即可得到

模拟 电压输出,再通过电压比较器进行二值化即可得到数字电压输出

N1电阻是可变电阻,可随着温度光线等因素发生变化,一般是随这些因素升高阻值变小,C一般是滤波电容,用分压定理和上下拉分析(N1变小,下拉作用增强,输出低电平)。最左图相当于运算放大器,当同相输入端大于反向输入端时输出高电平。当DO为1时LED2灭。四个传感器的使用方法都一样。


//四个传感器都适用
void LightSensor_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;//选取了B12口
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//上拉,高电平
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStructure);
}

uint8_t LightSensor_Get(void) 
{
	return GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12);
}

本文是跟着江科大学习,这是本人的学习笔记,如有侵权请联系本人删除!

猜你喜欢

转载自blog.csdn.net/m0_71827453/article/details/131755066