一直听到许多做物联网、智能家居的控制器使用的是Arduino,从师兄那里拿到了一块Arduino开发板,进行了一下午的学习,感觉这个适合小孩子们玩:)

废话少说,总结一下,便于以后可能会用得到。我主要参考了百度文库的一个60+页的《arduino从零开始学》和一些技术论坛如极客工坊吧。

由于之前学习过若干块开发板,这里主要探究他们的异同,移植问题。

个人总结为三部分:

一、arduino IDE环境的搭建

由于无法进入官网下载,这里选择了1.6.11免安装版,并且是中文环境,非常方便

(2)驱动的安装

这种老版本的CH340一般在电脑上无法识别,通过设备管理器里选择手动安装,选中arduino 安装路径里的drivers文件夹即可

  (3)如何编译

由于开发板主要通过串口进行程序的下载,所以需要选择开发板型号以及串口端口

之后,点击编译按钮、上传按钮实现程序的检错和下载。

二、基本语法的学习

(1)我们会发现arduino 主体程序包括两部分: setup()和 loop()

setup()只能初始化一次, 主要放置一些初始化函数如端口配置等

loop()里所以的语句会被反复执行需要小心。

(2)变量类型,全局/局部变量,数学运算符,关系运算符,逻辑运算符,位操作

    三大控制结构,数组,函数的学习

(3)一些 arduino 内置函数的学习

    比如串口配置打印显示,端口输入输出及赋值,pwm值的修改等

关于这部分,自己将学习的函数写成一个个小程序, 每个小程序设计不同知识点的学习,大家可以从中学习。附在后面。

三、以ardunio为核心控制器,完成一系列扩充功能。

由于笔者手上只有一块开发板,没有多余的面包板等配件,故该部分无法一一验证,不过总结一遍吧。

(1)首先要根据原理图观测开发板引脚的功能。

例如,在0-13引脚中:13引脚与LED相连,0/1引脚分别实现RX/TX功能,3/5/6/9/10/11/12/13端口输出电压值可变,即可实现pwm功能。

在A0-A5中,实现AD模拟输入的功能,能够将0-5v电压分成0-1023份,利用逐次逼近实现采样

数字电源,模拟电源等。

固定按键,或者那些端口可实现输入功能,进而扩展为上拉电阻式的按键设计电路

(2)功能的设计

显示类:数码管数字显示,LCD1602显示,OLED显示,8*8点阵显示...

按键类:外接独立按键,矩阵按键等

声控类:蜂鸣器,红外侦测等

定时中断类:时钟计数,脉冲计数,中断进行侦测,AD采样等

输出控制类:步进电机,舵机控制;LED亮度变化,直流电机等

通信类:SPI通信,uart通信,红外通信,外接网络端口通信

数据存储类:编码器译码器模块,SD模块等

   ....

附代码:

/*******************
*功能:显示串口打印信息
*作者:王茂春
*知识点:了解,入门,使用串口波特率设置函数、串口打印函数
*********************/
void setup() {
// put your setup code here, to run once:
Serial.begin();
} void loop() {
// put your main code here, to run repeatedly:
Serial.println("wanghello");
delay();
} /*******************
*功能:13引脚闪烁灯,时间间隔1000ms
*作者:王茂春
*知识点:引脚输出配置,高低电平配置
*********************/
void setup() {
// put your setup code here, to run once:
pinMode(,OUTPUT); //将13引脚设置为输出
} void loop() {
// put your main code here, to run repeatedly:
digitalWrite(,HIGH); // //将13引脚高电平
delay();
digitalWrite(,LOW); // //将13引脚低电平
delay();
} /*******************
*功能:13引脚闪烁灯,时间间隔变化:1000-5000ms
*作者:王茂春
*知识点:引脚输出配置,高低电平配置
* 全局变量使用,if-else语句使用,操作符+=、++等的使用
*********************/
int ledPin = ; //使用全局变量表明引脚为13
int delayTime = ; //延时100ms
void setup() {
// put your setup code here, to run once:
pinMode(ledPin,OUTPUT); //将13引脚设置为输出
} void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ledPin,HIGH); // //将13引脚高电平
delay(delayTime);
digitalWrite(ledPin,LOW); // //将13引脚低电平
delay(delayTime); delayTime+=;
if(delayTime ==)
{
delayTime = ; //恢复基准
}
} /*******************
*功能:全局数组数值打印
*作者:王茂春
*知识点:全局数组的初始化学习
* while循环的使用
*********************/
int arr[]={,,,,,,,,}; //全局数组声明并初始化
int count=; //定义计数器变量并初始化为0
void setup() {
// put your setup code here, to run once:
Serial.begin();
} void loop() {
// put your main code here, to run repeatedly:
while(count < )
{
Serial.println(arr[count]);
count++;
}
} /*******************
*功能:全局数组数值打印
*作者:王茂春
*知识点:全局数组的初始化学习
* for循环的使用.注意该程序有一个错误:
* 由于将计数器count初始化放置在for循环中,外加loop的影响导致该程序一直循环,容易死机
*********************/
int arr[]={,,,,,,,,}; //全局数组声明并初始化
void setup() {
// put your setup code here, to run once:
Serial.begin();
} void loop() {
// put your main code here, to run repeatedly:
for(int count=;count < ;count++ )
{
Serial.println(arr[count]);
}
} /*******************
*功能:max函数的调用
*作者:王茂春
*知识点:自定义函数的使用(无需声明)
* 考虑形参一致问题,考虑到本次实验无需循环,代码放在setup里
*********************/ void setup() {
// put your setup code here, to run once:
Serial.begin();
int a=,b=;
int value=maxValue(a,b);
Serial.println(value);
} void loop() {
// put your main code here, to run repeatedly: } int maxValue(int x,int y)
{
return x > y ? x:y;
}

今天就学习这么多了,希望和大家多多交流,推荐的博客有:

http://www.cnblogs.com/rayray/category/457863.html

http://www.cnblogs.com/shuqingstudy/

Arduino入门学习的更多相关文章

  1. arduino入门学习实现语音控制LED灯

    需要的准备的硬件arduino+PC+麦克风实现语音命令控制LED灯的亮灭. 首先需要将写好的arduino程序烧录到arduino uno主板中,下面是代码如下: int val;//定义变量val ...

  2. Arduino小车学习与研究

    信安系统设计基础实践模块 Arduino小车学习与研究 ================== 陈都(20135328) 余佳源(20135321) 莫凡(20135225) ---------- 索引 ...

  3. Arduino小车学习与研究博客

    Arduino小车学习与研究博客 信安系统设计基础实践模块 Arduino小车学习与研究 ================== 陈都(20135328) 余佳源(20135321) 莫凡(201352 ...

  4. Arduino入门笔记(6):温度传感器及感温杯实验

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.本次实验所需器材 1.Arduino板 :https://item.taob ...

  5. Arduino入门笔记(3):单LED闪烁

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 在搭建好arduino开发环境(http://www.cnblogs.com/xi ...

  6. arduino入门套件学习过程-安装配置

    arduino作为非常火的开源软硬件,有其巨大的优势和前景. 我呢,近期正好需要用arduino做一些小东西,借此机会,分享我的arduino学习历程,欢迎各位朋友一起讨论,指点! 现在进入正题: 这 ...

  7. vue入门学习(基础篇)

    vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标 ...

  8. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  9. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

随机推荐

  1. java XML转JSON格式

    标签: XML转Json json 2014-05-20 20:55 6568人阅读 评论(6) 收藏 举报  分类: [J2SE基础](20)  代码如下所示,从这个例子中发现了代码库的重要性,如果 ...

  2. 以太网数据包、IP包、TCP/UDP 包的结构(转)

    源:以太网数据包.IP包.TCP/UDP 包的结构 版本号(Version):长度4比特.标识目前采用的IP协议的版本号.一般的值为0100(IPv4),0110(IPv6). IP包头长度(Head ...

  3. 增量式PID的stm32实现(转)

    源:增量式PID的stm32实现,整定过程 首先说说增量式PID的公式,这个关系到MCU算法公式的书写,实际上两个公式的写法是同一个公式变换来得,不同的是系数的差异. 资料上比较多的是: 还有一种是: ...

  4. IOS开发者证书申请及应用上线发布详解(2014版)

    其实一直以来我都想做一个最齐全的上传应用到appstore的教程,但一直狠不下心,今天凌晨2点12分,我鼓起勇气写教程,来吧不多说.登录开发者中心:http://developer.apple.com ...

  5. iOS开发 调用系统相机和相册

    调用系统相机和相册 (iPad,iPhone)打开相机:(iPad,iPhone)//先设定sourceType为相机,然后判断相机是否可用(ipod)没相机,不可用将sourceType设定为相片库 ...

  6. ubuntu12.04+fuerte 下跑通lsd-slam——使用usb摄像头

    上一篇介绍了如何使用数据集跑lsd-slam,这篇介绍如何用一个普通的usb摄像头跑lsd-slam,默认ubuntu12.04,fuerte已经安装好,workspace也已设置,如果没有,请参考上 ...

  7. win7 下安装 ubuntu 16.04双系统

    Ubuntu 每年发布两个版本,目前最新正式版版本也升到了 16.04.Ubuntu 16.04 开发代号为"Xenial Xerus",为第六个长期支持(LTS)版本,其主要特色 ...

  8. IOS 7 Xcode 5 免IDP证书 真机调试(转载)

    最近转开发了,真的很久没有更新博客了,今天有空写一篇吧. 今天带来的是 IOS 7 Xcode 5 免IDP证书的真机调试.说白了就是穷,不想给苹果交那$99的钱. 注意:虽然可以用这个方法实现真机调 ...

  9. Linux内核探索之路——关于方法

    转载自:http://blog.chinaunix.net/uid-20608849-id-3014502.html   Linux内核实践之路 -给那些想从Linux内核找点乐趣的人 一个不能回避的 ...

  10. iOS UICollectionView高级用法(长按自由移动cell)-新

    [reference]http://www.jianshu.com/p/31d07bf32d62 iOS 9之后: 示例如下 效果 前言: 看完你可以学到哪些呢? 就是文章标题那么多, 只有那么多. ...