今天我们就来看看怎么把两个模块全都应用起来,做一个防盗装置。

先来看一下各个引脚的连接方式(需要七根母对母的杜邦线):

超声波模块:

1.Vcc:接5V电源(接1号引脚)

2.Trig:输出端口(接16号引脚)

3.Echo:输入端口(接18号端口)

4.Gnd:接地端(接6号端口)

蜂鸣器模块

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

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

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

接下来附上c语言代码:

#include

#include

#include

#define Trig 4

#define Echo 5

#define VOICE 0

void ultraInit(void){

pinMode(Echo,INPUT);

pinMode(Trig,OUTPUT);

pinMode(VOICE,OUTPUT);

}

float disMeasure(void){

struct timeval tv1;

/*

struct timeval{

time_t tv_sec;

suseconds_t tv_usec;

}

*/

struct timeval tv2;

long start=0,stop=0;

digitalWrite(VDICE,LOW);

digitalWrite(Trig,LOW);

delayMicroseconds(2);

digitalWrite(Trig,HIGH);

delayMicroseconds(10);

digitalWrite(Trig,LOW);

while(!(digitalRead(Echo) == 1));

gettimeofday(&tv1,NULL);

while(!(digitalRead(Echo) == 0));

gettimeofday(&tv2,NULL);

start = tv1.tv_sec * 1000000 + tv1.tv_usec;

stop = tv2.tv_sec * 1000000 + tv2.tv_usec;

return (float)(stop - start) / 1000000*34000 / 2;

}

void doVoice(void){

for(int i=1;i<=6;i++){

digitalWrite(VOICE,HIGH);

delay(500);

digitalWrite(VOICE,LOW);

delay(1000);

}

}

int main(){

float dis;

float olddis=0;

if(wiringPiSetup() == -1){

printf("setup wiringPi failed!");

return 1;

}

ultraInit();

while(1){

dis = disMeasure();

printf("disMeasure = %0.2f cm\n",dis);

if(olddis==0){

olddis=dis;

continue;

}else{

int s=dis-olddis;

if(s30){

doVoice();

}

olddis=dis;

}

delay(1000);

}

return 0;

}

我们这个程序的思想为利用超声波测距,记录上一次超声波测距的距离,和本次超声波测距的距离比较,如果距离相差在30cm以上,则蜂鸣器报警。思想和编程都相对简单。

本次实验是在一个新的领域的第一次尝试,以前从来没有接触过基于树莓派的程序开发。刚开始时遇到了许多的问题:

1.树莓派系统烧录错误,当时搞了很长时间。

2.实验器材的选择,对于我来说选择强迫症真是一个可怕的东西,买了一大堆没用的东西回来,包括但不限于3.5寸屏幕、树莓派引脚扩展板、170孔面包板(太小了)、摇杆模块、4*4薄膜键盘、温度传感器、一路继电器、电风扇。开始之前心很大,想做一些了不起的东西,到最后时间不够了才反应过来还是从简单的做起吧

3.公对公、母对母,公对母的杜邦线各40条……根本用不上这么多,QWQ,难受

4.c语言的代码以及教程是真的难找,好不容易找到一篇介绍wiringPi的博客,顿时如获至宝,现在市面上的树莓派教材基本是基于python的,python是一门很好用的语言,但是老师要求使用c语言我也没有办法呀

5.github很有用,但是你要会用。学会合理且优雅的移植代码是一个程序猿的必修课。

作者联系方式:sjtyuemos@foxmail.com 博客中有什么不懂的问题欢迎来信。

树莓派超声波 c语言,树莓派超声波测距+蜂鸣器(c语言)相关推荐

  1. 树莓派项目实践 [2] —— 编程控制实现超声波测距(C语言)

    原创首发于CSDN,转载请注明出处,谢谢!https://blog.csdn.net/weixin_46959681/article/details/115256556 文章目录 超声波模块 树莓派与 ...

  2. 树莓派基础实验24:超声波测距传感器实验

    一.介绍    超声波传感器使用超声波来准确检测物体并测量距离.他发出超声波并将它们转换成电信号,主要应用于汽车的倒车雷达.机器人自动避障行走.建筑施工工地以及一些工业现场. 二.组件 ★Raspbe ...

  3. 树莓派和HC-SR04模块实现超声波测距

    文章目录 一.HC-SR04简介 二.树莓派远程连接 1.系统准备 2.软件准备 3. 烧录系统 4. 使用ssh连接电脑热点 5.VNC远程控制连接树莓派桌面 三.树莓派操作 四.总结 一.HC-S ...

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

    话不多说,先上代码: #include #include #include #define VOICE 0 void ultraInit(void){ pinMode(VOICE,OUTPUT);// ...

  5. 树莓派无源蜂鸣器c语言,[Python]使用树莓派+无源蜂鸣器播放铁血丹心

    条件树莓派4B 无源蜂鸣器3V: 3毛钱一个 杜邦线: 2根 语言: Python 3 接线 蜂鸣器正极: 作者使用的是GPIO 1 也就是第28个接口, 对于GPIO口没有要求,只要GPIO口都可以 ...

  6. 树莓派无源蜂鸣器c语言,关于raspberry-pi:Python使用树莓派无源蜂鸣器播放铁血丹心...

    条件 树莓派4B 无源蜂鸣器3V: 3毛钱一个 杜邦线: 2根 语言: Python 3 接线 蜂鸣器正极: 作者应用的是GPIO 1 也就是第28个接口, 对于GPIO口没有要求,只有GPIO口都能 ...

  7. 树莓派无源蜂鸣器c语言,[Python]使用树莓派+无源蜂鸣器播放

    条件 树莓派4B 无源蜂鸣器3V: 3毛钱一个 杜邦线: 2根 语言: Python 3 接线 蜂鸣器正极: 做者使用的是GPIO 1 也就是第28个接口, 对于GPIO口没有要求,只要GPIO口均可 ...

  8. 液位系统c语言程序,超声波自动测量物体液位系统的设计

    超声波自动测量物体液位系统的设计(任务书,毕业论文15000字) 摘要 本系统以STC89C52单片机为核心,通过硬件电路连接和软件程序的编写实现通用型超声波自动测量物体液位系统的设计.其主要原理是由 ...

  9. 收发一体超声波测距离传感器模块_空气中70KHZ超声波换能器传感器探头DYA-70-03A测距探头3米量程...

    空气中70KHZ超声波换能器传感器探头DYA-70-03A测距探头3米量程 CT50数字式超声波探伤仪 焊缝探伤测量仪器 金属探伤检测仪 现货,上海身高体重秤 超声波身高体重秤 全自动身高体重称测量仪 ...

  10. 树莓派gpio编程c语言,树莓派底层编程-GPIO篇

    0 前言 本来是准备写一篇用python控制GPIO的例子,结果发现太简单了,还是深入一些吧,多深入底层 接下来,我会按照下面的顺序来介绍: 1)GPIO控制器地址映射 2)GPIO主要控制寄存器介绍 ...

最新文章

  1. 怎么样拒绝服务器重新启动?
  2. 计算机专业350分能进复试吗,初试估分350分,这在考研中算一个什么水平?
  3. Linux CentOS下配置SVN+SVN勾子
  4. visual studio输入法打不了中文_我为什么不用Mac自带输入法
  5. STM32-中断优先级
  6. [BZOJ2429][HAOI2006]聪明的猴子(最小生成树)
  7. 排序算法第三篇——归并排序
  8. RFC2616中文版(8)连接
  9. oracle视图和索引,oracle视图和索引
  10. ffmpeg源码分析:transcode()函数
  11. NB50/60 TJ1/TK1 模具 黑苹果保姆级教程整理
  12. 跟着小马哥学系列之 Spring AOP(Spring 事务(源码分析)上)
  13. 租用云服务器价格表:阿里云和腾讯云服务器最新价格表
  14. Eclipse错误: 找不到或无法加载主类或项目无法编译10种解决大法!
  15. 阿正入门深度学习---从EM算法开始
  16. Linux内核框架之内核进程
  17. TCP/UDP常用端口列表
  18. android gravity 属性解析
  19. 【软件构造】面向正确性和健壮性的软件构造小记
  20. WGS84以及各种坐标系

热门文章

  1. 解决:启动springboot项目,Unable to start web server; nested exception is org.springframework.beans.factory
  2. 经验分享:RuntimeException: Unable to instantiate service com.***.push.getui.GetuiPushIntentService
  3. HSV颜色空间中颜色(红、黄、绿、 青、蓝、紫、 粉红、 砖红、 品红)对应的灰度范围
  4. 通知:大数据技术架构知识库公开
  5. [SiFi]三体中英名词翻译chapter1-3
  6. tidb分布式数据库_TiDB如何在分布式数据库中结合OLTP和OLAP
  7. 如何在 R 中进行 Fisher 精确检验
  8. 花瓣图片采集工具研究
  9. 玩转HTML邮件格式-编写图文并茂邮件如此简单
  10. 深圳保诚后端Java社招面试