话不多说,先上代码:

  

#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=;i<=;i++){
printf("This is NO.%d\n",i);
digitalWrite(VOICE,HIGH);//设置引脚传出高电平
delay();
digitalWrite(VOICE,LOW);//设置引脚传出低电平
delay();
}
digitalWrite(VOICE,LOW);
} int main(){
if(wiringPiSetup() == -){ //初始化树莓派
printf("setup wiringPi failed !");
return ;
} ultraInit(); //初始化端口 doVoice(); //控制蜂鸣器发声 printf("This is END\n"); return ;
}

  接下来我们来看一下这个实验主要用到的模块——高电平蜂鸣器。顾名思义,高电平蜂鸣器就是在引脚传入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运行。

树莓派控制高电平蜂鸣器(c语言+新手向)的更多相关文章

  1. 树莓派控制HC-SR04超声波模块测距(新手向+C语言向)

    因为作业要求使用c语言代码,这里先附上一段摘自网上的代码 感谢KalaerSun的c语言代码,摘自https://blog.csdn.net/qq_25247589/article/details/6 ...

  2. 写给C语言新手的话

    首先声明啊,写这个是因为一些加我QQ的朋友问我学习经验,我才写的. 另外,如果是二级党,那么请用谭浩强老师的书.然后你就可以不用看了.倒不是有偏见,而是我写的这个东西,根本不是为了考试,而是为了和新手 ...

  3. nrf24l01 IRQ一直为高电平

    测试发现发送数据时MCU卡住不动,测试发现卡在了 while(NRF24L01_IRQ!=0); 也就是说管脚IRQ一直是高电平.仔细排查发现nrf24l01处于接收模式,改为发送模式就好了 NRF2 ...

  4. 树莓派 温度监控 PWM 控制风扇 shell python c 语言

    Mine: 图中圈出来的是三极管 和滤波电容 依赖库: wiringPi sudo apt-get install wiringpi Shell脚本 本文介绍使用Shell脚本在树莓派上启用软件PWM ...

  5. apple Swift语言新手教程

    Apple Swift编程语言新手教程 文件夹 1   简单介绍 2   Swift入门 3   简单值 4   控制流 5   函数与闭包 6   对象与类 7   枚举与结构 1   ...

  6. 编程精粹:编写高质量的C语言代码———笔记一

    第一章 假想的编译程序 要记得对空语句进行处理,最好使用NULL使其明显可见 char * strcpy(char* pchTo, char* pchFrom) { char* pchStart = ...

  7. 用代码控制鼠标键盘(C#语言)

    前些时间想做一个鼠标点击器,用到了这些知识. 下面整理记录一下. ps.感谢各位大神 下面直接上代码 1.鼠标的控制 class MouseMove { #region MouseEvent [Sys ...

  8. go语言 新手学习笔记 go基础教程

    目前这方面的资料相对较少,自己手动整理汇集. 第一章:安装 第一节:下载go语言 第二节:windows 安装 go语言 第三节: 第二章:基本语法 第一节:类型 .

  9. NOIP2014-提高组初赛C语言解析(选择填空题)

    第二十届全国青少年信息学奥林匹克联赛初赛 一.单项选择题(共 20 题,每题 1.5 分,共计 30 分.每题有且仅有一个正确选项) 1. 以下哪个是面向对象的高级语言( B ) A.汇编语言   B ...

随机推荐

  1. Go语言标准库_输入/输出

    Go语言标准库_输入/输出 转载节选自<Go语言标准库> Reader 接口 type Reader interface { Read(p []byte) (n int, err erro ...

  2. 1013团队Beta冲刺day2

    项目进展 李明皇 今天解决的进度 优化了信息详情页的布局:日期显示,添加举报按钮等 优化了程序的数据传递逻辑 明天安排 程序运行逻辑的完善 林翔 今天解决的进度 实现微信端消息发布的插入数据库 明天安 ...

  3. github上传时出现error: src refspec master does not match any解决办法

    github上传时出现error: src refspec master does not match any解决办法 这个问题,我之前也遇到过,这次又遇到了只是时间间隔比较长了,为了防止以后再遇到类 ...

  4. 面试必问---HashMap原理分析

    一.HashMap的原理 众所周知,HashMap是用来存储Key-Value键值对的一种集合,这个键值对也叫做Entry,而每个Entry都是存储在数组当中,因此这个数组就是HashMap的主干.H ...

  5. 使用HttpClient4.5实现HTTPS的双向认证

    说明:本文主要是在平时接口对接开发中遇到的为保证传输安全的情况特要求使用https进行交互的情况下,使用httpClient4.5版本对HTTPS的双向验证的  功能的实现    首先,老生常谈,文章 ...

  6. zookeeper入门系列:paxos协议

    上一章讨论了一种强一致性的情况,即需要分布式事务来解决,本章我们来讨论一种最终一致的算法,paxos算法. paxos算法是由大牛lamport发明的,关于paxos算法有很多趣事.比如lamport ...

  7. String s=new String("abc")产生了几个对象?[权威面试版]

    以下总结是我逛论坛 将零零碎碎的知识整理起来,方便自己记忆和阅读,顺便分享出来给大家学习. 若 String s=new String("abc"); 为第一句代码 则会产生两个对 ...

  8. 【Learning】 多项式的相关计算

    约定的记号 对于一个多项式\(A(x)\),若其最高次系数不为零的项是\(x^k\),则该多项式的次数为\(k\). 记为\(deg(A)=k\). 对于\(x\in(k,+ \infty)\),称\ ...

  9. Linux的打印rpm包的详细信息的shell脚本

    #!/bin/bash # list a content summary of a number of RPM packages # USAGE: showrpm rpmfile1 rpmfile2 ...

  10. io文本加密

    文本加密习题 package io; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.Inpu ...