制定学习开发版的计划,今天先大体过一下整个教程。

http://www.bilibili.com/video/av6105302/ 视频中说可以自己制造亦可卫星放上天。

Arduino使用C/C++编写程序,虽然C++兼容C语言,但这是两种语言,C语言是一种面向过程的编程语言,C++是一种面向对象的编程语言。

并不是Arduino没有main函数,而是main函数的定义隐藏在了Arduino的核心库文件中。Arduino开发一般不直接操作main函数,而是使用Setup和loop这个两个函数。

Arduino控制器通电或复位后,即会开始执行setup() 函数中的程序,该部分只会执行一次。
通常我们会在setup() 函数中完成Arduino的初始化设置,如配置I/O口状态,初始化串口等操作。

在setup() 函数中的程序执行完后,Arduino会接着执行loop() 函数中的程序。而loop()函数是一个死循环,其中的程序会不断的重复运行。
通常我们会在loop() 函数中完成程序的主要功能,如驱动各种模块,采集数据等。

pinMode(,OUTPUT);
digitalWrite(,HIGH);

pinMode(13,OUTPUT)即是设置引脚的模式,这里设定了13脚为输出模式;而digitalWrite(13,HIGH) 是让13脚输出高电平数字信号。

面包板是专为我们进行各种电子实验所设计的工具。

发光二极管(图2-13),可以发光的二极管。
有正负两极,短脚为负极、长脚为正极。

三极管(图2-14),能起放大、开关等作用的元件。
有发射极(emitter,E)、基极(base,B)和集电极(collector,C)三级,
有pnp和npn 两种类型的三极管。

Leonardo简介:来源:http://www.arduino.cn/thread-1205-1-1.html

概述
Arduino Leonardo是基于ATmega32u4一个微控制器板。它有20个数字输入/输出引脚(其中7个可用于PWM输出、12个可用于模拟输入),一个16 MHz的晶体振荡器,一个Micro USB接口,一个DC接口,一个ICSP接口,一个复位按钮。它包含了支持微控制器所需的一切,你可以简单地通过把它连接到计算机的USB接口,或者使用AC-DC适配器,再或者用电池来驱动它。
Leonardo不同于之前所有的arduino控制器,他直接使用了ATmega32u4的USB通信功能,取消了USB转UART芯片。这使得Leonardo不仅可以作为一个虚拟的(CDC)串行/ COM端口,还可以作为鼠标或者键盘连接到计算机。它还有很多不同的地方,我们会在入门页面中介绍。

摘要
微控制器                          ATmega32u4
工作电压                          5V
输入电压(推荐)             7-12V
输入电压(限制)             6-20V
数字I/O引脚                     20
PWM通道                         7
模拟输入通道                   12
每个I/O直流输出能力       40毫安
3.3V端口输出能力            50毫安
Flash                              32 KB(ATmega32u4)其中4 KB由引导程序使用
SRAM                             2.5 KB(ATmega32u4)
EEPROM                         1 KB(ATmega32u4)
时钟速度                         16MHz

存储空间
ATmega32u4具有32KB的Flash(其中4KB被引导程序使用)。它还有2.5KB的SRAM和1KB的EEPROM(EEPROM的读写可以参见EEPROM库)。

输入和输出
通过使用pinMode(), digitalWrite(), and digitalRead() 函数,Leonardo上的20个I/O引脚中的每一个都可以作为输入输出端口。每个引脚都有一个20-50千欧的内部上啦电阻(默认断开),可以输出或者输入最大40ma的电流。此外部分引脚还有专用功能:

------

UART:0(RX)和1(TX) 使用ATmega32U4硬件串口,用于接收(RX)和发送(TX)的TTL串行数据。需要注意的是,Leonardo,的Serial类是指USB(CDC)的通信,而引脚0和1的TTL串口使用Serial1类。
TWI:2(SDA)和3(SCL)通过使用Wire库来支持TWI通信。
外部中断:2和3,这些引脚可以被配置
PWM:3、5、6、9、10、11、13能使用analogWrite()函数支持8位的PWM输出。
SPI:ICSP引脚。能通过使用SPI库支持SPI通信。需要注意的是,SPI引脚没有像UNO连接到任何的数字I/O引脚上,他们只能在ICSP端口上工作。这意味着,如果你的扩展板,没有连接6脚的ICSP引脚,那它将无法工作。
LED:13。有一个内置的LED在数字脚13上,当引脚是高电平事,LED亮,引脚为低电平时,LED不亮。
模拟输入:A0〜A5,A6~A11(数字引脚4,6,8,9,10,12) ,Leonardo有12个模拟输入,A0到A11,都可以作为数字I / O口。引脚A0-A5的位置上与UNO相同;A6-A11分别是数字I / O引脚4,6,8,9,10和12。每个模拟输入都有10位分辨率(即1024个不同的值)。默认情况下,模拟输入量为0-5V,也可以通过AREF引脚改变这个上限。
其他引脚:
AREF:模拟输入信号参考电压通过analogReference()函数使用。
Reset:通过置低该线路来复位arduino,通常用在带复位按键的扩展板上。

通信
要让Leonardo与电脑、其他arduino或者其他的微控制器通信,有多种设备。在0、1上ATmega32u4提供了UART TTL(5V)的通信方式,32u4还允许通过USB在电脑上虚拟COM端口来进行虚拟串行(CDC)通信。这个芯片使用标准的USB串行驱动(在Windows上需要一个.inf文件),可以作为一个全速USB2.0设备。arduino软件包含了一个串口监视器,可以与arduino板子相互发送或者接收简单的数据。当使用USB传输数据时,板子上RX、TX LED会闪烁(这个特性不是适用于0、1端口)。

SoftwareSerial库能让任意的数字I/O口进行串行通信。

ATmega32u4还支持TWI(I2C)和SPI通信。arduino软件有一个用于简化TWI(I2C)通信的 wire库。SPI通信可以使用SPI库。

Leonardo可以作为鼠标、键盘出现,也可以通过编程来控制这类键盘鼠标输入设备。

编程
Leonardo可以通过arduino软件来编程,选择Tool>board>Arduino Leonardo(根据你的控制器型号选择)。更多参考和教程。

Leonardo的ATmega32u4芯片烧写了一个引导程序,使得你可以不通过外部的硬件编程器也可以上传新的程序到Leonardo。bootloader使用AVR109协议通信。

你还可以绕过引导程序,使用外部编程器通过ICSP(在线串行编程)引脚烧写程序。

自动复位和引导程序的启动
在Leonardo中被设定为在上传时,软件建立连接让控制器复位,从而免去了我们手动按下复位按钮的操作。当Leonardo 作为虚拟(CDC)串行/COM端口以1200波特率运行时,复位功能将被促发,串口也将关闭。此时,处理器会复位,USB连接会断开(即虚拟(CDC)串行/COM端口 会断开)。处理器复位后,引导程序紧接着启动,大概要等待8秒来完成这个过程。引导程序也可以通过按板子上复位按钮来启动。注意当板子第一次通电时,如果有用户程序,他将直接跳转到用户程序区,而不启动bootloader。
Leonardo 最好的复位处理方式是在上传程序前让arduino软件端试图启动复位功能,而不是你手动点击复位按钮。
如果软件没有让控制板自动复位,你也可以通过手动按下复位按钮从而让板子复位运行引导程序

USB过流保护
Leonardo有一个自恢复保险丝,防止短路或过流,从而保护您的计算机的USB端口。虽然大多数计算机提供都带有内部保护,但保险丝也可以提供额外的保护。如果电流超过500 mA,保险丝会自动断开连接防止短路或过载。

物理特征
Leonardo PCB的最大长度和宽度分别为2.7和2.1英寸,超越前维延长的USB接口和电源插孔。有四个固定孔可以将板子固定在其他表面或者外壳上。注意,7、8数字引脚之间的距离是160mil(0.16“),而不是和其他脚一样的100 mil 间距。

教程:http://www.arduino.cn/thread-1066-1-1.html   6.Arduino Leonardo专题

http://www.arduino.cn/thread-2436-1-1.html Leonardo制作鼠标

Arduino开发版学习计划的更多相关文章

  1. Arduino开发版学习计划--蓝牙控制小车行走

    蓝牙模块一共6个引脚,我们一般只需要接4个线就可以了,分别是VCC.GND.TXD.RXD这四个引脚,我们分别接到arduino板子上,VCC接3.3V,GND接板子的GND,蓝牙TXD接板子的RXD ...

  2. Arduino开发版学习计划--直流电机

    代码来源:http://www.cnblogs.com/starsnow/p/4579547.html // --------------------------------------------- ...

  3. Arduino开发版学习计划--蜂鸣器

    文章内容参考:http://www.cnblogs.com/xiaowuyi/p/3343757.html 遇到不懂的方法,可以查看Arduino自带的API 就直接点击arduino的IDE里面菜单 ...

  4. Arduino开发版学习计划--小车的行走

    小车的前进后退,左右转弯 代码如下 void motor(char pin,char pwmpin,char state,int val) { pinMode(pin, OUTPUT); ) { an ...

  5. 酒旗少年狂暖风,至0基本的前端开发project教师们学习计划

    酒旗风暖少年狂,为0基础前端开发project师做学习计划 夜幕降暂时.走到一张废弃已久的书桌前,打开台灯,看到书桌上已经布满灰尘,而桌上的那盆羸弱的文竹已经枝繁叶茂.我擦干净了桌面,坐了下来,把买回 ...

  6. Sql Server 2008开发版(Developer Edition)过期升级企业版(Enterprise Edition)失败后安装学习版(Express Edition)

    最近一个多月,甚是悠哉,无事可做.上线的网站系统也没接到客户的反馈,反而觉得无聊之极了.上周五早上,一上QQ,就收到客户发来消息,管理平台无法登陆了.心里一惊,立马开始查找故障原因.翻看了系统日志,提 ...

  7. 治愈 JavaScript 疲态的学习计划【转载】

    来源:伯乐在线 - Rose Wang 像其他人一样,最近我读了 Jose Aguinaga 的文章 <How it feels to learn JavaScript in 2016>. ...

  8. ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  9. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

随机推荐

  1. RESTful风格的SSM框架搭建

    1 使用idea编辑工具,maven项目构建工具搭建RESTful风格的java项目 2 进行项目配置 2.1 pom文件依赖 <project xmlns="http://maven ...

  2. atitit.Atitit. Gui控件and面板-----服务端控件 java struts的实现最佳实践

    atitit.Atitit.  Gui控件and面板-----服务端控件 java struts的实现最佳实践 1. 服务器控件的类别 1 1.1. 数据控件:该类控件可细分为两种类型:数据源控件和数 ...

  3. vue2 vue-router2 webpack1

    转自:http://www.qinshenxue.com/article/20161106163608.html: 项目地址:https://github.com/qinshenxue/vue2-vu ...

  4. 0063 MyBatis入门示例

    MyBatis是一个"半自动化"的ORM框架,ORM即Object/Relation Mapping,对象关系映射,是面向对象编程语言跟关系型数据库的桥梁,将编程语言对Java实体 ...

  5. Flume线上日志采集【模板】

    Flume线上日志采集[模板] 预装软件 Java HDFS Lzo/Lzop 系统版本 Flume 1.5.0-cdh5.4.0 系统流程图 flume-env.sh配置文件 export JAVA ...

  6. hdu 1006 Tick and Tick 有技巧的暴力

    Tick and Tick Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  7. zepto与jquery冲突

    公司项目中一直用的都是zepto,但是jQuery扩展的插件比较多. jQuery有一个方法noConflict(),可以把jQuery的$改掉.var aa = $.noConflict();就用a ...

  8. elasticsearch安装与使用(2)-- centos7 安装测试的集群工具elasticsearch head

    elasticsearch-head是elasticsearch(下面称ES)比较普遍使用的可监控.测试等功能的集群管理工具,是由H5编写的单独的网页程序.使用方法网上很多,这里教大家一个超简单安装h ...

  9. 解决阿里云部署 office web apps ApplicationFailedException 报错问题

    查找这个问题,确实花费了很长时间,所以具体解析一下问题原因吧. 报错如下: 问题详情链接 New-OfficeWebAppsFarm:Office Online服务无法启动.有关详细信息,请参阅Win ...

  10. HashSet非常的消耗空间,TreeSet因为有排序功能,因此资源消耗非常的高,我们应该尽量少使用

    注:HashMap底层也是用数组,HashSet底层实际上也是HashMap,HashSet类中有HashMap属性(我们如何在API中查属性).HashSet实际上为(key.null)类型的Has ...