两个简单程序(按键点灯、光敏电阻控制蜂鸣器)(学习笔记)

目录

第一个程序

第二个程序

1.有关程序的基础知识

⑴按键介绍

⑵传感器模块

①简单了解

②硬件介绍

⑶硬件电路

①按键的硬件电路

②传感器的硬件电路

⑷在C语言上的差异

2.按键控制LED

(1)硬件连接

(2)编写程序用的函数

3.光敏电阻控制蜂鸣器

简单介绍GPIO使用

附加:LED、KEY、Buzzer、LightSensor

 


之前简单讲了GPIO,所以把GPIO输入穿插在程序中讲,完成两个程序(参考B站上的)

第一个程序

按键点灯(LED、key库函数在后面)

代码:

#include "LED.h"
#include "Key.h"

uint8_t KeyNum;

int main(void)
{
	LED_Init();
	Key_Init();
	
	while(1)
	{
		KeyNum=Key_GetNum();
		if(KeyNum==1)
		{
			LED1_Turn();
		}
		if(KeyNum==2)
		{
			LED2_Turn();
		}
	}
}

(LED和KEY的库函数在最后面)

运行结果:按一下按键,灯亮,再按一下灯灭。一个按键控制一个灯。

第二个程序

光敏电阻控制蜂鸣器(Buzzer和LightSensor也在最后面)

代码:

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "Buzzer.h"
#include "LightSensor.h"

int main(void)
{
	Buzzer_Init();
	LightSensor_Init();
	while(1)
	{
		if(LightSensor_Get()==1)
		{
			Buzzer_ON();
		}
		else
		{
			Buzzer_OFF();
		}
	}
}

运行结果:遮光时,蜂鸣器响;不遮光时,蜂鸣器不响


先来简单讲一下完成程序所用的基础知识

1.有关程序的基础知识

⑴按键介绍

stm32的按键与51单片机的一样,按键按下会有抖动(因为按键内使用的是机械式弹簧),5~10ms对单片机来说时间很长,如果不进行消抖,会出现重复执行程序的情况。

4f2cb42af1a5458db16fd2db075483d5.jpg

 (按键按下是低电平,没按是高电平)

而最常用的方法是通过软件编程消抖,加一段延时。

⑵传感器模块

①简单了解

20c8e4ab4b8745ec8045a26b2c4979c5.jpg

光敏电阻     热敏电阻     对射式红外   反射式红外

(后面的“传感器”省略了,名字一一对应图片)

这些传感器模块都是利用传感器元件的阻值随外界变化而变化,但是,因为电阻的变化不直接观察,所以一般都把它和定值电阻串联,这样就可以得到模拟电压输出,电路检测电压就会更容易。它还可以通过电压比较器进行二值化得到数字电压输出。

②硬件介绍

d895cc5f25ef4100b4cae18ae6cb44e1.jpg

 (VCC正极,GND负极)

  • 7ca566d53eec40f59a71861c09b5a45e.jpg                      N1是传感器模块代表的可变电阻,R1是定值电阻,它俩串联分压,旁边的C2是滤波电容,用来过滤干扰,保证输出电压的平滑
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值