GduinoII简介 - gec-dev/GduinoII GitHub Wiki

初识GEC Arduino

Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它适用于对编程有兴趣的初学者们,Arduino能通过各种各样的传感器来感知环境,通过控制灯光、电动机和其他的装置来反馈、影响环境。现在也成了创客项目中控制器的首选,是不是已经着急于怎么使用它呢?本章就从认识Arduino开始讲起。

Arduino简介

Arduino平台由Arduino核心板和Arduino集成开发环境(IDE)组成。 Arduino控制器的型号有很多,目前使用最多的是Arduino UNO,作为Arduino平台的参考标准模板。同样功能和Arduino UNO基本一样,较典型的Arduino控制器有Arduino Nano和Arduino Pro Mini;还有各方面性能都有所提升的Arduino MEGA2560,这些控制器都能兼容Arduino UNO的程序。

下面就让我们以Arduino UNO为例介绍。

Arduino UNO的主要特征: (1)MCU(处理器):ATmega328p (2)正常工作电压:5V (3)输入电压(推荐):7~12V (4)输入电压(范围):6~20V (5)数字I/O(输入/输出)引脚:14个,分别为0~13,其中6个(3、5、6、9、10、11引脚作为模拟输出(PWM方式)引脚) (6)模拟输入引脚:6个,分表为A0~A5(这6个引脚也可作为模拟输入/输出引脚用) (7)I/O(输入/输出)引脚最大输出电流:40mA (8)3.3V电源输出接口最大输出电流:50mA

Arduino UNO控制器的结构如图1所示。

图1 Arduino UNO控制器

MCU(单片机):Arduino控制器的核心部件,是运行程序,收集、处理外界数据和发 出信号控制各种传感器的“首脑”。 复位按键:重制Arduino控制器恢复到刚上电时的样子,MCU(单片机)中运行的程序 会重新回到初始状态,在控制器出现故障时按下也可以再抢救一下。 数字输入/输出接口:MCU(单片机)通过改变每一路引脚的高、低电平(数字信号,程 序中为1或0)来控制各路传感器;相应的,通过读取每一路引 脚传过来的高、低电平来得知各路传感器的状态。 DC电源输入接口:通过电源适配器给Arduino控制器供电的接口,推荐输入电压为 7~12V。 电源指示灯:判断Arduino控制器是否上电的指示灯,灯亮即已经通电。 电源接口:可给传感器或者其他控制器供电(3.3V或5V)的接口。 稳压芯片:将供电的7~12V经芯片稳压之后输出稳定的5V给MCU(单片机)供电, MCU(单片机)的正常工作电压正是5V。 USB接口:作为控制板的另一种供电之一,同时也是程序上传到控制板的接口。 串口收发指示灯:串口,是控制板和电脑或者其他控制板通讯的接口,主要有两条 通道:Tx(控制器发送通道)、Rx(控制器接收通道),当控制器 通过串口向外部发送数据时,Tx指示灯闪烁,当控制器接收到外 部数据时,Rx指示灯闪烁。 ICSP编程接口:比较丰富的引脚接口,可通过配置SPI总线来实现多路传感器控制 或是SPI通信。

Arduino UNO控制器的电源供应方式有3种: (1)通过USB连线供电,供电电压为5V; (2)通过电源输入插座供电,供电电压为7~12V,经电路板稳压后提供5V工作电压; (3)通过电路板上的5V输出端供电(图1.1电源接口端),供电电压为5V。

Arduino UNO控制器有两个直流电源输出端(图1.1电源接口),分别为5V和3.3V,用于对外接设备供电。其中5V输出端能提供的最大电流为300mA,3.3V输出端能提供的最大电流为50mA。

GEC Arduino-核心板 Arduino UNO+WiFi R3 核心板是一块Arduino UNO和WIFI的集成板:电路板上搭载了ATmega328和一块拥有8M内存的ESP8266 WIFI芯片,电路板上已经把ATmega328芯片引脚都连接到必要的元器件上,或是做成了引脚接口方便外接设备,所有引脚可同时运行,也可以独立运行,方便用于Arduino项目的开发测试。 在USB接口方面搭载了串行转换芯片CH340G,我们通过USB接口就可以上传示例代码和固件到MCU(单片机)ATmega328芯片上,或是给ESP8266 WIFI芯片上传固件(WIFI芯片也需要有运行程序在芯片里面)。

注解 固件:就我们肉眼看到的电路板称为硬件,没固件的时候就相当于一块搬砖,通过USB接口上传固件到芯片里,就像给电路板注入了灵魂,使它能像手机电脑一样展示多种多样精彩的内容跟拥有丰富的功能。 核心板主要器件的结构如图2所示。

图2 GEC Arduino-核心板

核心板参数如下表1所示 MCU(单片机) ATmega328 Wi-Fi芯片 ESP8266 USB串行转换芯片 CH340G 电源输出 5V-800mA USB电源输入 5V (最大500mA) DC电源输入范围 9-24V

功率消耗 5V 800mA 逻辑电平 5V Wifi通讯频段 Wi-Fi 802.11 b/g/n 2.4 GHz USB接口类型 Micro USB 时钟频率 16MHz 正常工作电压 5V 数字I/O 引脚 14 模拟I/O引脚 6 内存大小 32M bit 接口类型 serial\OTA 工作温度范围 −40С°/+125С° 长×宽 53.34×68.58mm 重量 8 天线 Buil-in\external antenna

表1 GEC Arduino-核心板参数 板载拨码开关(DIP) 电路板上设置有一个拨码开关(每个引脚各有ON/OFF两个状态,通过单个或多个引脚的组合来实现不同需求)。通过引脚组合可以把电路板上的各模块给串联起来(可以理解成在模块之间搭起来一座桥,可以进行数据交换),例如: USB和MCU ATmega328、USB和ESP8266、ATmega328和ESP8266。 各引脚组合串联起来的模块如图3所示。

GND-OP|OU

USB+ESP

USB+MCU

MCU+ESP

图3 拨码开关对应模块

如果看图1.3还是一头雾水,那么就看看表2来加深一下理解吧。 1 2 3 4 5 6 7 8 USB + ESP8266(上传固件) OFF OFF OFF OFF ON ON ON NoUSE USB + ESP8266 OFF OFF OFF OFF ON ON OFF NoUSE USB + ATmega328(上传固件) OFF OFF ON ON OFF OFF OFF NoUSE ATmega328 + ESP8266 ON ON OFF OFF OFF OFF OFF NoUSE 所有模块独立工作 OFF OFF OFF OFF OFF OFF OFF NoUSE

表2 拨码开关状态和模式选择

对于拨码开关在实际中的使用,将在后面章节所提及,目前有个大概的了解就可以了,基本就是以下几个功能: (1)通过USB接口为ESP8266芯片上传固件时,5、6、7引脚置于ON档,其他引脚为OFF档。 (2)连接USB接口和ESP8266芯片时,5、6引脚ON档,其他引脚OFF档。 (3)通过USB接口为ATmega328芯片上传固件时,3、4引脚置于ON档,其他引脚为OFF档。 (4)连接ATmega328芯片和ESP8266芯片,1、2引脚ON档,其他引脚OFF档。 (5)当所有芯片需要独立工作时,所有引脚置于OFF档。 注意:第8引脚作为保留引脚,所以无需对其进行操作。 GEC Arduino-扩展板 Arduino 扩展板 Arduino扩展板通常具有和Arduino开发板一样的引脚位置,可以直接堆叠接插到Arduino电路上,进而实现特定功能的扩展。使用面包板来接插元件固然方便,但需要有一定的电子知识来搭建各种电路,而对于GEC Arduino扩展板来说,只需将其接插在Arduino核心板的对应引脚上,即可实现对扩展板上电路及元器件的操控,如图4所示。这样即可以快速搭建硬件电路,省去接线的复杂操作,也可避免因排针引脚认知较少,导致接线错误而损坏核心板。

图4 GEC Arduino套件接插

GEC Arduino扩展板属于传感器扩展板,顾名思义,板上搭载了各类的传感器,灵活运用核心板上给出的数字引脚、模拟引脚等。板上集成了LED灯、蜂鸣器、继电器、OLED显示屏等,通过图5我们来了解这些传感器的分布和模样吧。

图5 GEC GEC Arduino扩展板

扩展板IO参照 板载传感器所对应的引脚如表3来所示。 序号 模块、传感器 对应引脚(D数字、A模拟) 备注 1 用户按键 D2,D3 2 温湿度传感器 D4 3 蜂鸣器 D5 4 红外接收器 D6 5 LED灯 D7,D8 6 扩展接口(MiniUSB) D9,D10,D11 7 继电器 D12 8 ADC旋钮 A0 9 光照度传感器 A1 10 扩展接口(MiniUSB) A2,A3,D13 11 OLED屏幕(I2C总线) A4,A5 12 电源指示灯 5V电源指示灯 13 复位按键 CPU复位引脚

表3 扩展板传感器对照表

结合GEC Arduino核心板引脚,我们能更清晰的知道传感器的连接。