arduino学习资料Word下载.docx
- 文档编号:8244171
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:145
- 大小:6.72MB
arduino学习资料Word下载.docx
《arduino学习资料Word下载.docx》由会员分享,可在线阅读,更多相关《arduino学习资料Word下载.docx(145页珍藏版)》请在冰点文库上搜索。
类似的,如果你需要的话,你也可以直接往你的Arduino程序中添加AVR-C代码。
∙硬件开源并可扩展-Arduino板基于Atmel的ATMEGA8和ATMEGA168/328单片机。
Arduino基于Creativemons许可协议,所以有经验的电路设计师能够根据需求设计自己的模块,可以对其扩展或改进。
甚至是对于一些相对没有什么经验的用户,也可以通过制作试验板来理解Arduino是怎么工作的,省钱又省事。
Arduino基于AVR平台,对AVR库进行了二次编译封装,把端口都打包好了,寄存器啦、地址指针之类的基本不用管。
大大降低了软件开发难度,适宜非专业爱好者使用。
优点和缺点并存,因为是二次编译封装,代码不如直接使用AVR代码编写精练,代码执行效率与代码体积都弱于AVR直接编译。
性能:
DigitalI/O数字输入/输出端口0—13。
AnalogI/O模拟输入/输出端口0-5。
支持ICSP下载,支持TX/RX。
输入电压:
USB接口供电或者5V-12V外部电源供电。
输出电压:
支持3.3V级5VDC输出。
处理器:
使用AtmelAtmega168328处理器,因其支持者众多,已有公司开发出来32位的MCU平台支持arduino。
目前arduino的控制板最新的为ArduinoUno,如下图:
国内使用比较多的为ArduinoDuemilanove2009,主要原因是Uno的usb控制芯片封装方式改变,制造成本上升,其他变化不大,性价比还是ArduinoDuemilanove2009比较好。
因其开源特性,生产arduino控制板的厂商众多,同样的Duemilanove2009就有很多种颜色。
对于一些对电路板大小要求比较严格的地方,arduino团队提供了arduinoNano,此板体积做的非常小。
如下图:
arduino板子上基本端口如图描述,对几个比较特殊的端口下面详细说明下:
VIN端口:
VIN是inputvoltage的缩写,表示有外部电源时的输入端口。
AREF:
Referencevoltagefortheanaloginputs(模拟输入的基准电压)。
使用analogReference()命令调用。
ICSP:
也有称为ISP(InSystemProgrammer),就是一种线上即时烧录,目前比较新的芯片都支持这种烧录模式,包括大家常听说的8051系列的芯片,也都慢慢采用这种简便的烧录方式。
我们都知道传统的烧录方式,都是将被烧录的芯片,从线路板上拔起,有的焊死在线路板上的芯片,还得先把芯片焊接下来才能烧录。
为了解决这种问题,发明了ICSP线上即时烧录方式。
只需要准备一条R232线(连接烧录器),以及一条连接烧录器与烧录芯片针脚的连接线就可以。
电源的+5V,GND,两条负责传输烧录信息的针脚,再加上一个烧录电压针脚,这样就可以烧录了。
arduino学习笔记2
通过Arduino编译器查看串口数据
最简单的例子:
voidsetup()
{
Serial.begin(9600);
//打开串口,设置波特率为9600bps
}
voidloop()
{
intval;
val=analogRead(5);
//传感器接到模拟口5,数值根据自己的需要可变
Serial.println(val,DEC);
//从串口发送字符串并换行
delay(100);
如果电路安装正确,按照示例代码运行、上传,然后点击编译器的SerialMonitor按钮,就可以看到从代码定义的输入口(这儿是模拟口5)获取的数据了。
arduino学习笔记3arduino语言
∙Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让我们不了解AVR单片机(微控制器)的朋友也能轻松上手。
在与ArduinoDIYER接触的这段时间里,发现有些朋友对Arduino语言还是比较难入手,那么这里我就简单的注释一下Arduino语言(本人也是半罐子水,有错的地方还请各位指正)。
/*************基础C语言*************/
关键字:
∙if
∙if...else
∙for
∙switchcase
∙while
∙do...while
∙break
∙continue
∙return
∙goto
语法符号:
∙;
∙{}
∙//
∙/**/
运算符:
∙=
∙+
∙-
∙*
∙/
∙%
∙==
∙!
=
∙<
∙>
∙&
&
∙||
∙++
∙--
∙+=
∙-=
∙*=
∙/=
数据类型:
∙boolean
布尔类型
∙char
∙byte
字节类型
∙int
∙unsignedint
∙long
∙unsignedlong
∙float
∙double
∙string
∙array
∙void
数据类型转换:
∙char()
∙byte()
∙int()
∙long()
∙float()
常量:
∙HIGH
|
LOW
表示数字IO口的电平,HIGH
表示高电平
(1),LOW
表示低电平(0)。
∙INPUT
OUTPUT
表示数字IO口的方向,INPUT
表示输入(高阻态),OUTPUT
表示输出(AVR能提供5V电压40mA电流)。
∙true
false
true
表示真
(1),false表示假(0)。
/******************************************/
以上为基础c语言的关键字和符号,有c语言基础的都应该了解其含义,这里也不作过多的解释。
/*************Arduino语言*************/
结构
∙void
setup()
初始化变量,管脚模式,调用库函数等
loop()连续执行函数内的语句
功能
数字I/O
∙pinMode(pin,mode)
数字IO口输入输出模式定义函数,pin表示为0~13,mode表示为INPUT或OUTPUT。
∙digitalWrite(pin,value)
数字IO口输出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。
比如定义HIGH可以驱动LED。
∙int
digitalRead(pin)
数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。
比如可以读数字传感器。
模拟I/O
analogRead(pin)
模拟IO口读函数,pin表示为0~5(ArduinoDiecimila为0~5,Arduinonano为0~7)。
比如可以读模拟传感器(10位AD,0~5V表示为0~1023)。
∙analogWrite(pin,value)-
PWM
数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,pin表示3,5,6,9,10,11,value表示为0~255。
比如可用于电机PWM调速或音乐播放。
扩展I/O
∙shiftOut(dataPin,clockPin,bitOrder,value)
SPI外部IO扩展函数,通常使用带SPI接口的74HC595做8个IO扩展,dataPin为数据口,clockPin为时钟口,bitOrder为数据传输方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要传送的数据(0~255),另外还需要一个IO口做74HC595的使能控制。
∙unsignedlong
pulseIn(pin,value)
脉冲长度记录函数,返回时间参数(us),pin表示为0~13,value为HIGH或LOW。
比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间。
时间函数
millis()
返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间。
∙delay(ms)
延时函数(单位ms)。
∙delayMicroseconds(us)
延时函数(单位us)。
数学函数
∙min(x,y)求最小值
∙max(x,y)求最大值
∙abs(x)
计算绝对值
∙constrain(x,a,b)约束函数,下限a,上限b,x必须在ab之间才能返回。
∙map(value,fromLow,fromHigh,toLow,toHigh)
约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间。
∙pow(base,exponent)开方函数,base的exponent次方。
∙sq(x)
平方
∙sqrt(x)
开根号
三角函数
∙sin(rad)
∙cos(rad)
∙tan(rad)
随机数函数
∙randomSeed(seed)
随机数端口定义函数,seed表示读模拟口analogRead(pin)函数。
∙long
random(max)
随机数函数,返回数据大于等于0,小于max。
random(min,max)
随机数函数,返回数据大于等于min,小于max。
外部中断函数
∙attachInterrupt(interrupt,,mode)
外部中断只能用到数字IO口2和3,interrupt表示中断口初始0或1,表示一个功能函数,mode:
LOW低电平中断,CHANGE有变化就中断,RISING上升沿中断,FALLING
下降沿中断。
∙detachInterrupt(interrupt)
中断开关,interrupt=1开,interrupt=0关。
中断使能函数
∙interrupts()使能中断
∙noInterrupts()禁止中断
串口收发函数
∙Serial.begin(speed)串口定义波特率函数,speed表示波特率,如9600,19200等。
Serial.available()判断缓冲器状态。
Serial.read()
读串口并返回收到参数。
∙Serial.flush()
清空缓冲器。
∙Serial.print(data)串口输出数据。
∙Serial.println(data)
串口输出数据并带回车符。
/**********************************/
/************Arduino语言库文件*************/
官方库文件
∙EEPROM
-EEPROM读写程序库
∙Ethernet
-以太网控制器程序库
∙LiquidCrystal
-
LCD控制程序库
∙Servo
-舵机控制程序库
∙SoftwareSerial
-任何数字IO口模拟串口程序库
∙Stepper
-步进电机控制程序库
∙Wire
TWI/I2C总线程序库
∙Matrix
-LED矩阵控制程序库
∙Sprite
-LED矩阵图象处理控制程序库
非官方库文件
∙DateTime
-alibraryforkeepingtrackofthecurrentdateandtimeinsoftware.
∙Debounce
-forreadingnoisydigitalinputs(e.g.frombuttons)
∙Firmata
-formunicatingwithapplicationsontheputerusingastandardserialprotocol.
∙GLCD
-graphicsroutinesforLCDbasedonthe
KS0108
orequivalentchipset.
∙LCD
-control
LCDs
(using8datalines)
∙LCD4Bit
(using4datalines)
∙LedControl
-forcontrollingLEDmatricesorseven-segmentdisplayswitha
MAX7221
or
MAX7219.
-analternativetotheMatrixlibraryfordrivingmultiple
LEDs
withMaximchips.
∙Messenger
-forprocessingtext-basedmessagesfromtheputer
∙Metro
-helpyoutimeactionsatregularintervals
∙MsTimer2
-usesthetimer2interrupttotriggeranactioneveryNmilliseconds.
∙OneWire
-controldevices(fromDallasSemiconductor)thatusetheOneWireprotocol.
∙PS2Keyboard
-readcharactersfroma
PS2
keyboard.
-providessoftwaresupportforServomotorsonanypins.
∙Servotimer1
-provideshardwaresupportforServomotorsonpins9and10
∙SimpleMessageSystem
-sendmessagesbetweenArduinoandtheputer
∙SSerial2Mobile
-sendtextmessagesoremailsusingacellphone(viaATmandsoversoftwareserial)
∙TextString
-handlestrings
∙TLC5940
-16channel12bitPWMcontroller.
∙X10
-SendingX10signalsoverACpowerlines
/****************************************/
arduino学习笔记4数据类型
有多种类型的变量,如下所述
boolean
布尔
char
字符
byte
字节
int
整数
unsignedint无符号整数
long
长整数
unsignedlong无符号长整数
float
浮点
double
双字节浮点
string
字符串
array
数组
arduino学习笔记5Arduuino复合运算符
+=,-=,*=,/=
Description描述
Performamathematicaloperationonavariablewithanotherconstantorvariable.The+=(etal)operatorsarejustaconvenientshorthandfortheexpandedsyntax,listedbelow.
对一个变量和另一个参数或变量完成一个数学运算。
+=(以及其他)可以缩短语法长度。
Syntax语法
x+=y;
//equivalenttotheexpressionx=x+y;
//等价于x=x+y;
x-=y;
//equivalenttotheexpressionx=x-y;
//等价于x=x-y;
x*=y;
//equivalenttotheexpressionx=x*y;
//等价于x=x*y;
x/=y;
//equivalenttotheexpressionx=x/y;
//等价于x=x/y;
Parameters参数
x:
anyvariabletype
x:
任何变量类型
y:
anyvariabletypeorconstant
y:
任何变量类型或常数
Examples范例
x=2;
x+=4;
//xnowcontains6
//x现在为6
x-=3;
//xnowcontains3
//x现在为3
x*=10;
//xnowcontains30
//x现在为30
x/=2;
//xnowcontains15
//x现在为15
x++;
//incrementxbyoneandreturnstheoldvalueofx
//将x的值加1并返回原来的x的值。
++x;
//incrementxbyoneandreturnsthenewvalueofx
//将x的值加1并返回现在的x的值。
x--;
//decrementxbyoneandreturnstheoldvalueofx
//将x的值减1并返回原来的x的值。
--x;
//decrementxbyoneandreturnsthenewvalueofx
//将x的值减1并返回现在的x的值。
anintegerorlong(possiblyunsigned)
一个整数或长整数(可以无符号)
Returns返回
Theoriginalor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- arduino 学习 资料
![提示](https://static.bingdoc.com/images/bang_tan.gif)