
arduino 知识
文章平均质量分 88
arduino 知识
蔚蓝慕
这个作者很懒,什么都没留下…
展开
-
关于volatile类型变量说明
volatile 是一个关键字,被称为变量限定符,通常用在变量的数据类型之前,用来修改编译器和后续程序对变量的处理方式。具体来说,它指示编译器从 RAM 而不是从存储寄存器中加载变量,存储寄存器是存储和处理程序变量的临时内存位置。只要变量的值可能被其所在代码段无法控制的内容(如并发执行的线程)所改变,就应声明为易失性变量。这意味着当你的主代码段(如循环)读取变量的前 8 位时,中断可能已经改变了后 8 位。:在读取变量时,需要禁用中断,这样中断就不能在读取变量时扰乱变量的位。原创 2024-08-23 15:48:48 · 582 阅读 · 0 评论 -
索引——Arduino 知识、中断、字符串、传感器、项目和库
杂乱知识millis() 溢出(overflow)归零(rollover)有沒问题?如何偷改 millis( ) 与 micros( )的值方便测试(教程)(定时器相关)Arduino 崩溃或挂起的 7 种方式及如何防止_arduino 死机【冷知识】如何加快analogRead速度提高采样率Sampling Rate中断Arduino 定时器中断使用 Arduino 中断 – 硬件、引脚变化和定时器arduino 计时器和中断关于中断(Interrupt)的详细介绍以及IIC、原创 2024-08-13 21:59:35 · 473 阅读 · 0 评论 -
Arduino 崩溃或挂起的 7 种方式及如何防止
in为了帮助防止Arduino崩溃或挂起,我进行了一系列实验,以确定Arduino崩溃,挂起,重置,冻结,停止运行代码或做一些奇怪的事情的所有方式。我把这些实验的结果放在一起,作为Arduino如何崩溃或挂起的指南,以及如何防止这种情况发生在你身上。原创 2022-12-13 13:32:46 · 4653 阅读 · 0 评论 -
使用 Arduino 中断 – 硬件、引脚变化和定时器
今天我们将学习中断,这是Arduino和其他微控制器的一个非常重要的基本功能。虽然我们将专注于Arduino Uno,但这里介绍的概念与其他板同样有效。当我们设计一个项目时,我们通常基于微控制器。这样做有很多很好的理由,其中包括:因为它们可以处理多个输入,并且因为它们可以做很多事情,所以微控制器可能会变得非常繁忙。繁忙的微控制器需要一种方法来管理外部事件,例如按下按钮,同时兼顾其他输入和输出时序过程。控制外部输入或内部定时事件的一种方法是使用中断。中断顾名思义,是一种中断程序执行以处理其他事情的方法。中断绝原创 2022-12-08 08:46:51 · 8024 阅读 · 2 评论 -
Arduino 定时器中断
Circuits Arduino查看原文奥雷里(地球、月亮和太阳)立式兰花播种机胶合板书柜扬声器计时器中断允许您以非常特定的时间间隔执行任务,而不管代码中发生了什么其他事情。我将解释如何在比较匹配或 CTC 模式下以清除计时器设置和执行中断。如果要查找示例代码,请直接跳转到步骤 2。通常,当您编写Arduino程序时,Arduino会按照编写顺序执行封装在函数中的所有命令,但是,很难对中的事件进行计时。有些命令比其他命令需要更长的时间来执行,有些依赖于条件语句(if,while…),一些Arduino库函数原创 2022-12-07 16:30:42 · 6299 阅读 · 0 评论 -
arduino中keyboard库的使用
Keypad 库函数介绍请参考:https://blog.youkuaiyun.com/acktomas/article/details/117119504arduino中keyboard库的使用原文地址:https://playground.arduino.cc/Main/KeypadTutorial/键盘库允许您的Arduino读取矩阵类型的键盘。您可以从旧电话中清除这些键盘,也可以从几乎任何电子零件商店以不到5美元的价格获得它们。它们具有3x4、4x4和其他各种配置,并在按键上写有单词,字母和数字。该库能翻译 2021-05-21 14:06:19 · 7640 阅读 · 1 评论 -
arduino中Keypad 库函数介绍
原文:https://playground.arduino.cc/Code/Keypad/Creation构造函数:Keypad(makeKeymap(userKeymap), row[], col[], rows, cols)const byte rows = 4; //four rowsconst byte cols = 3; //three columnschar keys[rows][cols] = { {'1','2','3'}, {'4','5','6'}, {'翻译 2021-05-21 14:05:16 · 9315 阅读 · 1 评论 -
Arduino字符串及串口操作的【汇总贴】
多个Serial.print拼成一条Serial.print省时间吗?【冷知识】为何要用 String.reserve( )Arduino - 串口操作函数与示例代码大全String库函数用String或sprintf( )与dtostrf( )做类似printf( )格式化输出Arduino自带字符串示例汇总...原创 2021-05-19 09:02:18 · 681 阅读 · 0 评论 -
Arduino自带字符串示例汇总
String示例1. String Character AnalysisIn this example we use the operators that allow us to recognise the type of character we are dealing with. It is useful to check if a character is ASCII, or is upper case, or numeric, or it is a punctuation mark and s原创 2021-05-19 08:52:32 · 658 阅读 · 0 评论 -
AccelStepper库
ACCELSTEPPER库实例分析1. AFMotor_ConstantSpeed演示如何非常简单的运行AccelStepper固定速度模式没有加速度需要AFMotor库注意:Adafruit电机shield V2不兼容浏览 https://github.com/adafruit/Adafruit_Motor_Shield_V2_Library来获取如何在Adafruit电机shield V2运行的实例// AFMotor_ConstantSpeed.pde// -*- mode: C++原创 2021-04-02 09:52:25 · 8589 阅读 · 0 评论 -
lasterGrbl和GRBL使用指南
软件https://github.com/svenhb/GRBL-Plotter0. 目录:首页:https://github.com/gnea/grbl/wiki编译Grbl:https://github.com/gnea/grbl/wiki/Compiling-Grbl连接Grbl:https://github.com/gnea/grbl/wiki/Connecting-Grb...翻译 2020-04-17 16:54:12 · 15967 阅读 · 0 评论 -
【小常识】从按钮开关看上拉pull-up电阻、下拉电阻
https://www.arduino.cn/thread-13186-1-1.html到底啥是上拉(pull-up)電阻和下拉(pull-down)電阻 ?在用 Arduino 做實驗時, 按鈕開關(Button/Switch)是很常見的應用,然後你常常看到文件說要接個電阻, 又看到"上拉電阻"或"下拉電阻"!電阻(resistor)應該大家多多少少都知道(大家都聽過歐姆定律),可是到...转载 2019-11-08 09:31:09 · 14826 阅读 · 0 评论 -
arduino 计时器和中断
计时器或更准确地说是计时器/计数器是Arduino控制器内置的一块硬件 (其他控制器也具有计时器硬件)。它就像一个时钟,可用于测量时间事件。定时器可以通过一些特殊的寄存器进行编程。您可以为计时器配置预分频器,或者为操作模式配置其他功能。Arduino的控制器是或ATmega328。这些芯片引脚兼容,只是内部存储器的大小不同。两者都有3个定时器,分别称为timer0Timer1和timer2。timer0和timer2是8位定时器,其中Timer1是16位定时器。8位和16位定时器之间最重要的区别是。转载 2019-11-03 12:44:08 · 31054 阅读 · 3 评论 -
关于使用MPU6050中的几个问题,特记录下来
如果使用dmp计算各种角,就要用到int接口,这时使用软串口就接收不到数据,即使能够接收到,那么6050不论使用uno板卡上的2,3PIN(对应中断0,1)将不会产生中断。如果使用uno上的硬件串口,就不会有问题,在我的项目中利用两个蓝牙进行数据传送,如果蓝牙(主设备)接在硬串口上将不能从slave设备上接收数据。为了是两个设备通信只能用到软串口(SoftwareSerial)。蓝牙通信,要...原创 2019-10-28 16:51:11 · 1940 阅读 · 0 评论 -
Arduino重置-复位
Arduino重置-复位简介:三种方式手动重启Arduino方法一:使用Arduino板上的RESET引脚简介:三种方式手动重启ArduinoArduino板上重新编写代码时,Arduino将重新设置Arduino软件中打开串行终端,同时将Arduino板连接到计算机。打开串行终端时,Arduino会自动重置按下复位按钮详情见:https://www.theengineeringp...转载 2019-10-28 10:09:08 · 18962 阅读 · 0 评论 -
String库函数
String()的用法,堪称神器。String stringOne = “Hello String”; // using a constant StringString stringOne = String(‘a’); // converting a constant char into a StringStr...原创 2019-10-27 15:24:57 · 857 阅读 · 0 评论 -
Arduino - 串口操作函数与示例代码大全2(废弃)
index1.串口设置Serial.begin();Serial.end();2.清空串口缓存Serial.flush();3.输出串口数据Serial.print();Serial.println();Serial.SerialEvent();4.读串口缓存区数据Serial.available();Serial.read();Serial.peek();Serial.readBytes(buf...转载 2019-10-22 15:44:00 · 1059 阅读 · 0 评论 -
HC-05,HC-06AT指令
进入AT模式的两种方法经过摸索,这里总结两种进入AT模式的方法:与USB转TTL相连后接入电脑,将波特率设置成9600,模块指示灯快闪,这时再按下模块的按钮便进入AT模式,这时打开串口助手,输入AT指令再回车就可以发送AT指令了。与USB转TTL相连后接入电脑,将电源线断开一根,长按模块按钮,上电,然后松手,模块的指示灯慢闪,将波特率设置为38400便进入AT模式,打开串口助手,输入AT指令...原创 2019-10-21 14:52:43 · 11718 阅读 · 2 评论 -
11.Arduino 内部集成电路(I2C)
通信接口I2CI2C接口的原意是"Inter IC",只用两条线来连接其他组件,为了方便同一个电路板上的各个组件相互通信。I2C至少有一个主控端(master,通常由微处理器担任,负责发送时钟和地址信号)和至少一个从端(slave,通常是传感器组件),所有I2C组件的数据线和时钟线都连接在一起。此外,I2C的数据线和时钟线都要连接一个电阻到电源线,电阻值通常选择1~10KΩ,建议采用1.8kΩ...原创 2018-11-15 15:10:33 · 1156 阅读 · 0 评论 -
使用TimerOne库
4. 使用TimerOne库(Timer1)定时做多件事使用TimerOne库(Timer1)定时做多件事https://www.arduino.cn/thread-12441-1-1.html(出处: Arduino中文社区)特别强调:请注意, 如果你使用了 Timer1 库 (TimerOne 库),则 pin 9 和 pin 10 就不能再用做 PWM 输出了!因为该 pi...转载 2019-04-12 15:33:16 · 11315 阅读 · 0 评论 -
Arduino - 串口操作函数与示例代码大全
文章目录Arduino - 串口操作函数与示例代码大全1.串口设置Serial.begin();Serial.end();2.清空串口缓存Serial.flush();while(Serial.read()>= 0){}3.输出串口数据Serial.println();Serial.SerialEvent();4.读串口缓存区数据Serial.available();Serial.read(...原创 2019-04-01 11:13:04 · 10183 阅读 · 1 评论 -
寻找IIC设备地址的代码
一个寻找设备地址的代码官方地址:i2c_scanner(http://playground.arduino.cc/Main/I2cScanner)这个非常简单的草图扫描了设备的I2C总线。如果找到设备,则将其报告给Arduino串行监视器。该草图是使I2C通信正常工作的第一步。草图将找到的设备的7位地址显示为十六进制值。该值可用于使用7位地址的“ Wire.begin”功能。某些数据表使用...翻译 2019-09-26 09:35:38 · 2536 阅读 · 0 评论 -
隐藏的Arduino宏F()修复随机锁定
原文:https://www.baldengineer.com/arduino-f-macro.html我凌晨3点,但是在你压扁这最后一个虫子之前你不会睡觉。你可以在任何想到的地方撒上Serial.print()语句,然后就会崩溃:你的代码随机锁定,LED发疯,你已经拥有它。这是怎么回事?你的RAM用完了!所有这些Serial.print()语句都由c风格的字符串组成。这是“常量字符数组”。为...翻译 2019-04-22 14:59:03 · 1637 阅读 · 1 评论 -
millis() 溢出(overflow)归零(rollover)有沒问题?
https://www.arduino.cn/thread-12506-1-1.html在 Arduino, 我們常常使用 millis( )做檢查時間或計時(定时)的工作:http://www.arduino.cn/thread-12408-1-1.htmlhttp://www.arduino.cn/thread-12468-1-1.htmlhttp://arduino.cc/en/Re...原创 2019-04-12 15:21:08 · 5519 阅读 · 1 评论 -
为何定时做事的ISR或中断程序內不可用Serial.print(定时器相关)
https://www.arduino.cn/thread-12546-1-1.html常常有人用到定時器的中斷(或外部中斷),然後想要使用 Serial.print 或 Serial.println 送數據到串口監視器查看,可是卻常常有人發現加了一些 Serial.println 之後可能很快就不動了 !?官方網站也建議在 ISR( ) 內或是在用 attachInterrupt 連接...转载 2019-04-12 10:44:20 · 946 阅读 · 0 评论 -
关于不用中断定时或每隔几次做某事
原文地址:https://www.arduino.cn/thread-12452-1-1.html下面仅仅是将原文给编辑一下,原文阅读有困难,看原文时一定看看下面的评论。前面跟大家分享了如何自己設定Arduino內部定时器定時做事,我把在以下兩篇中對於暫停/繼續 timer1 和 timer2 的 CTC 中斷之補充也抓過來:“自己控制 timer1 計時器定時做多件事(教程)”:http...转载 2019-04-12 10:42:03 · 674 阅读 · 0 评论 -
关于中断(Interrupt)的详细介绍以及IIC、软串口、PinChangeInt库
IIC 使用 ISR(TWI_vect) 中断处理, 软串口SoftwareSerial 使用 ISR(PCINT0_vect) 或类似的(PCINT1/2)中断, 虽然 ISR(PCINT0_vect) 的优先权高于 ISR(TWI_vect), 但一旦进入 ISR(TWI_vect) 内由于中断请求被禁止, 此时即使软串口所用的 ISR(PCINT0_vect) 中断来到, 一样无法处理, 于是导致软串口的通信失常或数据遗失!, 其次是 pin 3 的 INT1 中断)原创 2019-04-12 10:41:45 · 10359 阅读 · 1 评论 -
使用Bounce2库按键“消抖”处理
说明:最为常用的消抖方式就是通过软件消抖,该方法广泛应用于单片机硬件电路设计中,其基本的原理就是延时消抖,当按键的一刹那,并不让CPU立即处理指令,而是等待一个时间间隔,让按键信号稳定下来。这里我不对具体程序进行介绍,而是给出Arduino中专门处理按键的一个库文件实现按键的“消抖”。该库文件为Bounce2.h,之前的版本是Bounce1,Bounce2是其改进版,二者在使用上有所不同,这里我...原创 2019-03-06 16:57:57 · 7458 阅读 · 0 评论 -
【arduino库文件】-wire.h
@TOCAs a reference the table below shows where TWI pins are located on various Arduino boards.BoardI2C / TWI pinsUno, EthernetA4 (SDA), A5 (SCL)Mega256020 (SDA), 21 (SCL)Leonardo2...转载 2019-03-01 22:05:26 · 25951 阅读 · 0 评论 -
用String或sprintf( )与dtostrf( )做类似printf( )格式化输出
https://www.arduino.cn/thread-14644-1-1.html關於類似 printf( ); 的輸出方式, 雖然本站站長奈何大神有寫了一篇關於格式化輸出:http://www.arduino.cn/thread-8366-1-2.html但是我覺得那篇寫得不好, 因為雖然那篇讓你多知道一點秘密, 但是不好用 !转载 2019-03-11 16:01:10 · 1853 阅读 · 0 评论 -
arduino nano 上传出错的解决方法
解决办法:1、驱动下载:https://download.youkuaiyun.com/download/acktomas/110252272、在ARDUINO IDE 选择 处理器:ATmega328p(Old bootloader)原创 2019-03-16 09:58:44 · 16906 阅读 · 2 评论 -
【翻译】arduino 内置示例
内置示例1. Basics2.数字(Digital)3.模拟4.沟通(communication)5.控制结构(Control Structures)6.传感器7.显示8.字符串9. USB键盘(KEYBOARD)Mouse10. Starterkit和BasicKit11. Arduino ISPhttps://www.arduino.cc/en/Tutorial/BuiltInExample...翻译 2019-03-23 10:56:35 · 5469 阅读 · 0 评论 -
关于加速度计收藏的几篇文章
I2C通信之Arduino与加速度传感器ADXL345:https://blog.youkuaiyun.com/acktomas/article/details/88072797Arduino学习笔记二三轴加速度传感器ADXL345:https://blog.youkuaiyun.com/u010216127/article/details/8974085ADXL345加速度计使用心得(带中断唤醒):https:/...原创 2019-03-29 08:29:40 · 622 阅读 · 0 评论 -
如何偷改 millis( ) 与 micros( )的值方便测试(教程)(定时器相关)
https://www.arduino.cn/thread-12550-1-1.html(1)很多人常常利用 millis( ) 或 micros( )檢查是否到了該做事情,或是用來設定定時做事( Timer 庫或 SimpleTimer 庫都是這樣);但是, 有時很想知道如果 millis( ) 很大會怎樣, 到那時自己的寫法有沒問題 ?認真仔細推想當然可以,不過, 懶得仔細想的人就想...转载 2019-04-12 15:22:35 · 2265 阅读 · 0 评论 -
【冷知识】如何加快analogRead速度提高采样率Sampling Rate?
https://www.arduino.cn/thread-12569-1-1.html這部分內容原先是回答某位網友的, 重新整理方便大家查看!根據官網說明, analogRead( ) 大約要 100us:http://arduino.cc/en/Reference/analogRead也就是說, 一秒最多只能讀取大約一萬次(10K),更正確的說, 理論上 sampling rate ...转载 2019-04-12 15:27:36 · 6011 阅读 · 0 评论 -
SPI
文章目录1. 工作方式简介4种工作方式全双工主机/从机连接方法(1)一个主机和多个从器件的通信系统。(2)几个单片机互相连接构成多主机通信系统。(3)主机、从机和从器件共同组成的应用系统。数据传输用户逻辑基本原理与结构相关技术资料SPI原文:http://wiki.dzsc.com/4328.html由于SPI(setial peripheralinterface)总线占用的接口线少,通信...转载 2019-04-22 11:14:01 · 23383 阅读 · 0 评论 -
analogWrite怎么做PWM输出?改PWM频率(定时器相关)
文章目录1. 首先来看看 PWM 仿真电压的原理, 这在官网上就有解说了:1.1 官网上的仿真范例:1.2 如果真的这样做, 有好处也有坏处, 官网上已经说了:2. 那 Arduino 是怎么做的呢?2.1 通过 Timer 定时器直接控制 pin 做 PWM 输出, Arduino UNO 的 MCU 有三个 timer,2.1 timer 的基本知识:2.2 analogWrite( ) 真...转载 2019-04-13 14:26:14 · 18078 阅读 · 1 评论 -
补充设定 timer1 定时器和 timer2 定时器定时做多件事
7. 补充设定 timer1 定时器和 timer2 定时器定时做多件事(教程)原文地址:https://www.arduino.cn/thread-12452-1-1.html下面仅仅是将原文给编辑一下,原文阅读有困难,看原文时一定看看下面的评论。前面跟大家分享了如何自己设定Arduino内部定时器定时做事,我把在以下两篇中对于暂停/继续 timer1 和 timer2 的 CTC 中断之...转载 2019-04-12 15:33:46 · 6178 阅读 · 0 评论 -
使用 MsTimer2 库
设定时间与要执行的 function启动中断必要时可停止中断(当然随时可以再重新启动)先来看一个简单范例: (改自原本范例)#原创 2019-04-12 15:33:32 · 21458 阅读 · 4 评论 -
为何 for只要 4 us
https://www.arduino.cn/thread-12611-1-1.html雖然 delayMicroseconds( ) 很好用,可是常常有人喜歡用 for 來做 delay 延遲, 然後就發現怪怪的 !!其實如下這句寫法是等於沒寫的:for(int i=0; i < 32000; ++i);如果你這樣測量:unsigned long begt = micros( ...转载 2019-04-12 15:31:47 · 314 阅读 · 0 评论