话不多说,先上代码:

  

#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. (译文)React----React应用程序流式服务端渲染

    好处 React16推出了流式服务端渲染,它允许你并行地分发HTML片段.这样可以让渲染 出的首字节有意义的内容给用户速度更快. (例子1,上面部分是一次性转换,下面是流渲染,两种方式) 而且相对re ...

  2. 简单hdfs相关操作命令

    HDFS常用操作命令 启动hdfs #start-all.sh 查看hdfs的配置文件 #cat hdfs-site.sh #hadoop fs -put /soft/jdk / #HDFS上传文件命 ...

  3. Beta冲刺 第三天

    Beta冲刺 第三天 1. 昨天的困难 昨天的困难主要集中在对Ajax的使用上,不熟悉这种语法,所以也就浪费了时间,导致昨天的批量删除没有完全完成. 2. 今天解决的进度 潘伟靖: 1.完善了昨天没写 ...

  4. bzoj千题计划165:bzoj5127: 数据校验

    http://www.lydsy.com/JudgeOnline/upload/201712/prob12.pdf 区间的任意一个子区间都满足值域连续 等价于 区间任意一个长为2的子区间都满足值域连续 ...

  5. 搭建vue项目环境

    前言 在开发本项目之前,我对vue,react,angular等框架了解,仅限于知道它们是什么框架,他们的核心是什么,但是并没有实际使用过(angular 1.0版本用过,因为太难用,所以对这类框架都 ...

  6. 火车头采集器对接织梦cms图集发布时, 采集网上图片超时的解决方法

    背景介绍: 火车头采集器对接织梦cms图片集发布时, 对于多张(超过30张)大图片时, 经常会出现图集发布超时的情况.  问题分析: 因为php对于资源的处理有默认的超时时间30秒, 而我尝试了好多方 ...

  7. machine learning 之 导论 一元线性回归

    整理自Andrew Ng 的 machine learnig 课程 week1. 目录: 什么是机器学习 监督学习 非监督学习 一元线性回归 模型表示 损失函数 梯度下降算法 1.什么是机器学习 Ar ...

  8. 使用freemaker 导出word 含多张图片,若无图片则显示文本信息

    1.使用的Microsoft Office 2007,添加一个无边框的表格,并插入一张图片,最后另存为编码utf-8,一开始保存的word xml格式的,图片的base64编码位于文档最后,暂时没有找 ...

  9. 英语词汇(5)followed by / sung by / written by

    Sung by 演唱者; [例句]In the recording I have today, it is sung by a male alto.我今天带的唱片是由一位男高音歌手唱的. follow ...

  10. EasyUI DataGrid - 嵌套的DataGrid

    实现效果: 一.在页面头部引用视图脚本JS文件 <script src="@Url.Content("~/Resources/EasyUI/plugins/datagrid- ...