物联网-蜂鸣器加流水灯按键检测

2024-02-08 10:07:12 浏览数 (1)

1. 实验目的

实现按键按下去的时候蜂鸣器响,并且有流水灯效果,当按下另一个按键的时候,关闭蜂鸣器和流水灯。

2. 实验原理

图 5.2.1 蜂鸣器原理图

蜂鸣器与 STM32F4 连接原理图图中我们用到一个 NPN 三极管(S8050)来驱动蜂鸣器,R61 主要用于防止蜂鸣器的误发声。当 PB5 输出高电平的时候,蜂鸣器将发声,当 PB5 输出低电平的时候,蜂鸣器停止发声。

蜂鸣器加流水灯按键检测是一种在嵌入式系统或微控制器(如STM32、LPC2200等)上实现的功能。它通常涉及硬件和软件两个方面。

在硬件方面,你需要准备以下组件:

  1. 微控制器(如STM32F429或LPC2200)
  2. LED灯(用于流水灯效果)
  3. 蜂鸣器(用于发出声音)
  4. 按键(用于输入控制信号)
  5. 其他必要的硬件组件,如电源、电阻、杜邦线等

在软件方面,你需要编写程序来实现以下功能:

  1. 初始化GPIO(通用输入/输出)以控制LED灯、蜂鸣器和按键。
  2. 编写流水灯控制程序,使LED灯按照一定的顺序循环点亮,形成流水灯效果。
  3. 编写按键检测程序,检测按键是否被按下。
  4. 编写蜂鸣器控制程序,当检测到按键被按下时,触发蜂鸣器发出声音。

3. 主要仪器设备

GEC-STM32F429开发板和keil 5软件

4. 实验内容及步骤

1,首先用keil软件打开实验项目,确保可编译之后。

2,开发板使用usb连接线连接上电脑

3,然后使用点击load加载到开发板上。

4,修改代码

以下是main函数代码

代码语言:c复制
#include "stm32f4xx.h"
#include "./led/bsp_led.h"
#include "./key/bsp_key.h" 
#include "./beep/bsp_beep.h"
int i=0;
void delay(int time);
int led1 = 1;
int led2 = 0;
void Delay1(__IO u32 nCount); 
/**
  * @brief  主函数
  * @param  无
  * @retval 无
  */
int main(void)
{
 /* LED 端口初始化 */
 LED_GPIO_Config();  
  /*初始化按键*/
  Key_GPIO_Config();
 /*峰名器 初始化*/
 BEEP_GPIO_Config(); 
 /* 轮询按键状态,若按键按下则反转LED */ 
 while(1)                            
 {  
  if( Key_Scan(KEY1_GPIO_PORT,KEY1_PIN) == KEY_ON  )
  {
   while(1){
    /*LED1反转*/
   LED1_TOGGLE;
   delay(1000000);
   LED2_TOGGLE;
   delay(1000000);
   LED3_TOGGLE;
   delay(1000000);
   BEEP_ON;
    if( Key_Scan(KEY2_GPIO_PORT,KEY2_PIN) == KEY_ON  )
   {
    /*LED2反转*/
    LED1(ON);
    delay(1000000);
    LED2(ON);
    delay(1000000);
    LED3(ON);
    delay(1000000); 
    BEEP_OFF;
    break;
    } 
   } 
  }
 }
}
void delay(int time){
 for(;i<time;i  ){
  }
 i= 0;
}
void Delay1(__IO uint32_t nCount)  //???????
{
 for(; nCount != 0; nCount--);
}
/*********************************************END OF FILE**********************/

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

0 人点赞