找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2460|回复: 2
打印 上一主题 下一主题
收起左侧

Arduino学习笔记

[复制链接]
跳转到指定楼层
楼主
通过了解学习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, 下载次数: 45)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:889490 发表于 2021-6-26 10:46 | 只看该作者
很好,有更新吗?
回复

使用道具 举报

板凳
ID:138707 发表于 2021-7-3 20:55 | 只看该作者
进来看看 学习一下谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表