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

合集下载

arduino开漏输出写法 -回复

arduino开漏输出写法 -回复

arduino开漏输出写法-回复Arduino的开漏输出写法是如何实现的?在Arduino开发板上,有一些数字引脚可以被设置为开漏(Open Drain)输出。

开漏输出是指输出引脚只能拉低,而无法主动拉高,这意味着开漏输出需要额外的电路来实现高电平的输出。

开漏输出常用于与其他电路的通信,如I2C总线。

在Arduino中,开漏输出可以通过引脚模式设置和使用digitalWrite()函数来实现。

接下来,我将一步一步地回答如何使用开漏输出。

步骤1:确定开漏输出的引脚在Arduino开发板上,有一些特定的引脚可以被设置为开漏输出模式。

你可以在Arduino官方网站或开发板的说明文档中查找这些引脚,并记下它们的引脚号码。

步骤2:设置引脚模式在Arduino的setup()函数中,你需要通过pinMode()函数来设置开漏输出引脚的模式。

使用下面的命令来设置引脚为开漏输出模式:pinMode(引脚号码, INPUT); 将引脚设置为输入模式以拉低输出pinMode(引脚号码, OUTPUT); 将引脚设置为输出模式步骤3:使用digitalWrite()函数输出低电平由于开漏输出无法主动拉高电平,你需要使用digitalWrite()函数将引脚拉低,即输出低电平。

使用下面的命令来将引脚设置为低电平:digitalWrite(引脚号码, LOW); 将引脚拉低步骤4:使用外部电路实现高电平要实现高电平的输出,你需要使用外部电路。

常用的外部电路是上拉电阻。

将一个合适的电阻值连接至供电电源,并与开漏输出引脚连接。

这样当引脚没有被下拉时,上拉电阻会将引脚上拉至供电电压,实现高电平输出。

步骤5:使用外部电路时注意事项在使用外部电路时,有几点需要注意。

首先,确保外部电路连接正确,以避免损坏Arduino开发板或其他电路。

其次,选择合适的上拉电阻值,以确保输出电压满足你的需求。

最后,留意引脚的最大承受电压,以免外部电路输出的电压超过引脚的额定电压。

扩展Arduino-595

扩展Arduino-595

扩展Arduino:数字输出端口3 Comments· Posted by flamingoeda in Arduino随着你对Arduino的深入理解和应用,相信很快就会遇到Arduino端口不够用的情况了。

比如你可能需要在你的项目里控制更多的LED或者继电器,但却发现12似乎是一个很难超越的数字;或者你的声音项目里需要更多的电位器,但是Arduino板上6个模拟输入接口的限制却让你捉襟见肘。

如果此时Arduino的处理能力还尚能满足你的要求,只是接口数目不够,能够采用的一种办法就是对Arduino的数字端口和模拟端口进行扩展。

下图就是一个Arduino数字输出端口扩展板,利用它原理上你可以将Arduino上的3个数字输出端口扩展成8个数字输出端口,通俗说来就是3个换8 个;-)实验这块板最简单的办法是用三根数字连接线,分别将该扩展板上的SCK,RCK和SER引脚与传感器扩展板上的数字I/O的8、9和10号引脚相连接:相应的测试代码如下所示:int dataPin = 8; // SERint latchPin = 9; // RCKint clockPin = 10; // SCKvoid setup() {pinMode(latchPin, OUTPUT);pinMode(clockPin, OUTPUT);pinMode(dataPin, OUTPUT);}void loop() {for (int j = 0; j < 255; j++) {// start transmit datadigitalWrite(latchPin, LOW);shiftOut(dataPin, clockPin, MSBFIRST, j);// end transmit datadigitalWrite(latchPin, HIGH);delay(500);}}上述代码中最核心的是对函数shiftOut()的调用,它的作用往扩展板上的8个数字引脚上写一个字节,该字节的每一位分别对应扩展板上8个数字输出I/O引脚中的一个。

Arduino编程知识学习大全(中册)

Arduino编程知识学习大全(中册)

6.3 驱动LED点阵
O 6.3.1 LED点阵显示表情 O 6.3.2 LED点阵跑马灯 O 6.3.3 回纹灯 O 6.3.4 矩形回缩灯
6.3.1 LED点阵显示表情
6.3.2 LED点阵跑马灯
O 在6.3.5小节中实现了由三个LED组成的简 易跑马灯,在本节就在8*8的LED点阵上来 实现跑马灯。这个示例的电路不需要改动, 我们直接编写对应的程序就可以了。
6.4 使用74HC595驱动 LED
O 6.4.1 74HC595使用方式 O 6.4.2 使用74HC595驱动LED点阵
6.4.1 74HC595使用方式
O 74HC595是一个CMOS(Complementary Metal-Oxide-Semiconductor)器件
6.4.2 使用74HC595驱动LED点 阵
O pinMode(pin,mode)
6.2.1 使用数字针脚点亮LED
O 由于数字针脚只能输出高电压和低电压, 因此在不借用其他元件的情况下只可以点 亮或者熄灭LED。
1.电路图
2.程序
O int pin=10;
//指定LED连接的针脚
O void setup(){ O pinMode(pin,OUTPUT);//设置针脚模式为输出 O digitalWrite(pin,HIGH);//设置针脚输出电压
寄存器地址
D15~D12 X X X X X X X X X
D11 D10
0
0
0
0
0
0
0
0
0
1
1
1
0
D9 D8
0
0
0
1
1
0
1
1

【Arduino学习笔记05】Arduino数字输入、输出和脉冲宽带调制--小项目:彩色小台灯

【Arduino学习笔记05】Arduino数字输入、输出和脉冲宽带调制--小项目:彩色小台灯

【Arduino学习笔记05】Arduino数字输⼊、输出和脉冲宽带调制--⼩项⽬:彩⾊⼩台灯基本功能:长按控制按钮开机,长按控制按钮关机(>3s)通过三个调节按钮调节灯的颜⾊,每⼀个按钮分别对应R,G,B值模式切换:短按控制按钮切换模式(长亮模式/闪烁模式)元器件清单:Arduino Uno R3⼩号⾯包板跳线10kΩ电阻(×4)220Ω电阻(×3)USB电缆按键(×4)5mm 共阴极 RGB LED知识回顾:(参考书⽬《Arduino魔法书》) 1. 脉冲宽度调制(P25 - P27)PWM的输出可以写⼊数值的范围:0~255PWM的⼯作原理:⽅波(占空⽐的概念)“你并没有改变输送到LED的电压,为何⼜能在降低占空⽐时让LED变暗呢?......如果LED每1ms就开关⼀次,它看起来就是近乎⼀半的亮度,这是因为它闪烁的速度超过了⼈眼能察觉的速度。

因此,⼤脑实际上时平均了这个信号,并欺骗你相信这个LED只有⼀半的亮度。

” 2. 上拉电阻和下拉电阻(P28 ~ P30)没有使⽤下拉电阻的情况按键没有按下时,要读取的输⼊引脚什么也没有接——这个输⼊引脚被称为“悬空”。

由于这个引脚没有实际地接到0V或者5V,读取它时会导致意料之外的结果,因为附近的电⽓噪声会导致其值在⾼低电平之间来回波动。

下拉电阻:将输出端拉⼀根导线连接到地 上拉电阻:将输出端拉⼀根导线连接到电源 3. 按钮的消抖动(P30 ~ P33)1/*2 * 消抖动函数:3 * button: 要消抖动的按钮4 * last: 该按钮的上⼀个状态5 * 返回值:消抖动后读回的按钮状态67 * - 这⾥所谓的消抖动,实际上就是如果检测到电压变化后先不操作,因为可能是抖动阶段的8 * 电压改变,等5m之后再读取当前值,避开抖动阶段。

9 * - 如果没有使⽤消抖动函数,在抖动的过程中电压多次变化,会得到很多次“按钮按下”的10 * 结论,从⽽造成短时间内频繁的开灯关灯。

Arduino学习笔记(四)--常用函数

Arduino学习笔记(四)--常用函数

Arduino学习笔记(四)--常⽤函数1、pinMode(pin,Mode):设置引脚的输⼊输出状态Pin:引脚号;Mode:INPUT、OUTPUT2、digitalWrite(pin,value) :设置输出引脚的⾼低电平状态Pin:引脚号;value:HIGH LOW3、int digitalRead(pin):读取引脚的状态,并返回HIGH 或LOWPin:引脚号4、int analogRead(pin):读出模拟引脚上的电压,并以⼆进制数值返回(0~1023)对应为0~5vPin:引脚号5、analogWrite(pin,value):给PWM引脚输出电压值pin:引脚号;value:具体的pwm值,(0~255对应表⽰⼀个周期的⾼电平占空⽐)6、shiftOut(dataPin,clockPin,bitOrder,value):将⼀个字节的数据通过移位的⽅式逐位的输出。

dataPin:数据引脚clockPin:时钟引脚bitOrder:移位顺序(MSBFIRST-⾼;LSBFIRST-低)value:需要进⾏移位传输的值说明:在输出数据时,当⼀位数据写⼊数据输出引脚时,时钟引脚将输出脉冲信号,指⽰该位数据已被写⼊数据输出引脚等待外设读取。

并且在使⽤本函数之前datapin和clockpin引脚应该设置为输出状态。

本函数⼀次只能输出⼀个字节的内容,也就是说最⼤⼀次只能输出255,如果⼤于255,就要多次调⽤这个函数。

7、unsigned long mills():回传单⽚机从开始执⾏到现在⽬前的时间(单位:ms)8、delay( number):占⽤单⽚机的时间(单位:ms)number:其代表占⽤单⽚机的时间长度9、delay Microseconds( number):占⽤单⽚机的时间(单位:us)number:其代表占⽤单⽚机的时间10、pulseIn(pin,state,timeout):读取脉冲宽度。

【Arduino学习笔记01】关于Arduino引脚的一些笔记

【Arduino学习笔记01】关于Arduino引脚的一些笔记

【Arduino学习笔记01】关于Arduino引脚的⼀些笔记Arduino Uno R3 - 引脚图Arduino Uno R3 - 详细参数Arduino Uno R3 - 存储 Arduino的存储空间即是其主控芯⽚所集成的存储空间。

也可以通过使⽤外设芯⽚的⽅式来扩展Arduino的存储空间。

Arduino UNO的存储空间分三种:Flash,容量为32 KB。

其中0. 5 KB作为BOOT区⽤于储存引导程序,实现通过串⼝下载程序的功能;另外的31.5 KB作为⽤户储存程序的空间。

相对于现在动辄⼏百GB的硬盘,可能觉得32 KB太⼩了,但是在单⽚机上,32 KB已经可以存储很⼤的程序了。

SRAM,容量为2 KB。

SRAM相当于计算机的内存,当CPU进⾏运算时,需要在其中开辟⼀定的存储空间。

当Arduino 断电或复位后,其中的数据都会丢失。

EEPROM,容量为1 KB。

EEPROM的全称为电可擦写的可编程只读存储器,是⼀种⽤户可更改的只读存储器,其特点是在Arduino断电或复位后,其中的数据不会丢失。

Arduino Uno引脚分配 - 电源 Arduino UNO可以通过3种⽅式供电: 1、直流电源插孔 可以使⽤直流电源插孔为Arduino开发板供电。

电源插孔通常连接到⼀个适配器。

开发板的供电范围可以是6-20V,但制造商建议将其保持在7-12V之间。

⾼于12V时,稳压芯⽚可能会过热,低于7V可能会供电不⾜。

2、VIN引脚 - 该引脚⽤于使⽤外部电源为Arduino Uno开发板供电。

电压应控制在上述提到的范围内。

3、USB接⼝ - 连接到计算机时,提供500mA/5V电压。

所使⽤的供电⽅式决定了可⽤于电路的功率:使⽤USB为电路供电时,电流最⼤限制在500mA。

(考虑到该电源也⽤于为MCU、外围设备、板载稳压器和与其连接的组件供电。

)当通过电源插座或VIN为电路供电时,可⽤的最⼤电流取决于Arduino开发板上的5V和3.3V稳压器。

Arduino教程

Arduino教程

Arduino教程一: 数字输出Arduino, 教程11 Comments »Arduino的数字I/O被分成两个部分,其中每个部分都包含有6个可用的I/O管脚,即管脚2到管脚7和管脚8到管脚13。

除了管脚13上接了一个1K的电阻之外,其他各个管脚都直接连接到ATmega上。

我们可以利用一个6位的数字跑马灯,来对Arduino数字I/O 的输出功能进行验证,以下是相应的原理图:电路中在每个I/O管脚上加的那个1K电阻被称为限流电阻,由于发光二极管在电路中没有等效电阻值,使用限流电阻可以使元件上通过的电流不至于过大,能够起到保护的作用。

该工程对应的代码为:int BASE = 2;int NUM = 6;int index = 0;void setup(){for (int i = BASE; i < BASE + NUM; i ++){pinMode(i, OUTPUT);}}void loop(){for (int i = BASE; i < BASE + NUM; i ++) {digitalWrite(i, LOW);}digitalWrite(BASE + index, HIGH);index = (index + 1) % NUM;delay(100);}下载并运行该工程,连接在Arduino数字I/O管脚2到管脚7上的发光二极管会依次点亮0.1秒,然后再熄灭:这个实验可以用来验证数字I/O输出的正确性。

Arduino上一共有十二个数字I/O管脚,我们可以用同样的办法验证其他六个管脚的正确性,而这只需要对上述工程的第一行做相应的修改就可以了:int BASE = 8;SEP01Arduino教程二: 数字输入Arduino, 教程3 Comments »在数字电路中开关(switch)是一种基本的输入形式,它的作用是保持电路的连接或者断开。

Arduino从数字I/O管脚上只能读出高电平(5V)或者低电平(0V),因此我们首先面临到的一个问题就是如何将开关的开/断状态转变成Arduino能够读取的高/低电平。

arduino学习资料

arduino学习资料

arduino学习笔记arduino学习笔记1 - 什么是arduino?要了解arduino就先要了解什么是单片机,arduino平台的基础就是AVR指令集的单片机。

1、什么是单片机?它与个人计算机有什么不同?一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU (进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。

在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。

而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。

2、单片机有什么用?实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。

如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。

单片机通常用于工业生产的控制、生活中与程序和控制有关(如:电子琴、冰箱、智能空调等)的场合。

下图就是一个Atmega328P-PU单片机,基于AVR指令集的8位处理器,频率20MHz,存储器空间32KB。

什么是Arduino?Arduino是一个能够用来感应和控制现实物理世界的一套工具。

它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。

Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。

Arduino项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP)进行通讯。

Arduino板你可以选择自己去手动组装或是购买已经组装好的;Arduino开源的IDE 可以免费下载得到。

arduino教程1数字输出

arduino教程1数字输出

Arduino教程一: 数字输出Arduino, 教程11 Comments »Arduino的数字I/O被分成两个部分,其中每个部分都包含有6个可用的I/O管脚,即管脚2到管脚7和管脚8到管脚13。

除了管脚13上接了一个1K的电阻之外,其他各个管脚都直接连接到ATmega上。

我们可以利用一个6位的数字跑马灯,来对Arduino数字I/O的输出功能进行验证,以下是相应的原理图:电路中在每个I/O管脚上加的那个1K电阻被称为限流电阻,由于发光二极管在电路中没有等效电阻值,使用限流电阻可以使元件上通过的电流不至于过大,能够起到保护的作用。

该工程对应的代码为:int BASE = 2;int NUM = 6;int index = 0;void setup(){for (int i = BASE; i< BASE + NUM; i ++) {pinMode(i,OUTPUT);}}void loop(){for (int i = BASE; i < BASE + NUM; i ++) {digitalWrite(i, LOW);}digitalWrite(BASE + index, HIGH);index = (index + 1) % NUM;delay(100);}下载并运行该工程,连接在Arduino数字I/O管脚2到管脚7上的发光二极管会依次点亮0.1秒,然后再熄灭:这个实验可以用来验证数字I/O输出的正确性。

Arduino上一共有十二个数字I/O管脚,我们可以用同样的办法验证其他六个管脚的正确性,而这只需要对上述工程的第一行做相应的修改就可以了:int BASE = 8;。

详解Arduino Uno开发板的引脚分配图及定义

详解Arduino Uno开发板的引脚分配图及定义

详解Arduino Uno开发板的引脚分配图及定义(重要且基础)首先开发板实物图如下:在本篇文章中,我们将详细介绍Arduino开发板的硬件电路部分,具体来说,就是介绍Arduino Uno开发板的引脚分配图及定义。

Arduino Uno微控制器采用的是Atmel 的ATmega328。

Arduino Uno开发板的引脚分配图包含14个数字引脚、6个模拟输入、电源插孔、USB连接和ICSP插头。

引脚的复用功能提供了更多的不同选项,例如驱动电机、LED、读取传感器等。

在这篇文章中,我们将介绍Arduino Uno引脚的功能。

Arduino Uno引脚分配图Arduino Uno引脚分配- 电源Arduino Uno开发板可以使用三种方式供电:●直流电源插孔-可以使用电源插孔为Arduino开发板供电。

电源插孔通常连接到一个适配器。

开发板的供电范围可以是5-20V,但制造商建议将其保持在7-12V之间。

高于12V时,稳压芯片可能会过热,低于7V可能会供电不足。

●VIN引脚- 该引脚用于使用外部电源为Arduino Uno开发板供电。

电压应控制在上述提到的范围内。

●USB电缆- 连接到计算机时,提供500mA/5V电压。

在电源插孔的正极与VIN引脚之间链接有一个极性保护的二极管,额定电流为1安培。

您使用的电源决定了可用于电路的功率。

例如,使用USB为电路供电时,电流最大限制在500mA。

考虑到该电源也用于为MCU、外围设备、板载稳压器和与其连接的组件供电。

当通过电源插座或VIN为电路供电时,可用的最大电流取决于Arduino开发板上的5V和3.3V稳压器。

●5v和3v3根据制造商的数据手册,它们提供稳压的5V和3.3v,向外部组件供电。

●GND在Arduino Uno引脚分配图中,可以看到有5个GND引脚,它们都是互连的。

GND引脚用于闭合电路回路,并在整个电路中提供一个公共逻辑参考电平。

务必确保所有的GND(Arduino、外设和组件)相互连接并且有共同点。

arduino开漏输出写法

arduino开漏输出写法

arduino开漏输出写法什么是Arduino的开漏输出?Arduino是一种开源的电子平台,用于快速快速开发各种物理设备的原型。

Arduino板上的数字引脚包含两种使用模式:输入和输出。

输出模式中,数字引脚可以向外部设备提供一个电平信号。

在Arduino的输出模式中,有一种称为“开漏输出”的特殊模式。

开漏输出是指输出引脚以开路的方式工作,可以尽可能地向地引脚拉低电平,但不能主动拉高电平。

相反,需要外部电路通过一个上拉电阻将电平拉高。

这种配置使得Arduino输出引脚可以与其他电路共享,特别是在与多个设备或驱动器连接时非常有用。

如何设置Arduino的开漏输出模式?要设置Arduino的开漏输出模式,首先需要了解Arduino开发环境中的相关函数和语法。

Arduino的开发环境使用一个称为“digitalWrite”的函数来设置数字引脚的输出状态。

在默认情况下,digitalWrite函数使用的是“HIGH”参数,它将输出引脚设置为高电平。

但是,我们可以通过将第二个参数设置为“LOW”来告诉函数将输出引脚设置为低电平,从而在开漏模式下工作。

语法如下:digitalWrite(引脚号, LOW);在上述代码中,引脚号是指要设置为开漏输出模式的Arduino引脚的数字值。

例如,要设置引脚D5为开漏输出模式,代码如下:digitalWrite(5, LOW);此时,引脚D5将以开漏的方式工作,并将输出引脚拉到地引脚。

如何使用Arduino的开漏输出模式?要使用Arduino的开漏输出模式,我们需要在电路中添加一个上拉电阻来将输出引脚拉高。

上拉电阻将一个引脚连接到正电源上(通常为电压源例如5V)。

这样,当开漏输出引脚处于空闲状态时,电阻将保持引脚处于高电平状态。

当输出引脚设置为低电平时,开漏输出引脚有效地连接到地引脚,形成连接。

接下来,我们将以控制LED的点亮和熄灭为例,来说明如何使用Arduino 的开漏输出模式。

arduinouno引脚定义

arduinouno引脚定义

arduinouno引脚定义
14路数字输入输出口:工作电压为5V,每一路能输出和接入最大电流为40mA。

每一路配置了20-50K欧姆内部上拉电阻(默认不连接)。

除此之外,有些引脚有特定的功能
串口信号RX(0号)、TX(1号): 与内部 ATmega8U2 USB-to-TTL 芯片相连,提供TTL电压水平的串口接收信号。

外部中断(2号和3号):触发中断引脚,可设成上升沿、下降沿或同时触发。

脉冲宽度调制PWM(3、5、6、9、10 、11):提供6路8位PWM输出。

SPI(10(SS),11(MOSI),12(MISO),13(SCK)):SPI通信接口。

LED(13号):Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭。

A0到A5:6路模拟输入,每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,可以通过AREF调整输入上限。

除此之外,有些引脚有特定功能
TWI接口(SDA A4和SCL A5):支持通信接口(兼容I2C总线)。

AREF:模拟输入信号的参考电压。

Reset:信号为低时复位单片机芯片。

arduino输出显示学习教案

arduino输出显示学习教案
第17页/共21页
第十八页,共21页。
创建(chuàngjiàn)自定义 字符
函数createChar()功能(gōngnéng)是创建自定义字符。最大 支持8个5 x 8像素的自定义字符。8个字符可以用1~8编号。 每个自定义字符都使用一个8B的数组保存。当输出自定 义字符到LCD上时,需要使用write()函数。
第12页/共21页
第十三页,共21页。
光标(ɡuānɡ biāo)函数
函数(hánshù)cursor()功能是显示光标。在当前光标所在位置 会显示一条下画线。
语法:lcd.cursor() 参数: lcd,LiquidCrystal类的对象。返回值:无。 noCursor() 函数(hánshù)noCursor()功能是隐藏光标。 语法:lcd. noCursor() lcd, LiquidCrystal类的对象。 返回值:无。
语法:lcd. write(data) 参数: lcd,LiquidCrystal类的对象。 data,需要显示的字符。 返回值:输出(shūc第h11ū页/)共的21页 字符数。
第十二页,共21页。
print()
函数print()功能是将文本输出到LCD上。每输出一个字符,光标就会向后移动一格。 语法: lcd.print( data) lcd.print( data,BASE) 参数: lcd,LiquidCrystal类的对象(duìxiàng)。 data,需要输出的数据(类型可为char、byte、int、long、String) BASE:输出的进制形式 BIN,二进制 DEC,十进制 OCT,八进制 HEX,十六进制 返回值,输出的字符数。
何内容,但之前显示的内容不会丢失(diūsī),当使用display()函数 开启显示时,之前的内容会显示出来。 语法:lcd.noDisplay() 参数: lcd, LiquidCrystal类的对象。 返回值:无。

Arduino输入输出控制演示教学

Arduino输入输出控制演示教学

• //给13号引脚设置一个别名“Led”
• int Led = 13;
• void setup() {
• // 将13号引脚初始化设置为输出
• pinMode(Led, OUTPUT);
•}
• void loop() {
• digitalWrite(Led, HIGH); //点亮LED
• delay(500);
// 等待500毫秒
• digitalWrite(Led, LOW); // 熄灭LED
• delay(500);
//等待500毫秒
•}
此课件下载可自行编辑修改,仅供参考! 感谢您的支持,我们努力做得更好!谢谢来自Arduino输入状态读取
• digitalRead() • 读数字引脚函数,原型为int
digitalRead (uint8_t pin)。 • 函数中pin设置引脚编号,读数字
引脚, 返回引脚的高低电平。 • 在读引脚之前, 需要将引脚设置
为INPUT模式。
LED灯闪 烁输出控 制流程图
LED灯闪烁输出控制程序
数字输出控制函数
• digitalWrite() • 写数字引脚函数,原型为void
digitalWrite (uint8_t pin, uint8_t value)。 • 函数中pin设置引脚编号,value 可设置为高HIGH或低LOW。 • 写数字引脚, 对应引脚的高低电 平. 在写引脚之前, 需要将引脚设 置为OUTPUT模式。
arduino输入输出控制模拟输入接口每一路具有10位的分辨率即输入有1024个不同值默认输入信号范围为0到5v可以通过aref调整输入上限
Arduino输入输出控制
模拟输入接口

Arduino知识集锦

Arduino知识集锦

#Arduino 语法setup() 初始化函数loop() 循环体函数控制语句类似于C//if if...else for switch case w hile do... while break continue return goto扩展语法类似于C//;(分号){}(花括号)//(单行注释)/* */(多行注释)#define #include算数运算符类似于C//=(赋值运算符)+(加)-(减)*(乘)/(除)%(模)比较运算符类似于C//==(等于)!=(不等于)<(小于)>(大于)<=(小于等于)>=(大于等于)布尔运算符类似于C//&&(与)||(或)!(非)指针运算符类似于C//* 取消引用运算符& 引用运算符位运算符类似于C& (bitwise and) | (bitwise or) ^ (bitwise xor ) ~ (bitwise not) << (bitshift left) >> ( bitshift right)复合运算符类似于C++ (increment) -- (decrement) += (compound ad dition) -= (compound subtraction) *= (compound mult iplication) /= (compound division) &= (compound b itwise and) |= (compound bitwise or)常量constants 预定义的常量BOOL true false引脚电压定义,HIGH和LOW【当读取(read)或写入(write)数字引脚时只有两个可能的值:HIGH 和LOW 】HIGH(参考引脚)的含义取决于引脚(pin)的设置,引脚定义为INPUT或OUTPUT 时含义有所不同。

arduino学习笔记

arduino学习笔记

Arduino学习笔记arduino学习笔记1 - 什么是arduino?要了解arduino就先要了解什么是单片机,arduino平台的基础就是AVR指令集的单片机。

1、什么是单片机?它与个人计算机有什么不同?一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU (进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。

在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。

而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。

2、单片机有什么用?实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。

如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。

单片机通常用于工业生产的控制、生活中与程序和控制有关(如:电子琴、冰箱、智能空调等)的场合。

下图就是一个Atmega328P-PU单片机,基于AVR指令集的8位处理器,频率20MHz,存储器空间32KB。

什么是Arduino?Arduino是一个能够用来感应和控制现实物理世界的一套工具。

它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。

Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。

Arduino项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP)进行通讯。

Arduino板你可以选择自己去手动组装或是购买已经组装好的;Arduino开源的IDE 可以免费下载得到。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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)等。

相关文档
最新文档