Arduino 电平转换 升压 OUTPUT驱动9V/12V元件

原因

网络上有不少怎么让Arduino的5V电平转换成3.3V电平,从而和工作在3.3V下的芯片相互沟通的教程。但是如果想驱动高于5V电压的芯片,就找不到教程了。因此今天我来介绍一种方式,能让Arduino的OUTPUT口驱动需要5~12V的INPUT的电子元件。下文以12V为例。

效果

  • 能够达到单向(从Arduino到12V芯片)通信的目的
  • Arduino引脚输出的电平会被取反,即Arduino输出HIGH,芯片却收到LOW,反之亦然。

硬件准备

  1. Arduino一个
  2. 开关型NPN三极管(8050即可)一个
  3. 4.7K,10K电阻各一个(貌似不是这个阻值也可以,只要不要太小即可)

电路连接

面包板图:

(假设右边那个nano是我们需要驱动的12V的东西)

原理图:

软件开发

一定要记住:Arduino引脚输出的电平会被取反,即Arduino输出HIGH,芯片却收到LOW,反之亦然!只要知道这一点,剩下的事情和开发普通OUTPUT引脚都差不多了。

我们先弄一个测试工程试试看。

在测试工程中,我们用万用表的电压表(20V挡位)来模拟12V芯片,即万用表红线接图中蓝线,万用表黑线接地(图中黑线)。因为芯片的INPUT模式相当于一个电压表,所以可以这么替代来看效果。当12V芯片应当收到HIGH时,我们的万用表上就会出现接近12V的电压;收到LOW则出现0V。

建立一个ino工程,代码如下:

#define TEST_PIN 7

void setup(){
    pinMode(13,OUTPUT);
    pinMode(TEST_PIN,OUTPUT);
}

void loop(){
    digitalWrite(13,!digitalRead(13));
    digitalWrite(TEST_PIN,!digitalRead(TEST_PIN));
    delay(2000);
}

连接电路,查看效果。如果一切正常,你将会看到,当ino上的小灯亮起的时候,万用表显示0V;熄灭时显示12V。

原理说明(针对没基础的人)

三极管这东西高中物理居然不教...因此我自学研究了半天才勉强搞懂一点点。感觉很多书/教程讲的都太复杂了,像什么阿尔法值,贝塔值,放大倍数什么的,真正应用的时候不一定用得上,因此我这里简单讲一讲三极管用得上的部分。

三极管有两种类型,NPN和PNP,我这里讲一讲NPN,即这篇文章中用到的那种。首先,我们要记住这张图和它的三个引脚对应的说法:C(集电极),B(基极),E(发射极)(想搞懂名称的自己看原理去)。

我们首先来看有箭头的那一条路径(B->E):这条路最简单,完全不用考虑C端发生了什么,而是几乎可以看成一个B->E的二极管。B电压大于E一定程度(即B到E有足够大的电势差,一般是0.3V之类),就会有电流,反之则没有。我们的电路中,B接的是Arduino引脚。因此,当Arduino HIGH时,BE有5V电位差,但是有一个限流电阻,因此有微小的电流;反之没有。

然后再看另一条路径,C->E:这一条就悲催的多了,完全被B->E那一条管着。如果BE没有电流,不管发生什么,CE都不会有电流,这是可以看成C、E之间断开了。如果BE有电流,才会允许CE产生电流。在我们的电路中,BE有电流则CE连通,即C点接地,于是12V芯片收到LOW;反之,收到HIGH。其实这一部分单独看,就是一个上拉电阻。图见下。

顺便说一下“电流倒灌”的问题:如果现在三极管的部分换成一块导体,那么很明显,C电压高于B,因此会有灌入B的电流,从而造成Arduino出各种各样的问题。但是我们的电路中没有这个问题(确实实践测试过了),这是因为三极管可以帮助B不被倒灌。但是据传说,如果C电压高于B太多,那么倒灌照样会发生。如果真的发生倒灌,一个(可能)可行的策略是在B处安装一个整流二极管,不让电流倒着流动。

鸣谢

感谢阿古(古作坊坊主)在在电路方面的指导!

时间: 2024-11-03 12:20:33

Arduino 电平转换 升压 OUTPUT驱动9V/12V元件的相关文章

三极管的电平转换及驱动电路分析

3.3V-5V电平转换电路 如上图.左端接3.3V CMOS电平,能够是STM32.FPGA等的IO口,右端输出为5V电平,实现3.3V到5V电平的转换. 如今来分析下各个电阻的作用(抓住的核心思路是三极管的Vbe导通时为恒定值0.7V左右): 假设没有R87,则当US_CH0的高电平直接加在三极管的BE上,>0.7V的电压要到哪里去呢? 假设没有R91.当US_CH0电平状态不确定时,默认是要Trig输出高电平还是低电平呢?因此R91起到固定电平的作用.同一时候.假设无R91,则仅仅要输入>

5V系统和3.3V系统电平转换

在设计一个带MCU或者ARM系统电路时候,经常遇见MCU的VCC是3.3V,但是外围电路需要5V.有时候是反过来.虽然现在MCU的IO都声称支持TTL电平,但是我们谁也不想将MCU的IO口直接接上5V,即使IO口先串联一个电阻,然后再接上5V,这样总是不放心,担心烧掉MCU,再说了,MCU声称IO口支持TTL电平,但是并不是所有的IO都是这样.反正有隐患.    解决方法就是电平转换.    具体的我只说我在实际项目中运用到的方法,而且在项目中运用比较方便的,其他的都不再说了.    第一种:利

常用电平转换方案

(1) 晶体管+上拉电阻法 就是一个双极型三极管或 MOSFET,C/D极接一个上拉电阻到正电源,输入电平很灵活,输出电平大致就是正电源电平. (2) OC/OD 器件+上拉电阻法 跟 1) 类似.适用于器件输出刚好为 OC/OD 的场合. (3) 74xHCT系列芯片升压 (3.3V→5V) 凡是输入与 5V TTL 电平兼容的 5V CMOS 器件都可以用作 3.3V→5V 电平转换. ——这是由于 3.3V CMOS 的电平刚好和5V TTL电平兼容(巧合),而 CMOS 的输出电平总是接

Arduino CNC Shiled 和 DRV8825驱动板的注意事项

首先说明硬件:1) Arduino CNC Shiled V2.6 2)DRV8825驱动板 3)光驱步进电机  4)Arduino  uno R3 下图是本次主角是Arduino CNC Shiled 和 DRV8825驱动板. 来张三明治图 Arduino CNC Shiled的信息 注意点: 1)比较容易让人忽略的是步进电机的接口,也就是图上的的电机插口(A1A2B1B2),A1A2一组,B1B2一组.具体如何与步进电机对应继续往下看 2)上左图标出了EN和GND对应的位置,DRV8825

TTL和COMS电平匹配以及电平转换的方法

一.TTL TTL集成电路的主要型式为晶体管-晶体管逻辑门(transistor-transistor logic gate),TTL大部分都采用5V电源.1.输出高电平Uoh和输出低电平UolUoh≥2.4V,Uol≤0.4V2.输入高电平和输入低电平Uih≥2.0V,Uil≤0.8V二.CMOSCMOS电路是电压控制器件,输入电阻极大,对于干扰信号十分敏感,因此不用的输入端不应开路,接到地或者电源上.CMOS电路的优点是噪声容限较宽,静态功耗很小.1.输出高电平Uoh和输出低电平UolUoh

简单实用的双向电平转换电路(3.3v-5v)

当你使用3.3V的单片机的时候,电平转换就在所难免了,经常会遇到3.3转5V或者5V转3.3V的情况,这里介绍一个简单的电路,他可以实现两个电平的相互转换(注意是相互哦,双向的,不是单向的!).电路十分简单,仅由3个电阻加一个MOS管构成,电路图如下: 上图中,S1,S2为两个信号端,VCC_S1和VCC_S2为这两个信号的高电平电压.另外限制条件为:1,VCC_S1<=VCC_S2.2,S1的低电平门限大于0.7V左右(视NMOS内的二极管压降而定).3,Vgs<=VCC_S1.4,Vds&

串口扩展方案+简单自制电平转换电路

本科项目上需要DSP通过RS232串口连接四个设备,可供使用的芯片串口只有一个. 方案一:利用手头器件,简单利用FPGA和max232电平转换芯片采用片选方式设计 verilog代码如下: module demultiplexer1to4 (out0,out1,out2,out3,in,s2,s1,s0); output out0,out1,out2,out3; input in; input s0,s1,s2 ; reg out0,out1,out2,out3; [email protecte

Arduino 数码管LED屏驱动

今天測试数码管LED屏驱动,用某产品的一个共阴极的LED屏,依据电路图做数码管LED屏的检測. 代码写得有些冗长.有好几种驱动的方法,这里仅仅是当中一种最直接的方案.抽出时间要做个更有效率的调用和驱动的方案. //设置阴极接口 int d1 = 1; int d2 = 2; int d3 = 3; int d4 = 4; int d5 = 5; int d6 = 6; int d7 = 7; //设置阳极接口 int a = 8; int b = 9; int c = 10; int d = 1

Mac OS X Yosemite &amp; Arduino安装CH340 USB转串口驱动

新买的Arduino开发板 USB转串口使用了CH340芯片,在Mac OS X Yosemite上正常安装驱动后,在Arduino IDE的端口没发现相应的设备,使用以下方法后就能使用USB转串口调试和烧录程序.1.安装CH340驱动(驱动下载地址:http://www.wch.cn/download/CH341SER_MAC_ZIP.html)2.打开终端运行以下命令:  sudo nvram boot-args="kext-dev-mode=1"  sudo Reboot