当前位置: 首页 > news >正文

Arduino入门1——认识Arduino,点亮一个LED

Arduino入门到入土指南1

  • 什么是Arduino?
  • 认识Arduino UNO
  • Arduino 开发环境搭建
  • 代码编写

相信你只要学习过嵌入式,或者是一名热衷于电子DIY的创客,或多或少都会听说过Arduino,但是,你真的知道Arduino是什么吗?坦白来说:,我是不知道的!于是我准备学习以下,相信以我一年多学习嵌入式的功力,学会Arduino肯定是手拿把掐。话不多说,学习上车!!!

什么是Arduino?

在这里插入图片描述

Arduino是一个开源的电子平台,由易于使用的硬件(各种型号的Arduino开发板)和软件(Arduino IDE)组成。它包括一个可编程的物理电路板(通常称为微控制器),以及用于编写该板上软件的开发环境。Arduino的关键点包括:

  • 硬件平台:Arduino 包括一系列基于不同微控制器的开发板,如Arduino Uno、Arduino Nano、Arduino Mega 等。这些开发板具有输入输出引脚、USB接口和其他附加功能,可用于连接各种传感器、执行器和其他电子设备。

  • 软件开发:Arduino 开发使用 Arduino IDE(集成开发环境),基于 C/C++ 编程语言。程序员可以编写代码来控制和交互 Arduino 开发板上的硬件。

  • 开源性质:Arduino 是开源的,这意味着其硬件设计和软件代码都可以被任何人自由查看、修改和分发。这种开放性促进了社区的快速成长和技术的创新。

  • 应用领域:Arduino 广泛应用于物联网(IoT)、机器人学、艺术创作、科学实验等领域。它适用于从初学者的基础项目到专业开发的复杂应用。

  • 易用性:Arduino 设计的初衷是为了让非专业人士和教育者能够轻松学习和使用电子原型设计技术,因此其使用简单、文档丰富、社区活跃。

总结下来就是:Arduino非常适合新手学习,甚至比51单片机还要简单!

认识Arduino UNO

Arduino 开发板根据功能、大小和适用场景的不同,可以分为几种主要类型。以下是一些常见的 Arduino 开发板分类:

  1. Arduino Uno:
  • 最经典和常见的 Arduino 开发板之一。
  • 基于 ATmega328P 微控制器。
  • 具有数字和模拟输入输出引脚,适合一般用途的原型设计和学习。
  1. Arduino Mega:
  • 拥有更多的输入输出引脚和更多的内存。
  • 基于 ATmega2560 微控制器。
  • 适合需要处理多个传感器或执行器的项目。
  1. Arduino Nano:
  • 较小尺寸的 Arduino 开发板。
  • 基于 ATmega328 或 ATmega168 微控制器。
  • 适合空间有限的应用,如嵌入式项目。
  1. Arduino Leonardo:
  • 具有内置 USB 控制器,支持模拟键盘和鼠标操作。
  • 基于 ATmega32U4 微控制器。
  • 适合需要模拟 HID(Human Interface Device)设备的项目。
  1. Arduino Due:
  • 基于 ARM Cortex-M3 架构的高性能 Arduino 开发板。
  • 较其他 Arduino 板更强大,支持更复杂的应用需求。
  1. Arduino Pro Mini:
  • 面向专业用户的较小尺寸 Arduino 开发板。
  • 基于 ATmega328 微控制器,适合需要紧凑尺寸的嵌入式项目。

7.Arduino LilyPad:

  • 设计用于可穿戴电子项目。
  • 采用圆形板设计,适合与服装和纺织品集成。
  1. Arduino MKR 系列:
  • 针对物联网(IoT)应用设计的 Arduino 开发板系列。
  • 包括不同的模型,如 MKR WiFi 1010、MKR GSM 1400 等,支持无线连接和低功耗操作。
    在这里插入图片描述
    在众多的Arduino 开发板中,Arduino Uno 、Nano、Mega这三款是最常见,也是资料最多的三款,其中Uno更是遥添加链接描述遥领先,所以后续的学习,我们也会以Uno开发板举例学习。

[PS] :Uno是意大利语,意识是中文的“一”,表示这是他们发布的第一款开发板。

下面我们来看一下Arduino Uno这块开发板的一些参数:

  • 微控制器:ATmega328P
  • USB转串口芯片:ATmega16U2
  • 工作电压:5V
  • DC口输入电压:7~12V
  • 数字I/O引脚:14个(其中6路可做PWM输出)
  • ADC输入通道:6个
  • IO口输出电流能力:20mA
  • 3.3V电源输出能力:50mA
  • Flash大小:32kB(其中0.5K用作引导程序)
  • SRAM:2KB
  • EEPROM:1KB
  • 时钟速度:16MHz
  • 板载LED引脚:13号引脚

其他具体参数可以参考:emakefun文档中心

Arduino 开发环境搭建

环境搭建分为两步,第一步是下载Arduino IDE ,第二部是安装驱动即可。

  1. 下载Arduino IDE :下载网址 (根据电脑环境,安装对于版本即可,过程很简单,这里展示了)
  2. 安装驱动:如果你之前有用过keil写过51、32的代码,这一步可以直接跳过,没有的话,老老实实安装驱动。 照做即可

到这里,就已经完成了Arduino环境搭建了,接下来我们只需要开始打开Arduino,开始写代码!真是个振奋人心的消息呢!

代码编写

  1. 打开安装好的Arduino IDE,进入如下界面
    在这里插入图片描述

  2. 同时按住键盘上的Ctrl 加 “逗号”,将默认字体改成中文,重启Arduino,有没有感觉好一点呢!
    在这里插入图片描述

  3. 请选择你的英雄(开发板):点击工具->开发板->Arduino AVR Boards -> Arduino Uno选项。
    在这里插入图片描述

  4. 开始愉快的编写代码,让我们的LED开始闪烁!

void setup() {// put your setup code here, to run once:pinMode(LED_BUILTIN,OUTPUT); 
}void loop() {// put your main code here, to run repeatedly:digitalWrite(LED_BUILTIN,HIGH);delay(1000);digitalWrite(LED_BUILTIN,LOW);delay(1000);
}
  • 依次点击左上角的小勾(验证)和箭头(上传),发现你板子上的LED开始闪烁起来了呢!是不是很神奇!!!!
  • pinMOde、digitalWrirte、delay等都是Arduino提供的库函数,直接用就可以,不用太纠结。
  • setup是初始化函数,相当于51、32等单片机代码While(1)前面的部分
  • loop是循环函数,在执行完setup函数后会一直执行loop函数。
  • steup和loop函数一定要有,即使函数内部什么都没有,不然会引起编译器报错。
  1. 当然,如果你不想写代码,也可以直接用Arduino IDE自带的例程。
    在这里插入图片描述
  • Blink就是LED闪烁的代码。其他部分的代码也可以用这种方式直接使用官方提供的代码。

最后,如果你对于Arduino 代码里面的这些函数不熟悉,或者不知道怎么写,你可以看看这两个网站,有介绍这些函数的作用。

  • Arduino 中文编程手册
  • Arduino 语音参考文档

以上就是本期的所有内容.

相关文章:

  • 8个常用的辅助函数!!
  • try-with-resources 工作原理
  • DockerHub无法访问,国内镜像拉取迂回解决方案
  • 万字长文爆肝Spring(一)
  • CSS选择器种类总结
  • Spring Boot中Excel的导入导出的实现之EasyPoi框架使用教程
  • docker安装消息队列mq中的rabbit服务
  • python操作数据库,django操作数据库
  • 【Vue】自学笔记(四)
  • 有没有硅基生命?AGI在哪里?
  • 【面试干货】ArrayList、Vector、LinkedList的存储性能和特性比较
  • 类android设备reset过程
  • C++语法08 数据类型之间的强制转换
  • FlinkCDC 3.1.0 支持 Flink 1.18.0 版本选择
  • B树与B+树与Mysql innodb的B+树和其相关索引
  • (三)从jvm层面了解线程的启动和停止
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • canvas 五子棋游戏
  • Javascript 原型链
  • JavaScript标准库系列——Math对象和Date对象(二)
  • laravel 用artisan创建自己的模板
  • Logstash 参考指南(目录)
  • Protobuf3语言指南
  • windows下如何用phpstorm同步测试服务器
  • 缓存与缓冲
  • 回流、重绘及其优化
  • 前端
  • 数据科学 第 3 章 11 字符串处理
  • 微服务框架lagom
  • 用Canvas画一棵二叉树
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​插件化DPI在商用WIFI中的价值
  • ​浅谈 Linux 中的 core dump 分析方法
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #13 yum、编译安装与sed命令的使用
  • #define用法
  • #mysql 8.0 踩坑日记
  • (1)(1.11) SiK Radio v2(一)
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (2)nginx 安装、启停
  • (C语言)共用体union的用法举例
  • (java)关于Thread的挂起和恢复
  • (苍穹外卖)day03菜品管理
  • (全注解开发)学习Spring-MVC的第三天
  • (三)mysql_MYSQL(三)
  • (转)3D模板阴影原理
  • ***监测系统的构建(chkrootkit )
  • .net core 6 redis操作类
  • .NET Reactor简单使用教程
  • .NET和.COM和.CN域名区别