前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >物联网-蜂鸣器加流水灯按键检测

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

原创
作者头像
会洗碗的CV工程师
发布2024-02-08 10:07:12
2300
发布2024-02-08 10:07:12
举报
文章被收录于专栏:LongJava学习资料

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腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档