初识Arduino)
目录浅谈Arduino几个专业名词Arduino UNO及其各个部分Reset 按钮USB接口晶体谐振器供电口电源引脚数字引脚USB-TTL串口芯片ICSP引脚MCU模拟输入引脚LED小灯泡软件安装WindowsLinuxIDE界面写第一个程序结语本文由Jzwalliser原创发布在CSDN平台上遵循CC 4.0 BY-NC-SA协议。因此若需转载/引用本文请注明作者并附原文链接不得用于商业用途。违者必究谢谢配合。个人主页blog.csdn.net/jzwalliser浅谈ArduinoArduino 是一个开放源代码的电子制作平台可以用它来做各种好玩又实用的小项目。它分为硬件和软件两部分硬件方面有很多不同型号的开发板比如Arduino UNO、Nano、Mega 等大小和用途有些许差别。其中最有名的就是 Arduino UNO很多刚入门的小伙伴都是从它开始玩的。软件部分有 Arduino IDE这是官方提供的编程工具用的是简化版的 C/C里面自带很多例子和现成的功能库学起来很轻松对新手挺友好。所以说这个系列我们就拿Arduino UNO来研究研究吧。建议手头有一块板子毕竟也不是很贵一台20-30块钱。几个专业名词在看文章之前最好要搞清楚几个概念1. 高电平一般来说就是5V。例如当给一个外设输出5V时就会说“向其输出了高电平”。2. 低电平0V。例如当给一个外设输出0V时就会说“向其输出了低电平”。3. 编译Arduino不过是一块电路板只能看懂二进制看不懂你写的程序。把你的程序翻译成“Arduino能看懂的”二进制的过程叫作“编译”。4. 上传写好了程序就需要让Arduino 板子去运行它。把编译好的程序传输给Arduino板的过程称之为“上传”。Arduino UNO及其各个部分看这就是一块Arduino虽然看着部件很多也挺复杂但是我们并不需要知道上面的每一个东西是什么。我们只需要了解其中主要的就可以了。Reset 按钮用于手动复位MCU按下后立即终断当前程序并从头开始运行。同时也可用于进入 bootloader配合自动复位完成程序下载。USB接口Arduino Uno常用Type-B的USB接口看起来是方的。连接电脑后可用于程序的上传、串口通信通过 USB 虚拟出 UART并给Arduino板供电电压5V。一般来说供电电流小于500mA。晶体谐振器Arduino UNO上的是16 MHz谐振器可为 MCU 提供稳定的时钟信号决定指令执行速度。没有它或频率不准的话延时、串口波特率都会出错。供电口一种圆头插座推荐输入电压为7V12V直流电。外部电流经此进入后经过板上的稳压芯片即可得到 5V的稳定电压以供系统使用。当然如果还同时接了USB那么板上的二极管会自动选择 USB 或供电口中电压较高的一个给 5V 稳压器供电此时USB一般不用作外部供电主源。电源引脚电源引脚用于给Arduino板接入外部电源并让 Arduino向外设提供 5V / 3.3V。电源引脚功能Vin接 7V–12V 直流电源经板载稳压转为 5V 给主板使用GND相当于电源的负极5V输出稳压后的 5V给传感器或模块供电3.3V输出3.3V给低电压模块如部分传感器、OLED供电RESET给一个低电平脉冲就会立即重启程序IOREF标明主板逻辑电压供扩展板自动适配电平数字引脚可以从外部读入电压仅限低/高电平也可向外输出电压。其中**不带有**波浪线“~”的只能输出0V/5V无法输出其它电压而剩下的则支持PWM可以粗略地认为能输出0V-5V内的某个电压。部分引脚还有有第二功能如0、1分别是硬件串口在内部连接着USB‑TTL 芯片2、3则提供硬件中断INT0/INT1。数字引脚支持PWM第二功能0否RX接收串口通信数据1否TX发送串口通信数据2否INT0硬件中断3是INT1硬件中断、OC2B4否T05是T16是A1N07否A1N18否CLKO、ICP19是OC1A10是OC1B、SS11是OC2A、MOSI12否MISO13否SCK再说一下PWM它是一种神奇的技术通过快速切换高/低电平的通断时间比例来模拟连续电压/功率输出的数字技术。USB-TTL串口芯片其作用是把电脑 USB 信号转换为 TTL 电平串口TX/RX再连到 ATmega328P 的 UART以实现程序下载通过 bootloader和串口监视器通信。原版Arduino UNO R3上装的是ATmega16U2一些其它“高仿板”可能使用CH340、CP2102、FT232之类。ICSP引脚当 bootloader 损坏、无法 USB 下载时可通过ICSP引脚用编程器直接烧写 bootloader 或固件。MCU英语全称“Microcontroller Unit”即微控制器通常是一颗 ATmega328P。它是Arduino Uno 的大脑负责运行烧录的程序。内部集成了Flash程序存储器32KB、SRAM内存2KB、EEPROM存储器1KB、定时器、PWM、ADC、串口UART、SPI、I2C 等外设工作频率通常靠 16MHz 晶体谐振器提供时钟。模拟输入引脚可用于读取外部的模拟输入其参考电压可用 AREF 引脚改变。当然这些引脚也可注册为普通数字引脚进行数字输入输出但是不常用。LED小灯泡板子上有4个LED小灯泡分别是TX、RX、ON、L。这个稍微了解一下就行看看图吧。软件安装介绍完硬件介绍一下软件Arduino IDE是官方提供的编程环境可以在这里下载Windows直接下载对应的Windows版本双击安装包按照步骤安装即可。Linux建议下载Appimage版本这样可以直接双击运行不需要安装。Zip版的需要安装。就绪后一定要试一下能否正常上传程序。如果提示“Error opening serial port ...”那么说明权限有问题此时需要打开终端运行$ls-l/dev/ttyACM* crw-rw----1root dialout188,05apr23.01ttyACM0在不同的电脑上可能出现ttyACM1、ttyACM2之类的甚至有多个结果那就对了。但是务必关注“dialout”这才是需要的。接着运行$sudousermod-a-Gdialout 用户名其中用户名改成你自己的。例如我的用户名是jzwalliser那么就执行$sudousermod-a-Gdialout jzwalliser接着重启电脑官方给的是注销账号并重新登录但在我的电脑上需要重启才行。IDE界面IDE的界面挺好看 有种“只可意会不可言传”的神秘科技感。写第一个程序先来了解一下Arduino的编程吧。Arduino IDE中使用的是C语言。打开编译器后你会发现默认代码大致长这样voidsetup(){}voidloop(){}有两个函数分别是setup()和loop()。其中setup()函数只被执行一次一般来说用于完成一些初始化任务并注册引脚功能loop()函数会在setup()函数执行完后不停地重复执行。这种执行次序并不需要人为地写代码控制你只需要写好两个函数就行arduino板子会自动地执行一遍setup()然后又自动地重复执行setup()。了解完这些就可以写程序了。写个呼吸灯吧让内置的灯闪烁voidsetup(){pinMode(LED_BUILTIN,OUTPUT);//将内置LED设置为输出模式}voidloop(){digitalWrite(LED_BUILTIN,HIGH);//向内置LED输出高电平亮起delay(1000);//等1000毫秒即1秒digitalWrite(LED_BUILTIN,LOW);//向内置LED输出低电平熄灭delay(1000);//等1000毫秒//由于loop()函数循环执行又会回到第6行}这样内置的LED小灯泡就会不停地亮起、熄灭时间间隔为1秒。效果是这样的结语好啦就先介绍到这里了记得点赞收藏哦