【单片机】Arduino(以UNO R3为例)

您所在的位置:网站首页 arduino程序例子 【单片机】Arduino(以UNO R3为例)

【单片机】Arduino(以UNO R3为例)

2024-07-06 18:23| 来源: 网络整理| 查看: 265

文章目录 单片机是什么?如何学习单片机Arduino系列单片机介绍官网文件其他问题汇总 /* 2021.10.24更新 */ Arduino语言1. C语言基础2. 数据类型(1)各数据类型占用字节数(2)Arduino中特有的数据类型   i) boolean ··· 布尔类型   ii) byte ··· 字节类型   iii) word ··· 字类型   iv) String ··· 特殊的字符串 3. 程序结构4. 函数总结(1)数字 I/O(GPIO)pinMode()digitalWrite()digitalRead() (2)模拟 I/O(ADC & Timer)analogRead()analogWrite() (3)高级 I/O(Soft USART)shiftOut()shiftIn()pulseIn()tone()noTone() (4)时间函数(Timer)millis()micros()delay()delayMicroseconds() (5)数学函数min()max()constrain()map()pow()sqrt()三角函数 (6)字符判断函数(7)随机函数random()randomSeed() (8)字节函数(9)外部中断函数(GPIO Interrupt)interrupts()noInterrupts()attachInterrupt()detachInterrupt() 串行通讯(Hardware)UARTif (Serial)available()availableForWrite()begin()end()write()read()peek()print()println()(ln为"line"的缩写)readBytes()readBytesUntil()readString()readStringUntil()find()findUntil()flush()setTimeout()parseFloat()parseInt() SPII2C 高级应用:用AVR开发Arduino其他操作1. Arduino IDE的“高级用法”——串口绘图器2. Arduino IDE的替代编辑器——Visual Studio Code3. Arduino IDE v2.0 Beta版本4. 记录两个写得非常好的教程

单片机是什么?

  单片机,全称单片微型计算机(英语:Single-chip Microcomputer),又称微控制器单元(Microcontroller Unit),是把中央处理器、存储器、定时/计数器(timer/counter)、各种输入输出接口等都集成在一块集成電路芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的定义已不能满足,所以在很多应用场合被称为微控制器,中文翻译为“单片机”,英文缩写为MCU。

参考: 单片机-维基百科

如何学习单片机

  在经过电赛那段时间的培训之后,我突然觉得,想要真正掌握一款单片机,首先是要理解单片机的原理,这也是最重要的,不理解单片机的工作原理只是不断地套代码,确实也可以做成一些项目,但如果遇到比较底层的问题想要解决可能就会很困难。   其次的话,我觉得就是要学会看官方手册,和真正理解示例代码。很多人包括我,在入门的时候往往会被官方手册中大段的英文以及示例中几百行代码(或注释)吓得有点怕,但后来我的老师告诉了我一个很简单但却被忽略的方法:根据自己学过的知识抓住关键,不求全部看懂,先理解框架。所以:先求完成,再求完美,切勿好高骛远。 与君共勉!

Arduino系列单片机介绍 官网文件

在这里插入图片描述   注:Arduino主要编写语言为C/C++。   为了详细了解Arduino单片机的信息,我们需要到官网去查找更详细的资料,首先打开官网:https://www.arduino.cc/,在搜索栏中搜索对应的型号,这里以UNO R3这个型号为例(其他型号类似)进入详情页面: 在这里插入图片描述   这里截取官网提供的引脚图,建议一定要保存一份!!!

在这里插入图片描述   继续往下翻,可以看到Features(UNO的特性介绍)板块: 在这里插入图片描述

  在最后的Resource板块还可以下载Arduino相关的资料及集成开发环境,这里方便起见,汇总一下:

DataSheet:数据手册Arduino IDE:集成开发环境Full PinOUT:引脚图(一共3张,比上面的引脚图更加全面)Schematics:原理图(不可编辑)Eagle Files:原理图和PCB,Eagle格式,可编辑,如果不想装Eagle也对PCB没有兴趣的可以不下

  到此,官方的相关文件初步下载完毕了,IDE也安装完毕,现在就可以开始学习Arduino的语言了。

其他问题汇总 /* 2021.10.24更新 */

  之前一直以为这篇教程写得非常完善了,但还有一些电气特性没有交代好,下面补充一下。

Arduino数字引脚是TTL电平,这个在使用的时候还是需要注意一下。具体可以参考这篇链接。Arduino一共有3种供电方案,相信这也是很多人开始使用Arduino时非常关注的点。第一种是最常见的,也就是用USB供电,比如插在电脑上或者充电宝等。第二种是使用直流稳压5V供电,方法是接入5V和GND,这种一定要保证电源电压的稳定性。第三种是Vin输入,输入7-12V,如果低于7V,可能会导致Arduino工作不稳定。第四种是黑色端子输入电压,要求输入电压为9-12V,如果低于9V,可能会导致Arduino工作不稳。具体可以参考这篇文章。这里有一个比较完整的介绍文件,可以参考一下,链接。 Arduino语言 1. C语言基础

  此处一些C语言的基本用法(包括基本数据变量,基本程序结构等)就不再介绍了,如果有需求的可以去网上找一些资料复习一下,也可以看看这个链接。

2. 数据类型 (1)各数据类型占用字节数

在这里插入图片描述   注意:在单片机的程序中,很多时候只会关注数据的字节数,而不关心它到底是什么类型的。另外,数据类型占用的字节数与单片机的位数无关!!!而是与编译器的类型有关,详情可以参见这篇博客:int字节问题说明

(2)Arduino中特有的数据类型    i) boolean ··· 布尔类型

   布尔类型占用1个字节,其值只能为1(true)或 0(false)。关于bool和boolean可以参考这篇文章。

   ii) byte ··· 字节类型

   储存的数值范围为0到255,占用1个字节。

   iii) word ··· 字类型

   在UNO等基于ATMEGA芯片的板子上,word为无符号16位整数,其他型号为无符号32位整数。

   iv) String ··· 特殊的字符串

   String类型(首字母为大写)本质上为一个类,允许以比字符数组更复杂的方式使用和操作文本字符串。 可以连接字符串、附加、搜索和替换子字符串等。 它比简单的字符数组需要更多的内存,但也更有用。    另外需要注意的是,双引号内的一个字符串会被看作字符数组,而不是String类的实例。

   构建一个String类有很多种方法,如下所示:

String stringOne = "Hello String"; // using a constant String String stringOne = String('a'); // converting a constant char into a String String stringTwo = String("This is a string"); // converting a constant string into a String object String stringOne = String(stringTwo + " with more"); // concatenating two strings String stringOne = String(13); // using a constant integer String stringOne = String(analogRead(0), DEC); // using an int and a base String stringOne = String(45, HEX); // using an int and a base (hexadecimal) String stringOne = String(255, BIN); // using an int and a base (binary) String stringOne = String(millis(), DEC); // using a long and a base String stringOne = String(5.698, 3); // using a float and the decimal places(保留3位小数)

   String类相关操作函数总结

string.charAt(n); //访问第n+1个字符,返回该字符 string.setCharAt(index, c); //将string中的index位置的字符设为c string.compareTo(string2); //按字母比较两个字符串,如果string > string2,返回正值,如果 //string < string2,返回负值,如果相等,返回0。另外,string这种类型可以用运算符进行比较和运算 //比如 ==, !=,>, < ,>=,


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3