通过了解学习arduino,感觉特别适合一些业余爱好者们使用,新人容易上手。Arduino 你不需要知道单片机编程繁琐的细节,提供给你的是一套容易使用的工具包。 但同其它系统相比Arduino在很多地方更具有优越性:价格便宜,编程环境简单,与Processing 编程环境很相似。
Arduino是一款能够用来感应和控制现实物理世界的一套工具(积木式硬件拼接方式),它是一款开放源码的硬件平台且资料多,可以自己动手做开发板,有需要的也可以加我一起相互学习,其它啰嗦的话就不多说了,也靠平时网上查资料一点点积累,所以还是总结一下学到的一些知识点,方便以后查看,分享,当然也参考了别人的一下笔记(表示感谢)。 arduino平台的基础就是AVR指令集单片机(主要芯片Atmega328P-PU、Atmega2560)。开发软件版本 Arduino 1.6.4 已有更新版本。
以Atmega328为例:
Digital I/O 数字输入/输出端口0—13。
Analog I/O 模拟输入/输出端口0-5。
下图为自制的Mage2560:(Arduino Uno版本Atmega328的忘记拍照了)
1、Arduino基础、基本函数梳理 (详见后面3):
unsigned long millis(); //返回时间函数(单位ms)
delayMicroseconds(1000); //微秒延时函数 1000微妙=1毫秒
delay(1000) ; //毫秒延时函数 1000毫秒=1秒
Serial.read(); //读取持续输入的数据。
Serial.print(数据,数据的进制); //串行0输出数据。
Serial.print(数据); //默认为十进制等于Serial.print(数据,DEC)。
Serial.println(数据,数据的进制); //从串行端口输出数据,跟随一个回车和一个换行符。这个函数所取得的值与 Serial.print()一样。
pinMode(pin, mode) ;
下面以引脚2为例,其它引脚根据具体自身开发使用的引脚来定义:
pinMode(2, OUTPUT); 设置引脚2为输出模式
pinMode(2, INPUT); 设置引脚2为输入模式
digitalWrite(2, LOW); 控制引脚2输出低电平
digitalWrite(2, HIGH); 控制引脚2输出高电平
boolean flag = digitalRead(2) ; 读取引脚2的电平(1 or 0)
analogWrite(5,num); 引脚5输出模拟量(PWM),num的数值范围0~255,脚位通常会在3、5、6、9、10与11,具体根据开发板的。
unsigned int num= analogRead(A3); 引脚A3读取电压值0~5V(数值:0~1023)
矩阵按键4*4的程序应用:
#include "Keypad.h" //头文件
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','4'},
{'5','6','7','8'},
{'A','B','9','C'},
{'*','0','#','D'} };
byte rowPins[ROWS] = {39, 41, 43, 45}; //矩阵按键端口
byte colPins[COLS] = {44, 42, 40, 38}; //
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
int key = keypad.getKey();//读取到的键值
2、开发板介绍:
因其开源特性,生产arduino控制板的厂商众多,多种颜色。
对于一些对电路板大小要求比较严格的地方,arduino团队提供了arduino Nano开发板,此板体积做的非常小。
arduino开发板特殊端口的说明:
VIN端口:VIN是input voltage的缩写,表示有外部电源时的输入端口。
AREF: Reference voltage for the analog inputs(模拟输入的基准电压)。使用analogReference()命令调用。
ICSP:也有称为ISP(In System Programmer),就是一种线上即时烧录,目前比较新的芯片都支持这种烧录模式。只需要准备一条R232线(连接烧录器),以及一条连接烧录器与烧录芯片针脚的连接线就可以。电源的+5V,GND,两条负责传输烧录信息的针脚,再加上一个烧录电压针脚,这样就可以烧录了。
3、实例及C语言关键字:
void setup()
{
Serial.begin(9600); // 打开串口,设置波特率为9600 bps
}
void loop()
{
int val;
val=analogRead(5);//传感器接到模拟口5,数值根据自己的需要可变
Serial.println(val,DEC);//从串口发送字符串并换行
delay(100);
}
/*************基础C语言*************/
结构
• void setup() 初始化变量,管脚模式,调用库函数等
• void loop() 连续执行函数内的语句 即主函数main
关键字:
• if
• if...else
• for
• switch case
• while
• do... while
• break
• continue
• return
• goto
语法符号:
• ;
• {}
• //
• /* */
完整的Word格式文档51黑下载地址:
Arduino学习笔记 陆 龙.doc
(8.24 MB, 下载次数: 47)
|