首页 > 其他分享 >初识Arduino

初识Arduino

时间:2024-09-01 11:50:50浏览次数:5  
标签:控制器 Arduino 芯片 开发板 初识 IDE 微控制器

什么是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"即可。


标签:控制器,Arduino,芯片,开发板,初识,IDE,微控制器
From: https://blog.csdn.net/qq_74114817/article/details/141729910

相关文章

  • 【ESP32-S3】基于正点原子ESP32-S3M开发(二)--Arduino环境搭建
    Arduino开发环境搭建使用Arduino开发难度低,开发效率高,但运行效率低,编译时间长,适合电子爱好者等非专业人士使用正点原子官方资料下载地址提取码:ixmr安装Arduino到资料盘A>6,软件资料>1,软件>3,Arudino开发工具下找到安装包并安装设置中文请添加图片描述安装库......
  • 初识HTML
    HTMLHyperTextMarkupLanguage(超文本标记语言)Hyperadj.既兴奋又紧张的;精力过旺的n.宣传人员网络超过;高;过度markupn.标记;(基于成本价与销售价之间差价的)加成网络涨价;加价;标示超文本:文字、图片、音频、视频、动画等替代了flashW3C标准W3C:WorldWideWebConsortium......
  • 初识C语言指针(5)
    目录1.回调函数2.qsort函数2.1qsort函数的基本参数2.2qsort函数的使用2.3qsort排序结构体类型数据结语1.回调函数什么是回调函数呢?回调函数就是⼀个通过函数指针调⽤的函数。如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的......
  • HandyControl 初识 第一次正确引入
    在App.xaml配置HandyControl,一个是皮肤资源,一个是主题资源完整代码:`<Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionarySource="pack://application:,,,/HandyControl;compone......
  • 初识嵌入式
    1.什么是嵌入式嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。嵌入式即嵌入式系统,IEEE(美国电气和电子工程师协会)对其定义是以应用为中心,以计算机技术为基础,软件硬件可裁剪......
  • Java 入门指南:初识 Java IO
    JavaIOJavaIO(Input/Output)是Java编程语言中用于处理输入和输出的标准库,它提供了一组类和接口,用于在程序和外部世界(如文件、网络连接、内存等)之间进行数据传输。IO,即in和out,也就是输入和输出,即应用程序和外部设备之间的数据传递,常见的外部设备包括文件、管道、网络......
  • 【C++】初识C++模板与STL
    C++语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C++相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C++内存管理本章将简单分享C++模板与STL相关知识,与之相关更多知识将留到下次更详细地来分享给大家......
  • [C++] 初识 智能指针
    标题:[C++]初识智能指针@水墨不写bug目录一、前言二、智能指针1.什么是RAII?2.智能指针分类 三、智能指针简介1.std::auto_ptr2.std::unique_ptr3.std::shared_ptr正文开始:一、前言    C++智能指针的出现是有一定的背景的:    Java有专属......
  • 初识混沌工程(Chaos Engineering): k8s install chaosblade
    混沌工程文档:https://chaosblade.io/docs/helm:https://github.com/helm/helm/releaseschaosblade:https://github.com/chaosblade-io/chaosblade/releaseschaosblade-box:https://github.com/chaosblade-io/chaosblade-box/releasesmetrics-server:https://gith......
  • 【GNSS射频前端】MA2769初识
    MAX2769芯片概述:MAX2769是一款单芯片多系统GNSS接收器,采用Maxim的低功耗SiGeBiCMOS工艺技术。集成了包括双输入低噪声放大器(LNA)、混频器、图像拒绝滤波器、可编程增益放大器(PGA)、压控振荡器(VCO)、分数-N频率合成器等在内的完整接收链。主要特点:支持GPS、GLONASS和Gal......