当前位置:文档之家› Arduino学习笔记A7 - Arduino 输出引脚扩流

Arduino学习笔记A7 - Arduino 输出引脚扩流

Arduino学习笔记A7 - Arduino 输出引脚扩流
Arduino学习笔记A7 - Arduino 输出引脚扩流

Arduino学习笔记A7 - Arduino 输出引脚扩流

使用Arduino时候,经常需要控制大电流或者高压负载。但是Arduino只有最大5v,20mA的引脚输出。必须要通过扩流电路。扩流的方法有很多。下面介绍几种方法,适合在不同场合下面使用。

注意:下述电路图的负载均用电阻符号代替,符号标志是电子学的负载符号RL,就是R(load)的意思。

1、小功率NPN三极管扩流(适用于扩展后负载电压5v以下,负载电流建议<1A)。

Arduino输出引脚直接连电阻驱动三极管基极。

复杂度:★★☆☆☆;成本:★☆☆☆☆;可扩流倍数:★☆☆☆☆;

优点:简单方便,成本低。开关频率上限直接由三极管决定,可以做的很高;

缺点:受控大电流和Arduino直接连通,所以外置驱动电源不建议超过5v,以免外置电源的电压通过Q1倒灌到Arduino引脚引起Arduino烧坏。

选材:三极管Q1可以选用小功率的NPN三极管。推荐型号有2SC1815,2N2222,8050,2SD882等(点元件名看对应数据手册,下同);基极电阻R1必不可少,否则会导致Arduino因为引脚负载过大而发热甚至烧毁。R1阻值在100Ω~10k之间均可,推荐值1kΩ。所有电阻功率无要求,贴片0805以上,直插1/8w以上的就行,以下所有电路均使用这种电阻规格。

2、固态继电器(光耦)扩流(适用于220V交流直接控制,或者大功率直流控制,建议用于负载电流0.2A~40A间)

使用现成的固态继电器可以很方便的被Arduino控制。对于Arduino来说,驱动固态继电器就像驱动一个LED那么简单。

直流控制直流

直流控制交流

复杂度:★☆☆☆☆;成本:★★★★★;可扩流倍数:★★★★★;

优点:使用最简单,抗干扰能力最强,无电磁干扰。可以控制交流电/直流电,并且可以控制很大电流的负载。

缺点:成本很高

选材:注意的是,固态继电器有两种:直流控制交流固态继电器/直流控制直流固态继电器。它们的

受控端有本质的区别,不能混用。直流控交流的交流是用可控硅进行开关的,而直流控直流用的是三极管或者场效应管进行开关。下面会对两种继电器仿制进行介绍的(见3)。

3、带光耦隔离NPN三极管扩流(适用于大范围负载电压,建议用于负载电流1A~5A间)

通过光耦加扩流做出一个控制/受控隔离的直流控制器。完全等效于直流固态继电器。

复杂度:★★★★☆;成本:★★☆☆☆;可扩流倍数:★★★★★;

优点:控制电流小,等效于驱动一只LED。受控大电流和Arduino控制板完全电气隔离,即使受控部分发生事故烧毁了,也不会影响到Arduino主板。

缺点:电路比直接扩流复杂,成本稍高。

选材:三极管可以选择2SD882,2SD669A,TIP122(5A达林顿管)等。光耦使用PC817等廉价光耦即可。

4、继电器扩流(适用于低速,对受控端开关电阻有要求的场合,建议用于负载电流0~3A间)

用一个小功率三极管扩流,然后控制一个5v的继电器。

复杂度:★★★★☆;成本:★★★☆☆;可扩流倍数:★★★★★;

优点:扩流电流大,并且由于继电器是机械闭合触点,闭合电阻基本为零,不像固态继电器或者三极管,有正向压降;适用于对闭合电阻要求高的场合,比如受控端是开关0~0.7v的信号。使用三极管或者固态继电器就不能工作了,只能使用继电器。

缺点:低速,每秒最快只能开关几次;机械开关使用寿命短,开关频率高的话,很快就会坏掉。成本高,电路也不简单;开关电流大,需要充足的电源供给继电器吸合。有较强的空间电磁干扰(EMI),会对高速数字电路(USB,串口,视频等)或者小信号模拟电路(音频信号线,仪器测量输入线)造成干扰。必须做好屏蔽措施;并且继电器断开时候会产生反向高压,必须处理反压。

选材:继电器必须选用5v控制的,因为Arduino只有5v。并且继电器吸合电流必须小于200mA,不能影响Arduino使其工作电压不稳。如果不能满足的话,可以尝试继电器级联,即小继电器拖动大继电器。

5、场效应管扩流(适用于大负载直流电流,建议用于负载电流5A~100A间)

用场效应管代替三极管扩流。由于场效应管属于电压控制型器件,输入电流极小。与三极管扩流相比,可以获得更快的开关速度和更小的输入电流,并且可以控制很大的直流电流(比如10~50A)。用Arduino驱动的话。驱动电路跟1、3几乎一样,只是换了场管。

复杂度:★★★★☆;成本:★★★★☆;可扩流倍数:★★★★★;

优点:控制电流小,等效于驱动一只LED。受控大电流和Arduino控制板完全电气隔离,即使受控部分发生事故烧毁了,也不会影响到Arduino主板。有最高的控制速度,并且电流也可以做的非常大。缺点:电路比较复杂,场效应管成本比三极管更高。

选材:场效应管可以使用普通的N沟道增强型场效应管(N-Channel Enhancement Mode Field Effect Transistor)。笔者用过的型号有:CEP80N75(75V,80A,75W),IXGQ240N30P(IGBT管,240A,300V,500W),IRF630(9A,200V,75W)等。

Arduino学习笔记A7 - Arduino 输出引脚扩流

Arduino学习笔记A7 - Arduino 输出引脚扩流 使用Arduino时候,经常需要控制大电流或者高压负载。但是Arduino只有最大5v,20mA的引脚输出。必须要通过扩流电路。扩流的方法有很多。下面介绍几种方法,适合在不同场合下面使用。 注意:下述电路图的负载均用电阻符号代替,符号标志是电子学的负载符号RL,就是R(load)的意思。 1、小功率NPN三极管扩流(适用于扩展后负载电压5v以下,负载电流建议<1A)。 Arduino输出引脚直接连电阻驱动三极管基极。 复杂度:★★☆☆☆;成本:★☆☆☆☆;可扩流倍数:★☆☆☆☆; 优点:简单方便,成本低。开关频率上限直接由三极管决定,可以做的很高; 缺点:受控大电流和Arduino直接连通,所以外置驱动电源不建议超过5v,以免外置电源的电压通过Q1倒灌到Arduino引脚引起Arduino烧坏。 选材:三极管Q1可以选用小功率的NPN三极管。推荐型号有2SC1815,2N2222,8050,2SD882等(点元件名看对应数据手册,下同);基极电阻R1必不可少,否则会导致Arduino因为引脚负载过大而发热甚至烧毁。R1阻值在100Ω~10k之间均可,推荐值1kΩ。所有电阻功率无要求,贴片0805以上,直插1/8w以上的就行,以下所有电路均使用这种电阻规格。

2、固态继电器(光耦)扩流(适用于220V交流直接控制,或者大功率直流控制,建议用于负载电流0.2A~40A间) 使用现成的固态继电器可以很方便的被Arduino控制。对于Arduino来说,驱动固态继电器就像驱动一个LED那么简单。 直流控制直流 直流控制交流 复杂度:★☆☆☆☆;成本:★★★★★;可扩流倍数:★★★★★; 优点:使用最简单,抗干扰能力最强,无电磁干扰。可以控制交流电/直流电,并且可以控制很大电流的负载。 缺点:成本很高 选材:注意的是,固态继电器有两种:直流控制交流固态继电器/直流控制直流固态继电器。它们的

串并口引脚定义图

串口引脚排列图 RS-232 — DB9孔式 Pin No. Signal 1 DCD 2 TxD 3 RxD 4 DSR 5 GND 6 DTR 7 CTS 8 RTS 9 --- RS-232 — DB9针式 Pin No. Signal 1 DCD 2 RxD 3 TxD 4 DTR 5 GND 6 DSR 7 RTS 8 CTS 9 --- RS-232 — DB25孔式 Pin No. Signal 2 RxD 3 TxD 4 CTS 5 RTS 6 DTR 7 GND 8 DCD 20 DSR

RS-232 — DB25针式 Pin No. Signal 2 TxD 3 RxD 4 RTS 5 CTS 6 DSR 7 GND 8 DCD 20 DTR RS-232 — RJ45(8 pin) Pin No. Signal 1 DSR 2 RTS 3 GND 4 TxD 5 RxD 6 DCD 7 CTS 8 DTR RS-232 — RJ45(10-pin) Pin No. Signal 1 DCD 2 DSR 3 RTS 4 GND 5 TxD 6 RxD 7 GND 8 CTS 9 DTR 10 ---- RS-422 — DB25孔式— for Opt8F/Z

Pin No. Signal 2 RxD+(B) 3 TxD+(B) 7 GND 14 RxD-(A) 16 TxD-(A) RS-422/485 — DB25孔式— for Opt8K Pin No. RS-422 signal RS-485 signal 2 RxD+(B) Data+ 3 TxD+(B) 7 GND 14 RxD-(A) Data- 16 TxD-(A) PC 并行接口引脚定义PC 并行接口外观是 25 针母插座: 引脚定义

串口并口通讯针脚功能一览表

并口针脚功能一览表 针脚功能针脚功能 1 选通端,低电平有效 10 确认,低电平有效 2 数据通道0 11 忙 3 数据通道1 12 缺纸 4 数据通道2 13 选择 5 数据通道3 14 自动换行,低电平有效 6 数据通道4 15 错误,低电平有效 7 数据通道5 16 初始化,低电平有效 8 数据通道6 17 选择输入,低电平有效 9 数据通道7 18到25 地线 25针串口功能一览表 针脚功能针脚功能 1 空 11 空 2 发送数据 12到17 空 3 接收数据 18 空 4 发送请求 19 空 5 发送清除 20 数据终端准备完成 6 数据准备完成 21 空 7 信号地线 22 振铃指示 8 载波检测 23到24 空 9 空 25 空 10 空 9针串口功能一览表 针脚功能针脚功能 1 载波检测 6 数据准备完成 2 接收数据 7 发送请求 3 发送数据 8 发送清除 4 数据终端准备完成 9 振铃指示 5 信号地线 联机线的连接方法 联机线主要用于直接把两台电脑连接,分为串口(com1,com2)联机线和并口(lpt1)联机线。比较早一点的AT架构的电脑的串口有为9针,和25针两种,现在的ATX架构的电脑两个串口全部是9针。打印机的接口也是25针的但功能、外观上与AT架构的25针串口不一样。于是联机线就分为4种(9针对9针串口联机线,9针对25针串口联机线,25针对25针串口联机线,25针对25针并口联机线)其中3种串口连接,一种并口连接。并口联机线和串口联机线最大的差别就是速度,前者明显快于后者。这些直接电缆连接线的两个头完全相同可以互换的连线方法如下表: 首先我们必须准备2个连接头,以及大约1.5米的联机线,联机线应该选用带屏蔽的多芯线,把多余未用的芯全部接在接头的金属壳(地线)作为屏蔽用。 串口连机线一览表

PS2、USB、DB-9、网卡、串口、并口、VGA针脚定义及接口定义图

PS2、USB、DB-9、网卡、串口、并口、VGA针脚定义及接口定义图 以下为仅为主板各接口的针脚定义,外接出来的设备接口则应与主板对应接口针脚定义相反,如鼠标的主板接口定义为6——数据,4——VCC,3——GND,1——时钟,鼠标线的接口定义则与之相反为5——数据,3——VCC,4——GND,2——时钟;其他外接设备与此相同。 首先是ATX 20-Pin电源接口电源接口,根据下图你可方便判断和分辨。现在为提高CPU 的供电,从P4主板开始,都有个4P接口,单独为CPU供电,在此也已经标出。

鼠标和键盘绝大多数采用PS/2接口,鼠标和键盘的PS/2接口的物理外观完全相同,初学 者往往容易插错,以至于业界不得不在PC'99规范中用两种不同的颜色来将其区别开,而 事实上它们在工作原理上是完全相同的,从下面的PS/2接口针脚定义我们就可以看出来。

上图的分别为AT键盘(既常说的大口键盘),和PS2键盘(即小口键盘),如今市场上PS2键盘的数量越来越多了,而AT键盘已经要沦为昨日黄花了。因为键盘的定义相似, 所以两者有共同的地方,各针脚定义如下: 1、DATA 数据信号 2、空 3、GND 地端 4、+5V 5、CLOCK 时钟 6 空(仅限PS2键盘) USB(Universal Serial Bus,通用串行总线)接口是由Compaq、IBM、Microsoft等多家公 司于1994年底联合提出的接口标准,其目的是用于取代逐渐不适应外设需求的传统串、 并口。1996年业界正式通过了USB1.0标准,但由于未获当时主流的Win95支持(直到 Win95 OSR2才通过外挂模块提供对USB1.0的支持)而未得到普及,直到1998年 USB1.1标准确立和Win98内核正式提供对USB接口的直接支持之后,USB才真正开始 普及,到今天已经发展到USB2.0标准。 USB接口的连接线有两种形式,通常我们将其与电脑接口连接的一端称为“A”连接头,而将连接外设的接头称为“B”连接头(通常的外设都是内建USB数据线而仅仅包含与电脑相 连的“A”连接头)。 USB接口是一种越来越流行的接口方式了,因为USB接口的特点很突出:速度快、兼容 性好、不占中断、可以串接、支持热插拨等等,所以如今有许多打印机、扫描仪、数字摄 像头、数码相机、MP3播放器、MODEM等都开始使用USB做为接口模式,USB接口定 义也很简单: 1 +5V 2 DATA-数据- 3 DATA+数据+ 4 GND 地 主板一般都集成两个串口,可Windows却最多可提供8个串口资源供硬件设置使用(编号COM1到COM8),虽然其I/O地址不相同,但是总共只占据两个IRQ(1、3、5、7共享 IRQ4,2、4、6、8共享IRQ3),平常我们常用的是COM1~COM4这四个端口。我们经 常在使用中遇到这个问题——如果在COM1上安装了串口鼠标或其他外设,就不能在 COM3上安装如Modem之类的其它硬件,这就是因为IRQ设置冲突而无法工作。这时玩 家们可以将另外的外设安装在COM2或4。 标准的串口能够达到最高115Kbps的数据传输速度,而一些增强型串口如

基于Protues的Arduino学习笔记01-Arduino UNO实验板设计

基于Protues的Arduino学习笔记01-Arduino UNO实验板 设计 (2013-05-13 20:13:33) 本文将带你使用protues 7.10搭建一个Arduino UNO的实验板,方便以后在protues仿真软件上进行Arduino的实验。参考本文,你还可以自己动手构建出Arduino MEGA 2560等一系列Arduino开发平台。 Arduino UNO是Arduino USB接口系列的最新版本,是Arduino平台的参考标准模板。Arduino UNO的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,Flash Memory 32KB (其中0.5KB 用于bootloader【注】)、SRAM 2KB、EEPROM 1KB,工作时钟 16 MHz【文献1】。 【注】:在仿真情况下,不需要bootloader去引导程序下载,只需要将Arduino IDE编译生成的HEX文件导入ATmega328P单片机即可。 以上对Arduino UNO的介绍摘自网上,通过这些介绍,我们可以知道Arduino UNO的资源分配情况。图1为Arduino UNO的引脚图,从图中我们可以清楚地看出ATmega328P的物理引脚与Arduino所定义的功能之间的关系,从而可以将功能引脚标注出来。

图1 Arduino UNO与ATmega328P引脚关系图【文献2】 Protues软件是英国Labcenter Electronics公司出版的EDA工具软件,不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具【文献3】。 下面我们打开protues 7.10软件,进入元器件的选择,在元器件一栏中输入“ATmega328P”,并选取ATmega328P单片机,如图2所示。然后,在元器件一栏中输入“RES”,选取电阻, 如图3所示。接着,在元器件一栏中输入“LED-GREEN”,选取绿色的LED灯(你也可以选择红色或者黄色的),如图4所示。最后,在元器件一栏中输入“COMPIM”,并添加到元器件域中,如图5所示。

arduino学习笔记18 - SD卡读写实验

本次实验使用arduino驱动SD卡,在SD卡中进行文件读写。 需要说明的是arduino的SD库文件,目前对2G以上的卡支持不是很好,所以推荐大家使用2G包含2G以下的,文件格式使用FAT格式。这次我是用的是kingmax2G的MicroSD卡。 先看一下硬件连接图

把下面代码下载进arduino 控制板 /* 此例子展示如果记录三个模拟引脚数值到SD 卡,使用SD 库。

电路部分 * 模拟引脚使用模拟口0,1,2大家可以根据情况接入模拟传感器, 如果没有,也可以完成此实验,只不过数值是不停跳动的干扰源。 * SD卡与arduino控制板使用SPI总线连接 ** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 4 */ #include // CS引脚为pin4,这里也沿用官方默认设置 const int chipSelect = 4; //设定CS接口 void setup() { Serial.begin(9600); //设置串口通信波特率为9600 Serial.print("Initializing SD card..."); //串口输出数据Initializing SD card... pinMode(10, OUTPUT); if (!SD.begin(chipSelect)) { //如果从CS口与SD卡通信失败,串口输出信息Card failed, or not present Serial.println("Card failed, or not present"); return; } Serial.println("card initialized."); //与SD卡通信成功,串口输出信息card initialized. }

Arduin学习笔记

Arduin学习笔记 void setup{}函数初始化 void loop{}函数循环 pinMode(13,OUTPUT/INPUT)引脚13定义为输出、入模式digitalWrite(13,HIGH/LOW)13引脚输出高、低电平delay()延迟函数 analogRead() 读取模拟量函数 analogWrite()写入模拟量函数 map()函数 Serial.begin(波特率值)串口通信函数 Serial.print()是输出你要的内容横排显示 Serial.println()是输出要显示的内容后自动换行 Arduino 参考手册 Arduino 开发语言提供全部的 C 语言特性和 C++ 语言的部分特性 . 通过链接到 AVR 的 libc 库 online~

, 可以使 用库中提供的函数. 具体的应用细节请参考相关文档. 程序结构 在Arduino中, 标准的程序入口main函数在内部被定义, 用户只需要关心以下两个函数: void setup() void loop() setup()函数用于初始化, loop()函数用于执行. 初始化函数一般放在程序开头, 用于设置一些引脚的输出/输入模式, 初始化串口通讯等类似工作. loop()函数中的代码将被循环执行, 例 如: 读入引脚状态,设置引脚输出状态等. 控制语句 if if...else for switch while do...while break continue return goto 相关语法 ;(分号) {}(大括号) // (单行注释) /* * /(多行注释) #define #include 算术运算符 = (赋值) + (加) - (减) * (乘) / (除) % (取模) 比较运算符 == (等于) != (不等于) < (小于) > (大于)

串口和并口及引脚定义(精)

串口和并口的区别悬赏分:0 - 解决时间:2006-10-19 10:01 电脑25针和9针的口哪个是串口哪个是并口有什么区别啊提问者: gr_honey - 三级最佳答案RS-232串行接口定义计算机侧为25针公插: 设备侧为25针母插: 引脚定义 Pin Name ITU-T Dir Description 1 GND 101 Shield Ground 2 TXD 103 Transmit Data 3 RXD 104 Receive Data 4 RTS 105 Request to Send 5 CTS 106 Clear to Send 6 DSR 107 Data Set Ready 7 GND 102 System Ground 8 CD 109 Carrier Detect 9 - - RESERVED 10 - - RESERVED 11 STF 126 Select Transmit Channel 12 S.CD ? Secondary Carrier Detect 13 S.CTS ? Secondary Clear to Send 14 S.TXD ? Secondary Transmit Data 15 TCK 114 Transmission Signal Element Timing 16 S.RXD ? Secondary Receive Data 17 RCK 115 Receiver Signal Element Timing 18 LL 141 Local Loop Control 19 S.RTS ? Secondary Request to Send 20 DTR 108 Data Terminal Ready 21 RL 140 Remote Loop Control 22 RI 125 Ring Indicator 23 DSR 111 Data Signal Rate Selector 24 XCK 113 Transmit Signal Element Timing 25 TI 142 Test Indicator PC/AT 机上的串行口是 9 针公插座,引脚定义为: Pin Name Dir Description 1 CD Carrier Detect 2 RXD Receive Data 3 TXD Transmit Data 4 DTR Data Terminal Ready 5 GND System Ground 6 DSR Data Set Ready 7 RTS Request to Send 8 CTS Clear to Send 9 RI Ring Indicator PC/XT 机上的串行口是 25 针公插座,引脚定义为: Pin Name Dir Description 1 SHIELD - Shield Ground 2 TXD Transmit Data 3 RXD Receive Data 4 RTS Request to Send 5 CTS Clear to Send 6 DSR Data Set Ready 7 GND - System Ground 8 CD Carrier Detect 9 n/c - 10 n/c - 11 n/c - 12 n/c - 13 n/c - 14 n/c - 15 n/c - 16 n/c - 17 n/c - 18 n/c - 19 n/c - 20 DTR Data Terminal Ready 21 n/c - 22 RI Ring Indicator 23 n/c - 24 n/c - 25 n/c - PC 并行接口定义 PC 并行接口外观是 25 针母插座: Pin Name Dir Description 1 /STROBE Strobe 2 D0 Data Bit 0 3 D1 Data Bit 1 4 D2 Data Bit 2 5 D3 Data Bit 3 6 D4 Data Bit 4 7 D5 Data Bit 5 8 D6 Data Bit 6 9 D7 Data Bit 7 10 /ACK Acknowledge 11 BUSY Busy 12 PE Paper End 13 SEL Select 14 /AUTOFD Autofeed 15 /ERROR Error 16 /INIT Initialize 17 /SELIN Select In 18 GND Signal Ground 19 GND Signal Ground 20 GND Signal Ground 21 GND Signal Ground 22 GND Signal Ground 23 GND Signal

十个中文例程教会你轻松上手制作Arduino智能小车

十个中文例程教会你轻松上手制作Arduino智能小车 Arduino简介 Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino 板)和软件(arduino IDE)。适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器对Arduino的编程是利用Arduino编程语言(基于Wiring)和Arduino开发环境(based on Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信(比如Flash, Processing, MaxMSP)来实现。 你可以自己自己动手制作,也可以购买成品套装;Arduino所使用到的软件都可以免费下载。硬件参考设计(CAD 文件)也是遵循availableopen-source协议, 你可以非常自由地根据你自己的要求去修改他们。 本文精选了Arduino教程、例程、设计案例,集结了国内外官方资料和资深工程师的经验,是学习AArduino的必备宝典。 小车、机器人篇 1、Arduino互动玩偶BOXZ 此设计制作在2013年Atmel AVR英雄视频大赛中荣获奖励,并且参与了2014的深圳制汇节。BOXZ,昵称盒仔,其创意始于2012年6月初。当时的想法是设计一款基于Arduino 的入门级机器人,可以和三五好友在有限的空间里进行踢足球等互动,而且要做到取材容易制作简单,在设计的上采用了模块化的接插结构,同时还要注重外观拥有个性。 2、基于Arduino的自平衡遥控小车 车模平衡控制也是通过负反馈来实现的。因为车模有两个轮子着地,车体只会在轮子滚动的方向上发生倾斜。控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡了。 3 当自家的遥控蓝牙小车坏掉的时候不是只能扔掉,作为创客不但要学会制造东西,更要学会修理东西,来看看这位创客是如何修理他的小车的吧!小车采用大电流MOSFET做的电机驱动驱动电机,用Atmega328单片机作为主控,读取航模遥控器(天六A 2.4G)的PWM 信号,然后电机驱动板,转向舵机直接接到航模遥控器的横滚通道控制转向,用天六的第5通道(开关通道)选择前进还是后退 4、基于Arduino的盒子遥控机器人 BOXZ,昵称盒仔。是一款开源的互动娱乐平台!我们将Arduino,亚克力板和纸模型创意的结合在一起,让大家可以快速搭建自己的遥控玩偶,开展互动体验,而它的组装就像搭乐高积木一样简单!而盒仔的外形和功能完全取决于您的创意。我们可以用它来搞足球比赛,角色扮演,赛车或对战,甚至拍MV!

atmel ASF学习笔记

Atmel asf学习笔记 前言 前一段时间入手了一块Arduino DUE开发板,入手后网上查询资料发现资料很少,并且和很多的模块不兼容,这块板子的IO口只能承受3.3v的电压,如果想使用5v的模块,又要动手做兼容模块。又因为这块板子采用的MCU是SAM3X8E 是一款ARM的主控,就想把它作为cortex M3开发板使用。 环境搭建 开发工具:atmel studio 6.1 烧写工具:bossac.exe 开发工具可以在Atmel官网下载,bossac.exe可以从arduino中提取 建立工程 为了快速上手这块板子,我决定采用atmel的asf框架 创建示例工程,由于在单片机程序开发中,需要通过串口输入输出调试信息,所以首先要实现串口通讯,这里先创建一个串口通讯程序的模板

接下来就ok了 编译通过下载到mcu中

接下来打开串口,查看输出信息 测试通过! ASF之串口学习 #include #include "asf.h"//包含了所需要的模块

#include "stdio_serial.h"//串口的出入输出定义 #include "conf_board.h" #include "conf_clock.h" #include "conf_example.h"//定义了串口中断入口函数,波特率,串口端口号 /** Size of the receive buffer used by the PDC, in bytes. */ #define BUFFER_SIZE 100 //定义外设DMA控制器缓冲区大小(字节) /** USART PDC transfer type definition. */ #define PDC_TRANSFER 1 //串口发送类型定义 /** USART FIFO transfer type definition. */ #define BYTE_TRANSFER 0 //串口发送队列类型定义 /** Max buffer number. */ #define MAX_BUF_NUM 1 /** All interrupt mask. */ #define ALL_INTERRUPT_MASK 0xffffffff /** Timer counter frequency in Hz. */ #define TC_FREQ 1 #define STRING_EOL "\r" #define STRING_HEADER "-- USART Serial Example --\r\n" \ "-- "BOARD_NAME" --\r\n" \ "-- Compiled: "__DATE__" "__TIME__" --"STRING_EOL /** Receive buffer. */ static uint8_t gs_puc_buffer[2][BUFFER_SIZE]; /** Next Receive buffer. */ static uint8_t gs_puc_nextbuffer[2][BUFFER_SIZE]; /** Current bytes in buffer. */ static uint32_t gs_ul_size_buffer = BUFFER_SIZE; /** Current bytes in next buffer. */ static uint32_t gs_ul_size_nextbuffer = BUFFER_SIZE; /** Byte mode read buffer. */ static uint32_t gs_ul_read_buffer = 0;

arduino学习笔记

arduino学习笔记 arduino学习笔记1 - 什么是arduino? 要了解arduino就先要了解什么是单片机,arduino平台的基础就是A VR指令集的单片机。 1、什么是单片机?它与个人计算机有什么不同? 一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU(进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。 2、单片机有什么用? 实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。 单片机通常用于工业生产的控制、生活中与程序和控制有关(如:电子琴、冰箱、智能空调等)的场合。 下图就是一个Atmega328P-PU单片机,基于A VR指令集的8位处理器,频率20MHz,存储器空间32KB。 什么是Arduino? Arduino是一个能够用来感应和控制现实物理世界的一套工具。它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。 Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。Arduino项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP)进行通讯。Arduino板你可以选择自己去手动组装或是购买已经组装好的;Arduino开源的IDE可以免费下载得到。 Arduino的编程语言就像似在对一个类似于物理的计算平台进行相应的连线,它基于处理多媒体的编程环境。

电脑串口及并口连接线大全(附针脚定义)

电脑串口及并口连接线大全 在电脑的使用中往往会遇到各种各样的连接线。这些连接线外观上好像都差不多,但内部结构完全不同并且不能混用。如果在使用中这些连接线坏了,往往很多使用者都不知道应该怎么办,下面就给出这些常见的连接线的连线方法以便于修理或查找故障。在介绍之前先对一些市场常用名词做出解释。现在所有的接头都可以分为公头和母头两大类。 公头:泛指所有针式的接头。母头:泛指所有插槽式的接头。 所有接头的针脚有统一规定,在接头上都印好了的,连接时要注意查看。 在接线时没有提及的针脚都悬空不管。 下面给出串口,并口各针脚功能表以供高级用户维护电缆或接头时使用。 并口针脚功能一览表 25针串口功能一览表

9针串口功能一览表 联机线的连接方法 联机线主要用于直接把两台电脑连接,分为串口(com1,com2)联机线和并口(lpt1)联机线。比较早一点的AT架构的电脑的串口有为9针,和25针两种,现在的ATX架构的电脑两个串口全部是9针。打印机的接口也是25针的但功能、外观上与AT架构的25针串口不一样。于是联机线就分为4种(9针对9针串口联机线,9针对25针串口联机线,25针对25针串口联机线,25针对25针并口联机线)其中3种串口连接,一种并口连接。并口联机线和串口联机线最大的差别就是速度,前者明显快于后者。这些直接电缆连接线的两个头完全相同可以互换的连线方法如下表: 首先我们必须准备2个连接头,以及大约1.5米的联机线,联机线应该选用带屏蔽的多芯线,把多余未用的芯全部接在接头的金属壳(地线)作为屏蔽用。 串口连机线一览表

并口联机线一览表 打印机连接线的 现在使用的打印机连接线端口是25针公头的,和并口联机线使用的接头针脚数一样,但打印机连接线的两个头是不一样的,分别接电脑和打印机不能互换。 首先准备一个25针接头,和一个36线打印口接头。并且先将25针接头的18-25针脚连接在一起。把36线打印口接头的19-30脚连接在一起。然后使用一根芯把这两组连接在一起。其余线的线方法如下表: 打印机连接线一览表 连接完成以后一定要认真检查看是否有错误!!避免不必要的情况发生。 外置调制解调器连接线

Arduino学习笔记葫芦娃

Arduino学习笔记—超简单制作音乐 一曲葫芦娃带你回归美好童年 本文是个人学习心得,供新人参考,老鸟可瞬间飘过。 本文很简单,需要用到的材料:adruino uno一块(其他也可),面保线若干条,蜂鸣器或小喇叭一个(小喇叭更好蜂鸣器要接电阻不然声音有点刺耳) 连接方法如图: 首先讲下简单的乐理知识,知道音乐是怎么演奏出来的自然就可以通过代码来进行编排了。 1.演奏单音符一首乐曲有若干音符组成,一个音符对应一个频率。我们知道到相对应的频

率让arduino输出到蜂鸣器蜂鸣器就会放出相应的声音,这里有个表供大家参考: 2.音符的演奏时间我们知道了音符是如何演奏出来的,下一步就是控制音符的演奏时间。每个音符都会播放一定的时间,这样才能构成一首优美的曲子,而不是生硬的一个调的把所有的音符一股脑的都播放出来。如何确定每个音符演奏的单位时间呢? 我们知道,音符节奏分为一拍、半拍、1/4拍、1/8拍,我们规定一拍音符的时间为1;半拍为0.5;1/4拍为0.25;1/8拍为0.125……,所以我们可以为每个音符赋予这样的拍子播放出来,音乐就成了。 好了我们看看如何将简谱翻译成对应频率和拍子。

以葫芦娃为例: 先看下左上角1=D这里,用的是D调,好那我们就看《音符频率表》中的D行(红色部分), 第一个音符是1 但上面有个点,所以对应的就是589,时间是一拍=1, 第二个音符6(没有点)就是495,时间也是一拍=1, 第三个音符5 即441,因为有下划线所以是半拍=0.5, ……以此类推 第四0这里要注意下,这里是没有声音,但是要是用频率0表示还是会有声音(这个不懂),所以我们用一个很高频率的声音,这样人耳听不到就达到了没有声音的效果,所以频率为-1。拍子=1拍 第五,再接着看到第一句歌词葫芦娃这个娃的音是3—,这表示是两拍,后面每加一个“-”,表示拍子+1(1+1),本例中最多是加到4. 第六,第二句歌词葫芦娃这个娃,3?带个点,点的意思是去3的拍子的一半,即3?的拍子 是1+0.5 第七,大家可能会问那弧线怎么表示,这在音乐中属于连音,我们要表示的话,可以稍微改下连音后面那个音的频率,比如减少或增加一些数值(需自己调试),这样表现会更流畅,但操作上更复杂了,本例没有做连音的处理,大家有兴趣可以自己调整下。 所以说了一大堆,规律就是时间上单个音符没有下划线,就是一拍(1),有下划线是半拍

串口和并口引脚定义

串口引脚排列图 RS-232 — DB9孔式 Pin No. Signal 1 DCD 2 TxD 3 RxD 4 DSR 5 GND 6 DTR 7 CTS 8 RTS 9 --- RS-232 — DB9针式 Pin No. Signal 1 DCD 2 RxD 3 TxD 4 DTR 5 GND 6 DSR 7 RTS 8 CTS 9 --- RS-232 — DB25孔式 Pin No. Signal 2 RxD 3 TxD 4 CTS 5 RTS 6 DTR 7 GND 8 DCD 20 DSR RS-232 — DB25针式 Pin No. Signal 2 TxD 3 RxD 4 RTS 5 CTS 6 DSR 7 GND 8 DCD 20 DTR

RS-232 — RJ45(8 pin) Pin No. Signal 1 DSR 2 RTS 3 GND 4 TxD 5 RxD 6 DCD 7 CTS 8 DTR RS-232 — RJ45(10-pin) Pin No. Signal 1 DCD 2 DSR 3 RTS 4 GND 5 TxD 6 RxD 7 GND 8 CTS 9 DTR 10 ---- RS-422 — DB25孔式— for Opt8F/Z Pin No. Signal 2 RxD+(B) 3 TxD+(B) 7 GND 1 4 RxD-(A) 16 TxD-(A) RS-422/485 — DB25孔式— for Opt8K Pin No. RS-422 signal RS-485 signal 2 RxD+(B) Data+ 3 TxD+(B) 7 GND 1 4 RxD-(A) Data- 16 TxD-(A)

Arduino 语言常用语句

结构 void setup() 初始化变量,管脚模式,调用库函数等 void loop() 连续执行函数内的语句 功能 数字 I/O pinMode(pin, mode) 数字IO口输入输出模式定义函数,pin表示为0~13, mode表示为INPUT或OUTPUT。 digitalWrite(pin, value) 数字IO口输出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。比如定义HIGH 可以驱动LED。 int digitalRead(pin) 数字IO口读输入电平函数, pin表示为0~13,value表示为HIGH或LOW。比如可以读数字 传感器。 模拟 I/O int analogRead(pin) 模拟IO口读函数,pin表示为 0~5(Arduino Diecimila为0~5,Arduino nano为0~7)。 比如可以读模拟传感器(10位AD,0~5V表示为0~1023)。 analogWrite(pin, value) - PWM数字IO口PWM输 出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,

pin表示3, 5, 6, 9, 10, 11,value表示为0~255。比如可用于电机PWM调速或音乐播放。 扩展 I/O shiftOut(dataPin, clockPin, bitOrder, value) SPI 外部IO扩展函数,通常使用带SPI接口的74HC595做8个IO 扩展,dataPin为数据口,clockPin为时钟口,bitOrder为数据传输方向(MSBFIRST高位在前,LSBFIRST低位在前),value 表示所要传送的数据(0~255),另外还需要一个IO口做 74HC595的使能控制。 unsigned long pulseIn(pin, value) 脉冲长度记录函数,返回时间参数(us),pin表示为0~13,value为HIGH或LOW。比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间。时间函数 unsigned long millis() 返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间。 delay(ms) 延时函数(单位ms)。 delayMicroseconds(us) 延时函数(单位us)。 数学函数

电脑主板各种接口及引脚定义

电脑主板各种接口及引脚定义,下图为常见的主板外设接口 首先是ATX 20-Pin电源接口电源接口,根据下图你可方便判断和分辨。 现在为提高CPU的供电,从P4主板开始,都有个4P接口,单独为CPU供电,在此也已经标出。

主板上CPU等网风扇接口。 主板上音频线接口。

主板SATA串口硬盘接口。 PS/2接口 鼠标和键盘绝大多数采用PS/2接口,鼠标和键盘的PS/2接口的物理外观完全相同,初学者往往容易插错,以至于业界不得不在PC'99规范中用两种不同的颜色来将其区别开,而事实上它们在工作原理上是完全相同的,从下面的PS/2接口针脚定义我们就可以看出来。

上图的分别为AT键盘(既常说的大口键盘),和PS2键盘(即小口键盘),如今市场上PS2键盘的数量越来越多了,而AT键盘已经要沦为昨日黄花了。因为键盘的定义相似,所以两者有共同的地方,各针脚定义如下: 1、DATA 数据信号 2、空 3、GND 地端 4、+5V 5、CLOCK 时钟 6 空(仅限PS2键盘) USB接口 USB(Universal Serial Bus,通用串行总线)接口是由Compaq、IBM、Microsoft 等多家公司于1994年底联合提出的接口标准,其目的是用于取代逐渐不适应外设需求的传统串、并口。1996年业界正式通过了USB1.0标准,但由于未获当时主流的Win95支持(直到Win95 OSR2才通过外挂模块提供对USB1.0的支持)而未得到普及,直到1998年USB1.1标准确立和Win98内核正式提供对USB接口的直接支持之后,USB才真正开始普及,到今天已经发展到USB2.0标准。 USB接口的连接线有两种形式,通常我们将其与电脑接口连接的一端称为“A”连接头,而将连接外设的接头称为“B”连接头(通常的外设都是内建USB数据线而仅仅包含与电脑相连的“A”连接头)。Negative data ,positive data

arduino函数学习笔记

Arduino程序的主函数main在内部就已经定义了,所以只需void setup()和void loop().前者用于初始化在程序开头设置引脚的输入输出模式,初始化串口,执行一次。loop是死循环,是执行程序。 函数pinMode()有两个参数pin和mode, pin参数表示所要配置的引脚,mode 表示设置的模式INPUT或OUTPUT. arduino板上的模拟引脚亦可作数字引脚用,A0~A5对应数字14~19 digitalWrite()两个参数,pin表示设置的引脚(须设置为OUTPUT模式),value 表示输出的电压HIGH或LOW,此函数作用是设置引脚输出的电压为高或低。 digitalRead()一个参数,pin***(须设置为INPUT模式),用来获取引脚的电压情况HIGH或LOW. 若引脚没有连接到任何地方,那么随机返回高或低。 analogReference(type) analogRead(pin) 用于读取引脚的模拟电压值,返回值int 范围0~1023,pin 只能是6模拟接口。 analogWrite(pin,value)在指定引脚上输出一个模拟量,应用在LED灯亮度控制,电机转速控制。无返回值。Value表示PWM输出的占空比。范围0~255 shiftOut(dataPin,clockPin,bitOrder,val)无返回值能够将数据通过串行的方式在引脚上输出 shiftIn(datapin,clockPin,bitOrder)通过串行的方式在引脚上读入数据。 pulseIn(pin,state,timeout) 此函数用于读取引脚脉冲的时间长度,脉冲可以是HIGH或LOW。如果是HIGH,函数先将引脚变为高电平,在开始计时,一直到变为低电平为止,返回脉冲持续时间长短,单位MS,如果超时还未读到,将返回0. 函数返回值为unsigned long ,3个参数分别表示脉冲输入的引脚,脉冲响应的状态(高或低)和超时时间。 millis()函数可以获得机器运行的时间长度,单位ms.系统最长的时间为9小时22分,如果超出时间将从0开始,返回值unsigned long 型,无参数。 delay()延时函数单位MS 无返回值 delayMicroseconds ()延时函数,参数单位是微秒 数学库: min(x,y): #define min(a,b) (a)<(b))? (a):(b) max(x,y):#define max(a,b) (a)>(b))?(a):(b) abs(x)取绝对值 constrain(amt,low,high)取三个数中的中间值 map(x,in_min,in_max,out_min,out_max)函数将[in_min,in_max]范围内的x等比映射到[out_min,out_max]范围内,函数返回值为long 三角函数sin(rad),cos(rad),tan(rad)返回值为double randomSeed()函数用来设置随机数种子,随机数种子的设置对产生的随机数序列有影响,函数无返回值 random(howsmall,howbig)应用此函数可以产生随机数两个参数是随机数的范围,参数及返回值类型均是long 中断函数

相关主题
文本预览
相关文档 最新文档