话不多说,先上代码:

  

#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. Java虚拟机之GC

    ⑴背景 Java堆和方法区实现类所需内存是不一样的,每个方法的多分支需要的内存也可能不一样,我们只有在运行期间才能制动创建哪些对象.这部分内存分配与回收都是动态的,而垃圾回收器所关注的就是这些这部分内 ...

  2. 解决fiddler无法抓取本地部署项目的请求问题

    在本地部署了几个应用,然后想用fiddler抓取一些请求看看调用了哪些接口,然鹅,一直抓不到... 比如访问地址是这样的: 在网上搜罗半天,找到一个解决方法 在localhost或127.0.0.1后 ...

  3. beta冲刺6

    前言:此篇是补昨天凌晨的.后面有更新但是太晚了就没有即使更新.所以现在过来更新一下. 昨天的未完成: 用户测试+测试报告 目前剩下的功能点:输入内容检测 我的社团输出显示格式调整. 今天的完成: 我的 ...

  4. 201621123031 《Java程序设计》第13周学习总结

    作业13-网络 1.本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以被 ...

  5. JAVA使用和操作properties文件

    java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properti ...

  6. android使用sharesdk的小感

    1.sharesdk快捷方式,快捷方式集成了所有需要分享到的手机app,但是具有缺陷,举个例子(想要微信分享图片url,但是短信并不想带有图片,否则短信成彩信,这里集成的就有麻烦了,为了解决这种问题, ...

  7. 自动化服务部署(一):Linux下安装JDK

    自动化测试的主要目的是为了执行回归测试.当然,为了模拟真实的用户操作,一般都是在UAT或者生产环境进行回归测试. 为了尽量避免内网和外网解析对测试结果的影响,将自动化测试服务部署在外网的服务器是比较好 ...

  8. Python内置函数(64)——classmethod

    英文文档: classmethod(function) Return a class method for function. A class method receives the class as ...

  9. Python内置函数(44)——len

    英文文档: len(s) Return the length (the number of items) of an object. The argument may be a sequence (s ...

  10. HashMap 的底层原理

    1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端. 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大.但数组的二分查找时间复杂度小,为O(1 ...