单片机测方波频率有两种典型的方法:
1.如果频率较块时候:利用定时器(定时一秒),外部中断下降沿触发,计算一秒钟触发的次数,算出频率
2.如果频率较慢的话,利用两个下降沿或上升沿时间间隔,测出频率
教程针对第二种
1.arduino外部中断教程
介绍:中断程序可以看作是一段独立于主程序之外的程序,当中断触发时,控制器会暂停当前正在运行的主程序,而跳转去运行中 断程序,中断程序运行完后,会再回到之前主程序暂停的位置,继续运行主程序。如此便可做到实时响应处理事件的效果。
具体程序;设置一个引脚,默认是输入
//下降沿触发 触发中断0(引脚2),调用blink函数
attachInterrupt(0, blink, FALLING);
2.时间函数
micros():毫秒计数
micros();微秒计数
一般用unsiged long(无符号长整型表示)
3.程序编写(硬件连接,一个单片机引脚输出方波信号(模拟信号源),一个单片机引脚2读取方波信号)

//arduino测方波频率
int SensorINPUT = 2;      //连到中断0,也就是数字引脚`
unsigned long time1,time2,time_;
float pl;void setup() {Serial.begin(9600);  //开启串口pinMode(SensorINPUT, INPUT);  //设置引脚输入(默认就是输入)attachInterrupt(0, blink, FALLING);   //下降沿触发,触发中断0,调用blink函数}void loop() {//int a = digitalRead(SensorINPUT);  //串口打印一下看看数据正确吗//Serial.println(a);  if(time2 > 1000000000 ){time2= 0;    //避免溢出}delay(10);
}void blink() {               //中断函数blink()time1 = time2;    //保留上一次数值time2 = millis(); //读取现在的时间数值time_ = time2 - time1;   //计数两个下降沿之间的所经过的时间pl=1000.0/time_;     //计算频率  pl = 1/(time_/1000)  时间的倒数Serial.println("----");Serial.print(pl);     //打印数值Serial.println("----");
}

arduino测方波频率(外部中断)相关推荐

  1. 利用定时器产生方波并通过中断调节方波频率

    要求:从P1^0口输出50Hz的方波,并通过S1,S2调整方波的频率.按下S1 频率以1Hz为单位增大,按下S2 频率以1Hz为单位减小. (代码仅进行过初步验证,可能存在一定的BUG,谨慎使用) # ...

  2. 瑞萨单片机之外部中断实现频率采集(三)

    很多低端MCU没有像STM32 那样拥有强大脉冲捕获测频率,那么MCU只能依靠自身有的资源来实现这个功能,比较通用的方法是使用了外部中断+定时器来实现,该方法经过我在实际项目中的使用来看,频率50/6 ...

  3. Arduino UNO利用外部中断测量RC接收器PPM脉宽

    Arduino UNO利用外部中断测量RC接收器PPM脉宽 PPM信号 PPM信号是将多个控制通道(一般10个控制通道)集中放在一起调制的信号.也就是一个PPM脉冲序列里面包含了多个通道的信息.如下图 ...

  4. 基于arduino的火焰报警蜂鸣器播放音乐(外部中断)实验

    接线 按钮------D3 火焰传感器---D2 蜂鸣器-----D7 led灯-----D13 编程思路及目的 利用火焰传感器检测火焰,然后播放音乐,如果中途有人按下按钮,则停止音乐. 主程序 #i ...

  5. Vscode(arduino框架) 开发ESP32 _01_电容Touch和外部中断

    ESP32的电容Touch和外部中断 一.主程序代码 #include <Arduino.h>// 定义外部中断的 mode // 0:无中断,读取touch值 // 1:touch中断, ...

  6. 【Arduino实验09 外部中断触发报警】

    目录 一.实验目的 二.实验设备与环境 三.实验重点 四.实验难点 五.实验内容 5.1实验任务 5.2实验原理 5.3实验内容 5.4实验结果 5.5思考题 一.实验目的 (1)熟悉外部中断函数.自 ...

  7. Arduino 外部中断

    外部中断 外部中断是由控制器设备发起的中断请求.停止再在执行的内容去执行中断函数中的内容 Arduino型号 int0 int1 int2 int3 int4 int5 UNO 2 3 – – – – ...

  8. STM32G070RBT6基于Arduino框架GPIO外部中断

    STM32G070RBT6基于Arduino框架GPIO外部中断

  9. 玩转 ESP32 + Arduino (四) 电容按键 霍尔传感器 外部中断 延时 脉冲检测

    一. 电容输入 touchRead(pin) 及电容输入中断touchAttachInterrupt(pin, TSR , threshold) ESP32专门提供了电容触摸传感器的功能, 共有T0, ...

最新文章

  1. yii2-wx / 微信二维码接口
  2. 腾讯信息流平台产品负责人牛津:个性化推荐的那些事儿
  3. mybatis mysql crud_Mybatis实现CRUD操作
  4. Java基础-SSM之mybatis快速入门篇
  5. Servlet编程专题6之Cookie
  6. 各种字符串合并处理示例.sql
  7. 走进我的交易室01_引子
  8. QT将窗体变为顶层窗体
  9. antd-pro1.0使用jest对react组件进行单元测试
  10. Hadoop yarn配置参数
  11. 2018/12/04 PAT刷题 L1-008 求整数段和 java
  12. 网约车源码 打车APP 同城打车代驾小程序源码
  13. 乐忧商城项目总结-5
  14. 使用腾讯轻量搭建Cydia软件源,随时随地稳定下载
  15. 什么是计算机网络中域名,什么是域名?
  16. 账号密码管理系统html,管理员密码一般是啥
  17. android 支付宝未安装,调用支付宝接口Android客户端没有支付宝APP的情况下解决无法调用支付宝页面的问题...
  18. 每天一个linux命令(33):atq命令
  19. 沈家桢博士:缘起性空与人生
  20. SSO JA-SIG

热门文章

  1. 课程学习之计算机网络
  2. 数字三位分节法(即整数部分从右向左,每隔三位用逗号分开)python实现
  3. 10种方法将使你的Windows系统崩溃
  4. 什么是工程项目项目管理工作?其特点是什么?
  5. Eclipse和IDEA
  6. 多通道高速采集卡简介
  7. ISO20000 服务目录
  8. 桌面便签即时贴软件测试,缺陷报告案例——即时贴
  9. 联想E431 安装ubuntu16.04
  10. win10连接共享打印机报错问题如0x00000709/0x0000011b/0x00000040等