初识Arduino

news2025/2/3 3:50:40

什么是Arduino

Arduino是一款便捷灵活、方便上手的开源电子原型平台。它包含硬件部分(即各种型号的Arduino板)、软件部分(即Arduino IDE),以及其Arduino社区平台

Arduino由一个欧洲开发团队于2005年冬季开发,成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas。其设计初衷是为了让电子设计初学者和爱好者能够轻松上手嵌入式开发。

【注意】Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里可以任意修改原始设计及相应代码。


硬件部分

Arduino的硬件部分是一块电路板(开发板),可以与各类传感器进行连接,包括重量、心率、雨滴、火焰、烟雾、亮度、声音、温湿度等传感器,从而实现想要的功能或项目。

Arduino开发板根据不同的功能和特性,可分为多个种类,主要有以下几种:

1. Arduino Uno

特点:Arduino Uno是目前使用最广泛的Arduino控制器。它基于ATmega328P芯片,具有14个数字输入/输出引脚(其中6个可用作PWM输出)和6个模拟输入引脚。Arduino Uno适合初学者使用,因其简单易懂、功能齐全且易于上手。

应用场景:适用于电子爱好者、DIY项目、学校教育等。


2. Arduino Mega 2560

特点:相对于Arduino Uno,Arduino Mega 2560提供了更多的输入/输出接口,包括54个数字输入/输出引脚(其中15个可用作PWM输出)和16个模拟输入引脚。此外,它还拥有更大的内存和存储空间,适合处理更复杂的项目和更大的数据量。

应用场景:一般用于较大型的项目,如工业自动化、机器人控制等。


3. Arduino Leonardo

特点:Arduino Leonardo是2012年推出的新型Arduino控制器,它使用集成USB功能的AVR单片机作为主控芯片。除了具备其他Arduino控制器的功能外,Leonardo还可以模拟出USB设备,这在某些特定应用场景下非常有用。

应用场景:适用于需要USB通信或模拟USB设备的项目。


4. Arduino Due

特点:Arduino Due是2012年Arduino官方推出的最新Arduino控制器之一,它使用32位ARM Cortex-M3主控芯片,集成了多种外设,是目前性能最强的Arduino控制器之一。

应用场景:适用于需要高性能和复杂外设支持的项目。


5. Arduino Nano

特点:Arduino Nano是Arduino Uno的微型版本,尺寸小巧,可以直接插在面包板上使用。它的控制器同样采用ATmega328P,但去掉了直流电源接口及稳压电路,采用Mini-B标准的USB插座。

应用场景:适用于需要小型化设计的项目,如可穿戴设备、小型机器人等。


6. 其他类型

除了上述几种常见的Arduino种类外,还有如Arduino Micro、Arduino Liypad、Arduino Zero等小型化或特定功能的Arduino控制器。此外,由于Arduino的开源性和灵活性,社区还开发了许多基于不同微控制器架构的Arduino兼容板,如基于STM32、ESP32等芯片的Arduino开发板。


软件部分

1、IDE

IDE(Integrated Development Environment),译为集成开发环境,相当于编辑器、编译器+连接器+其他。而Arduino IDE就是Arduino团队提供的一款专门为Arduino设计的编程软件,使用它,我们便能将程序从代码上传至Arduino主板。

且Arduino IDE可以在Windows、Macintosh OS(Mac OS)、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发。


2、Arduino语言

Arduino使用C/C++编写程序,虽然C++兼容C语言,但这是两种语言,C语言是一种面向过程的编程语言,C++是一种面向对象的编程语言。早期的Arduino核心库使用C语言编写,后来引进了面向对象的思想,目前最新的Arduino核心库采用C与C++混合编写而成。

通常我们说的Arduino语言,是指Arduino核心库文件提供的各种应用程序编程接口(Application Programming Interface,简称API)的集合。这些API是对更底层的芯片支持库进行二次封装所形成的。

在传统开发方式中,你需要明白每一个寄存器的意义及之间的关系,然后通过配置多个寄存器来达到目的。但是在Arduino中,使用了清楚明了的API替代繁杂的寄存器配置过程。

因此,开发者无需关心底层硬件的具体实现,只需使用这些高级别的函数即可实现功能。


3、不同芯片的兼容

Arduino IDE支持多种微控制器(芯片),包括但不限于以下几种:

  • 官方支持的微控制器

Arduino系列:如Arduino Uno、Arduino Mega、Arduino Leonardo、Arduino Due等。这些是Arduino官方推出的经典和开发板,它们使用不同的微控制器芯片,但都可以直接在Arduino IDE中进行编程和上传代码。

  • 兼容的第三方微控制器

1、ESP系列:如ESP8266和ESP32。这些是由Espressif Systems推出的低功耗、高性能的Wi-Fi和蓝牙双模微控制器。虽然它们不是由Arduino官方直接推出,但Arduino IDE通过安装额外的开发板管理器包(Boards Manager packages)来支持这些微控制器。这使得开发者可以使用Arduino IDE来编写和上传代码到ESP8266和ESP32开发板。

2、STM32系列:STM32是由STMicroelectronics推出的一系列基于ARM Cortex-M内核的32位微控制器。虽然STM32不是专门为Arduino设计的,但Arduino社区提供了STM32的Arduino核心(STM32duino core),使得开发者可以在Arduino IDE中编程STM32微控制器。

3、其他兼容微控制器:Arduino IDE的灵活性和开源性意味着它可以通过安装额外的库和核心文件来支持更多的微控制器。这些可能包括来自不同制造商的各种型号和规格的微控制器,具体取决于社区的支持和开发者的需求。


4、板级支持包

对于不同开发板,其芯片可能不同。而不同的芯片其内部寄存器配置也不尽相同。为什么Arduino IDE可以对不同的芯片用同样的函数进行操作?

Arduino IDE通过灵活的板级支持包(BSP)来支持不同的开发板和芯片。每个BSP都包含针对特定开发板和芯片的特定配置和代码库。当开发者在IDE中选择不同的开发板时,IDE会自动加载相应的BSP,并配置编译器和链接器以使用正确的库和设置。这样,开发者就可以使用相同的函数和库(即API)来编程不同的开发板,而无需担心底层硬件的差异。


5、官网下载

打开电脑浏览器,在地址里输入Arduino官方网站:www.arduino.cc,其网页打开速度可能非常慢,因为其服务器在国外。

打开后页面如上图所示,然后点击"SOFTWARE",找到Downloads,并在右边找自己电脑对应的操作系统,如下图所示。

【注意】对于Windows,其Installer指安装包,而ZIP为压缩包。

点击对应的操作系统后,会进入一个募捐的页面(如下),如果想捐钱的话,点击"CONTRIBUTE & DOWNLOAD"即可,只想安装软件直接点击"JUST DOWNLOAD"即可。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2091973.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

56基于SpringBoot+Vue+uniapp的教学资源库的详细设计和实现(源码+lw+部署文档+讲解等)

文章目录 前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus 系统测试系统测试目的系统功能测试系统测试结论 为什么选择我代码参考数据库参考源码获取源码获取 前言 🌞博主介绍 :✌全网粉丝15W,CSDN特邀作者、21…

信息学奥赛初赛天天练-80-NOIP2015普及组-基础题5-错位排列、二叉树、完全二叉树、叶子节点、完全二叉树叶子节点

NOIP 2015 普及组 基础题5 21 重新排列 1234使得每一个数字都不在原来的位置上,一共有( )种排法 22 一棵结点数为 2015的二叉树最多有( )个叶子结点 2 相关知识点 1) 错位排列 考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置…

建模杂谈系列250 Hello2Pymc

说明 pymc算是多年的老朋友了,中间失联了好几年。 内容 1 安装 安装更加麻烦了,不能很好的和其他的环境兼容。在官网上,也是建议用conda的方式安装。 conda create -c conda-forge -n pymc_env "pymc>5" conda activate p…

SQL基础——MySQL的优化

简介:个人学习分享,如有错误,欢迎批评指正。 概述 在应用的的开发过程中,由于初期数据量小,开发人员写 SQL 语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长&…

安卓15发布日期确定,安卓15 谷歌GMS认证截止日期有重大变化!安卓版本GMS认证截止时间更新,谷歌GMS认证之MADA/EDLA设备认证截止时间介绍

谷歌正式公布安卓15发布日期,即9月3号,到时,安卓版本的认证时间将会有改变!以下是深光标准整理的最新安卓版本的到期时间 详细讲解如何看懂这个图 第一列:OS version (API level) 指安卓版本 第二列:AOS…

软件测试工程师必备的技术能力

今年是我从事软件测试工作的第十年,从功能测试进阶到自动化测试,然后负责稳定性测试团队,进而兼任整个质量团队的技术专项治理,再到基础架构团队的测试专家角色,负责多个技术项目的产品/运营和质量保障工作。可以说绝大…

GNU 汇编语法基础

目录 一、引言 二、GNU 汇编基本结构 1.指令格式 2.注释 3. 段 三、寄存器和寻址方式 1.寄存器命名 2.寻址方式 四、指令集 1.数据传送指令 2.算术运算指令 3.逻辑运算指令 4.控制流指令 五、宏和函数 1.宏定义 2. 函数定义 六、总结 一、引言 在嵌入式系统…

南京观海微电子----VCC、 VDD、VSS、VEE 电压符号解释

一般在数据手册或者是说原理图中你会看到VCC、 VDD、VEE、VSS等不同的符号,那它们有什么区别,并且该怎么记住它们呢。 解释一: VCC:电源电压(双极器件);电源电压(74系列数字电路&a…

机会约束转化为确定性约束-- 样本均值法

当涉及到新能源消纳的机会约束规划时,我们需要深入理解其背后的原理和采用的方法。以下是对上文内容的更详细且更贴切的展开解释: 机会约束转化为确定性约束-- 样本均值法代码获取戳此处代码获取戳此处代码获取戳此处 新能源消纳的机会约束 新能源&…

计量校准中溯源方法会有哪些不足之处?

随着新型计量器具的不断涌现,现有的计量检定规程或计量校准规范已不能满足计量溯源的需要。特别是一体化大型设备所配备的传感器,如产业生产线之上的压力传感器、流量计、在线电导率仪、在线酸度计为代表的对传感器的检测目前多依据国家检定规程或计量校…

自制深度学习推理框架之表达式层的设计与实现

文章目录 一、表达式Expression二、词法解析2.1 词法定义2.2 词法解析 三、语法解析3.1 语法树的定义3.2 语法树构建3.3 语法树的转换(逆波兰式) 四、表达式层4.1 ExpressionLayer和ExpressionParser类4.2 表达式层的注册4.3 表达式层的输入处理4.4 表达式层的计算过程 五、计算…

分布式计算架构详解以及任务调度方式

信息技术领域重要分支—分布式计算。分布式计算通过将任务分配到多个物理的计算资源上进行处理,以来提高计算效率和资源利用率。今天主讲分布式计算架构的关键组成以及在云服务器背景下任务调度的不同方式,然后再综合来看这些调度策略是怎样适应云环境的…

使用 nuxi build-module 命令构建 Nuxt 模块

title: 使用 nuxi build-module 命令构建 Nuxt 模块 date: 2024/8/31 updated: 2024/8/31 author: cmdragon excerpt: nuxi build-module 命令是构建 Nuxt 模块的核心工具,它将你的模块打包成适合生产环境的格式。通过使用 --stub 选项,你可以在开发过程中加快模块构建速度…

Linux学习——ubuntu安装qt

安装VM的教程就不过多叙述了,这个简单,大家直接下载VM然后创建虚拟机就可以了,那我们今天来讲讲怎么在ubuntu中安装qtcreator. 如果我们的虚拟机是连接网络的,我们可以直接在Ubuntu上的浏览器中直接下载Qt,我们搜索Qt.io就可以&a…

【论文阅读】:Mamba YOLO SSMs-Based YOLO For Object Detection

摘要 Mamba架构已被证明可以有效地捕获长距离的地面依赖关系。 在深度学习技术的快速发展的推动下,YOLO系列为实时目标探测器设定了一个新的基准。在YOLO的基础上,不断探索再参数化、高效层聚合网络和无锚定技术的创新应用。为了进一步提高检测性能&am…

JSP详解使用

一、JSP概述 1.1 、JSP基础 1.1.1 、JSP简介 JSP全称是Java Server Page,它和Servlet一样,也是sun公司推出的一套开发动态web资源的技术,称为JSP/Servlet规范。JSP的本质其实就是一个Servlet。 1.1.2 、JSP和HTML以及Servlet的适用场景 …

阿尔茨海默病症识别+图像识别Python+人工智能+深度学习+TensorFlow+机器学习+卷积神经网络算法

一、介绍 阿尔茨海默病症识别。使用Python作为主要编程语言进行开发,基于深度学习等技术使用TensorFlow搭建ResNet50卷积神经网络算法,通过对病症图片4种数据集进行训练[‘轻度痴呆’, ‘中度痴呆’, ‘非痴呆’, ‘非常轻微的痴呆’],最终得…

SimpleTranslationAIAgent借助SiliconCloud API 构建自己的专属翻译助手

SimpleTranslationAIAgent介绍 SimpleTranslationAIAgent是一款基于C#与LLM通过简单对话即可实现文件到文件的翻译任务的简单应用,基于WPF与Semantic Kernel构建。 该软件是MIT协议完全开源免费的,但是调用LLM的API可能需要费用,但是没关系…

暴雪前总裁:主机永远不会死 索尼独占策略很成功

近年来,我们不断听到“主机即将消亡”的消息。然而,前暴雪娱乐总裁Mike Ybarra却认为,主机不会消亡,并暗讽微软正在推动一种有利于自己的叙事。 Ybarra在社交媒体X上表示,索尼的独占游戏策略是正确的,如果想…

AI写作神器!这四款免费工具让你文思泉涌

近年来,AI写作工具的火爆,让我们看到了AI技术在写作领域的巨大潜力。在这里,我给大家推荐四款好用的的AI写作工具,希望可以在大家的工作和学习等等场景中给到一定的帮助哦~ 一、笔灵ai写作 直通车(粘贴到浏览器打开&…