Arduino 外部中断的使用

1.什么是中断?

试想一下,你正在家里吃饭,这时传来了敲门声,虽然你巨饿,虽然面前全是山珍海味,但此时你不得不去开门,同时不得不放停下生命中最重要的事情——吃饭。打开门后,你发现只是一个查水表的,你检查了水表读数并告诉了查水表的人。关上门,你马不停蹄的又投入了于食物的作战中。
我们来分析一下这个颇具传奇性的故事,在这里人生的主旋律——吃饭,就是你的主程序,而敲门声,就是一个中断信号,它让你不得不去执行你的人生插曲——开门接客这个中断函数。完成这个小插曲后,你又要投入到主线剧情 吃饭这个主程序上。

现在我想告诉你一个惊天秘密,其实你妈欺骗了你,你根本不是他们亲生的,你是人造人,而你的大脑里装备了一个arduino控制器!你的型号是 Arduino 吃货,之所以叫这么2的名字,是因为你的loop的写法问题。我们来看看你的loop函数。

void loop() {
吃();
}

吃,是的,你没有看错,你的人生是如此的幸福,就是不断的 吃();循环。
阅读全文

使用Arduino IO口内部上拉功能

ATmega328P 芯片内部其实有上拉的功能,我们可以使用 ATmega328P 内部的上拉功能替代外部上拉。ATmega328P Datasheet中有内部上拉的结构介绍,如下图:

介绍一下上拉电阻
在数字电路中,上拉电阻(英语:Pull-up resistors)是当某输入端口未连接设备或处于高阻抗的情况下,一种用于保证输入信号为预期逻辑电平的电阻元件。他们通常在不同的逻辑器件之间工作,提供一定的电压信号。

阅读全文

关于基准源 将3.3V作为外部基准源使用

开始,我一直认为Arduino的模拟口ADC采样是准确的,直到后来我知道了测量基准源这个玩意(USB供电的情况下会造成5V电压不足,用作5V基准的电压可能只有4.8V甚至更低),随后发现芯片内部基准源制造误差可能会达到5%(实际28颗批量样本测试为2.2% 数据表),远低于稳压LDO芯片1%精度的标准,所以有了今天的这篇文章。还是测温度,这次有点不同,我们会使用3.3V LDO作为基准源进行测量。依旧说明下试验环境:本试验是在没有任何外部硬件支持的情况下,Arduino采用USB供电方式,来达到尽可能准确的ADC采样。

首先。我们要将要用的基准源接入arduino的 aref接口,其他依旧链接,LM35测量室内温度。

搭建电路

阅读全文

Arduino 十大滤波算法程序

1、限幅滤波法(又称程序判断滤波法)
2、中位值滤波法
3、算术平均滤波法
4、递推平均滤波法(又称滑动平均滤波法)
5、中位值平均滤波法(又称防脉冲干扰平均滤波法)
6、限幅平均滤波法
7、一阶滞后滤波法
8、加权递推平均滤波法
9、消抖滤波法
10、限幅消抖滤波法

程序默认对int类型数据进行滤波,如需要对其他类型进行滤波,只需要把程序中所有int替换成long、float或者double即可。

阅读全文