话不多说,先上代码:

#include

#include

#include

#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运行。

树莓派控制HC-SR04超声波模块测距(新手向&plus;C语言向)

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

写给C语言新手的话

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

nrf24l01 IRQ一直为高电平

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

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

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

apple Swift语言新手教程

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

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

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

用代码控制鼠标键盘(C&num;语言)

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

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

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

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

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

随机推荐

python 学习笔记十七 django深入学习二 form,models

表单 GET 和 POST 处理表单时候只会用到GET 和 POST 方法. Django 的登录表单使用POST 方法,在这个方法中浏览器组合表单数据.对它们进行编码以用于传输.将它们发送到服务器然 ...

HTTP消息结构

HTTP 消息结构 HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议. 一个HTTP"客户端"是一个应用程序(Web浏览 ...

Python list嵌套 三维数组

cores_multicast = [[] for i in xrange(64)] temp_list = [0, 1] temp_list2 = [0, 3] cores_multicast[0] ...

xml中的非法字符

今使用Jdom生成xml文件的时候,总是出现0x0,0x8为非法字符,经过搜索,问题原因及解决方法如下: 原因:xml中需要过滤的字符分为两类,一类是不允许出现在xml中的字符,这些字符不在xml的定 ...

jquery优势

1.轻量 2.开源 3.选择器出色 可以支持几乎 css1到css3 的所有选择器 4.简单的修改页面    不同的浏览器对于css的支持程度是不同的,jquery通过封装javascript的代码, ...

Time&comma; Clocks&comma; and the Ordering of Events in a Distributed System

作者:Leslie Lamport(非常厉害的老头了) 在使用消息进行通信的分布式系统中,使用物理时钟对不同process进行时间同步与事件排序是非常困难的.一是因为不同process的时钟有差异,另 ...

mybatis基础学习1---&lpar;配置文件和sql语句&rpar;

1:配置文件(主要配置文件) 2:配置文件(引入) 3:sql语句解析: 根据id查对象 ...

centos&sol;linux下的安装Tomcat

1.启动tomcat时候需要JDK依赖 如果没有安装的请移步到该链接Centos/linux下的JDK安装 2.从官网上下载tomcat压缩包 wget -c http://apache.fayea. ...

Hash存储机制 - HashMap原理 HashSet原理

HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实 ...

vs 修改活动解决方案配置后无法调试,不生成pdb文件,&OpenCurlyDoubleQuote;当前不会命中断点 还没有为该文档加载任何符号” 解决方法

修改vs的活动解决配置后无法进行调试,比如在Release.Debug之后新增一个TEST,切换到test后就无法进行调试. 修改一下 项目属性->生成->高级 中“调试信息”改为 ful ...

更多推荐

树莓派输出高电平C语言,树莓派控制高电平蜂鸣器(c语言+新手向)