zoukankan      html  css  js  c++  java
  • 树莓派控制高电平蜂鸣器(c语言+新手向)

      话不多说,先上代码:

      

    #include <wiringPi.h> 
    #include <stdio.h>
    #include <sys/time.h>
    #define VOICE 0
    
    void ultraInit(void){
        pinMode(VOICE,OUTPUT);//我们此处是用的是GPIO.0输入输出端口,所以pin=0 
    }
    
    void doVoice(void){
        digitalWrite(VOICE,LOW);//初始化引脚电平值为LOW 
        for(int i=1;i<=6;i++){
            printf("This is NO.%d
    ",i);
            digitalWrite(VOICE,HIGH);//设置引脚传出高电平 
            delay(500);
            digitalWrite(VOICE,LOW);//设置引脚传出低电平 
            delay(1000);
        }
        digitalWrite(VOICE,LOW);
    }
    
    int main(){
        if(wiringPiSetup() == -1){                //初始化树莓派 
            printf("setup wiringPi failed !");
            return 1;
        }
        
        ultraInit();                            //初始化端口 
        
        doVoice();                                //控制蜂鸣器发声 
        
        printf("This is END
    ");
        
        return 0;
    }

      接下来我们来看一下这个实验主要用到的模块——高电平蜂鸣器。顾名思义,高电平蜂鸣器就是在引脚传入HIGH电平时会发出时声音,声音的模式是bing~bing~。

      

      我们可以看到高电平蜂鸣器有三个引脚(使用母对母杜邦线):

        1.GND 接地引脚(接树莓派14号引脚)

        2.I/O     输入输出引脚(接树莓派11号引脚——GPIO.0)

        3.VCC  接电源引脚(接树莓派4号引脚)

      程序的开始我们先用pinMode将GPIO.0引脚设置为OUTPUT(输出)模式。

      因为该蜂鸣器的触发模式是传入一个高电平,所以在开始之前先将11号引脚的电平值设置为LOW,然后我们运用一个for循环控制蜂鸣器响的次数。

      在for循环中,我们首先设置11号引脚的电平值为HIGH,这个时候蜂鸣器开始发声,然后用delay函数让程序休眠500ms,要注意的是,引脚的电平值在改变后在下一次改变之前是不会改变的,在程序休眠的这500ms,11号引脚的输出电平一直是HIGH。在休眠500ms后,我们修改11号引脚的电平值为LOW,蜂鸣器停止发声。然后让程序休眠1000ms,在这1s内,11号引脚的电平值一直为LOW。

      我在这里设置的for循环次数为6,所以蜂鸣器会发声6次,每次500ms。之后程序结束。

      程序运行时还是先用gcc -Wall -o voice voice.c -lwiringPi编译,然后用sudo ./voice运行。

  • 相关阅读:
    INI配置文件的格式
    UserControl图片显示报错问题
    CornerRadius圆角属性
    Stretch属性
    [WPF]The type name ‘App’ does not exist in the type '...'的问题
    [Word]解决Word中执行输入操作时后面字符自动被删除的问题
    MATLAB中的取整函数(fix、round、floor、ceil)
    [数据库][C#]几个常用的正则表达式
    [数据库][C#]提取字符串中的数字
    springmvc注解知识点汇总
  • 原文地址:https://www.cnblogs.com/yuemo/p/8906111.html
Copyright © 2011-2022 走看看