面包板电源模块怎么用,面包板电源模块pcb

牵着乌龟去散步 万象 30 0
电子DIY项目:电视遥控器的家庭自动化

使用电视遥控器的基于Arduino的家庭自动化是一个简单的项目,其中旧的电视遥控器用于控制不同的设备

家庭自动化是一个概念,其中单个设备用于控制房屋的许多方面,例如打开和关闭不同的电器,监视温度,火灾警报,车库门等。在此项目中,使用遥控器进行控制(简单地说是“开”)。和OFF)几个电器或设备,从而实现简单的家庭自动化系统。

遥控器是几乎所有家庭中最常用的设备之一。它们帮助我们操作电视,空调,VCR等设备。遥控器的主要功能是特定于设备的。例如,电视遥控器只能用于该相应的电视。

但是在此项目中,我们使用电视遥控器设计了基于Arduino的家庭自动化,其中一个遥控器用于控制4种不同的设备(可以控制更多设备)。该项目基于Arduino UNO,下面将介绍该项目的更多详细信息。


电路原理图


所需组件

  • Arduino UNO板
  • TSOP 1738红外遥控接收器
  • 1KΩ电阻X 4
  • 2N2222 NPN晶体管X 4
  • 1N4007二极管X 4
  • 12 V继电器X 4
  • 遥控
  • 面包板
  • 连接线
  • 12 V电源

组件说明

Arduino UNO

Arduino UNO构成电路的主要控制部分。UNO具有13个数字I / O引脚,因此可以一次控制13个不同的设备。如果要求控制更多设备,则可以使用Arduino Mega等板卡。

TSOP1738

TSOP1738是用于IR遥控器的接收器模块,载波频率为38 KHz。它由一个封装的光电探测器和信号解调器组成,其输出可以由微控制器直接使用。


4 –通道中继板

继电器借助微控制器帮助控制大型设备。在该项目中,使用一个4通道继电器板来控制四个负载。

LED上的必要电源,开关晶体管,基极限流电阻,LED上的继电器,反激二极管以及用于电源和输入连接的 *** 连接器已经嵌入在板上。


遥控

在该项目中使用标准的迷你遥控器来提供各种关键输入。遥控器具有所有数字键,音量调高-调低,频道调高-调低,菜单和一些其他键。


电路设计?

从电路图中可以看出,电路的设计非常简单,需要的连接很少。下面说明电路的设计。

该项目的主要组成部分是TSOP1738接收器。它是一个三引脚设备,其中三个引脚分别为GND,VS和OUTPUT。VS引脚连接到5V电源。输出引脚连接到Arduino UNO的引脚11(或任何其他数字引脚)。

我们在该项目中使用4通道继电器模块,以控制4个不同的负载。由于该板具有晶体管,LED等所有必需的组件,因此我们要做的就是将中继板上的4个输入连接到Arduino的4个数字I / O引脚。可以在电路图中找到更详细的连接。



工作原理

家庭自动化是一种随需应变的概念,其中单个设备将控制家庭的不同设备。此外,还可以使用该设备监视温度,湿度,安全性等不同方面。

在此项目中,这是一个简单的家庭自动化系统,其中该系统借助电视遥控器控制4种不同的电器。在此说明该项目的工作。

该项目的主要组件是TSOP1738红外接收器模块。该模块具有内置的光电接收器,带通滤波器和解调器,并且微控制器可以轻松读取模块的输出。



TSOP1738支持38 KHz的载波频率。因此,源(即遥控器)的载波频率必须在38 KHz的范围内才能进行解调。

首先,我们将使用TSOP1738和Arduino UNO解码来自遥控器的数据。为此,我们需要使用一个名为“ IRremote”的特殊库。

下一步是解码遥控器的每个键的数据。为此,我们将使用“ IRremote”库中的某些功能。程序将帮助我们解码来自遥控器每个键的数据。

应用

  • 一个简单的项目,在这里设计了一个使用电视遥控器的基于Arduino的家庭自动化,它使用Arduino UNO,继电器和一个旧的电视遥控器。
  • 该项目演示了4个负载,但是可以增加到更多负载。
  • 由于控制设备是电视遥控器,因此项目的设计非常简单,应用也非常容易。

Arduino 的 RFID 门锁 *** -原理,接线图,代码

在本教程中,我们将了解什么是 RFID、它是如何工作的以及如何 *** 基于 Arduino 的 RFID 门锁。您可以观看以下视频或阅读下面的书面教程以了解更多详细信息。

概述


RFID 代表射频识别(Radio Frequency Identification),它是一种非接触式技术,广泛应用于许多行业,用于人员跟踪、访问控制、供应链管理、图书馆书籍跟踪、收费站系统等任务。

应用场景


RFID 的工作原理


RFID 系统由两个主要组件组成,一个是位于我们想要识别的对象上的标签,另一个是阅读器。

流程框架

RFID阅读器由射频模块、控制单元和产生高频电磁场的天线线圈组成。另一方面,标签通常是无源元件,仅由天线和电子微芯片组成,因此当它靠近收发器的电磁场时,由于感应,在其天线线圈中产生电压,这电压作为微芯片的电源。

工作原理

实物模块

现在,当标签通电时,它可以从阅读器中提取传输的消息,并将消息发送回阅读器,它使用一种称为负载操作的技术。打开和关闭标签天线上的负载会影响阅读器天线的功耗,这可以用电压降来衡量。电压的这种变化将被捕获为 1 和 0,这就是数据从标签传输到阅读器的方式。

阅读器和标签之间还有另一种数据传输方式,称为反向散射耦合。在这种情况下,标签使用部分接收功率来生成另一个电磁场,该电磁场将被阅读器的天线接收。

RFID 和 Arduino


这就是基本的工作原理,现在让我们看看如何将 RFID 与 Arduino 结合使用并构建我们自己的 RFID 门锁。我们将使用基于 MIFARE 协议和 MFRC522 RFID 阅读器的标签,它们的成本仅为几元。

这些标签有 1kb 的内存,并有一个可以进行算术运算的微芯片。它们的工作频率为 13.56 MHz,工作距离可达 10 cm,具体取决于天线的几何形状。如果我们将这些标签中的一个放在光源前面,我们可以注意到我们之前谈到的天线和微芯片。

RFID卡内部结构

至于 RFID 阅读器模块,它使用 SPI 协议与 Arduino 板进行通信,以下是我们需要如何连接它们。请注意,我们必须将模块的 VCC 连接到 3.3V,至于其他引脚,我们不必担心,因为它们可以承受 5V。

接线图

连接模块后,我们需要 从 GitHub下载 MFRC522库。该库附带了几个很好的示例,我们可以从中学习如何使用该模块。

首先我们可以上传“DumpInfo”示例并测试我们的系统是否正常工作。现在,如果我们运行串行监视器并将标签放在模块附近,阅读器将开始读取标签,并且来自标签的所有信息都将显示在串行监视器上。

标签信息

这里我们可以看到标签的UID号以及1KB的内存,实际分成16个扇区,每个扇区分成4个块,每个块可以存储2个字节的数据。在本教程中,我们不会使用任何标签的内存,我们将只使用标签的 UID 号。

Arduino RFID 门锁门禁控制项目


在我们介绍我们的 RFID 门锁项目的代码之前,让我们先来看看这个项目的组件和电路原理图。

项目组件及原理图

除了 RFID 模块外,我们还将使用接近传感器来检查门是关闭还是打开,伺服电机用于锁定机构和字符显示器。

本 Arduino 教程所需的组件:

· MFRC522 RFID模块

· 伺服电机

· LCD 显示屏

· Arduino 板

· 面包板和跳线

· 接近传感器 CNY70

该项目有以下工作流程:

首先我们必须设置一个主标签,然后系统进入正常模式。如果我们扫描未知标签,访问将被拒绝,但如果我们扫描主服务器,我们将进入一个程序模式,我们可以从中添加和授权未知标签。所以现在如果我们再次扫描标签,将被授予访问权限,因此我们可以打开门。

实物图

我们关上门后,门会自动锁上。如果我们想从系统中删除一个标签,我们只需要再次进入程序模式,扫描已知标签,它将被删除。

源代码解释


现在让我们来看看代码。 首先我们需要包含 RFID 模块、显示器和伺服电机的库,定义下面程序所需的一些变量以及创建库的实例。

#include <SPI.h>#include <MFRC522.h>#include <LiquidCrystal.h>#include <Servo.h>#define RST_PIN 9#define SS_PIN 10byte readCard<4>;char* myTags<100> = {};int tagsCount = 0;String tagID = "";boolean successRead = false;boolean correctTag = false;int proximitySensor;boolean doorOpened = false;// Create instancesMFRC522 mfrc522(SS_PIN, RST_PIN);LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Parameters: (rs, enable, d4, d5, d6, d7)Servo myServo; // Servo motor

setup部分,我们初始化模块,并将伺服电机的初始值设置为锁定位置。然后我们将初始消息打印到显示器上,并通过以下“while”循环等待主标签被扫描。getID() 自定义函数获取标签 UID 并将其放入 myTags<0> 数组的之一个位置。

void setup() {  // Initiating  SPI.begin(); // SPI bus  mfrc522.PCD_Init(); // MFRC522  lcd.begin(16, 2); // LCD screen  myServo.attach(8); // Servo motor  myServo.write(10); // Initial lock position of the servo motor  // Prints the initial message  lcd.print("-No Master Tag!-");  lcd.setCursor(0, 1);  lcd.print(" SCAN NOW");  // Waits until a master card is scanned  while (!successRead) {    successRead = getID();    if ( successRead == true) {      myTags = strdup(tagID.c_str()); // Sets the master tag into position 0 in the array      lcd.clear();      lcd.setCursor(0, 0);      lcd.print("Master Tag Set!");      tagsCount++;    }  }  successRead = false;  printNormalModeMessage();}

我们来看看 getID() 自定义函数。首先,它检查阅读器附近是否放置了新标签,如果有,我们将继续“for”循环,获取标签的 UID。我们使用的标签有 4 个字节的 UID 号,这就是为什么我们需要对这个循环进行 4 次迭代,并使用 concat() 函数将 4 个字节添加到单个 String 变量中。我们还将字符串的所有字符设置为大写,最后我们停止阅读。

uint8_t getID() {  // Getting ready for Reading PICCs  if ( ! mfrc522.PICC_IsNewCardPresent()) { //If a new PICC placed to RFID reader continue    return 0;  }  if ( ! mfrc522.PICC_ReadCardSerial()) { //Since a PICC placed get Serial and continue    return 0;  }  tagID = "";  for ( uint8_t i = 0; i < 4; i++) { // The MIFARE PICCs that we use have 4 byte UID    readCard = mfrc522.uid.uidByte;    tagID.concat(String(mfrc522.uid.uidByte, HEX)); // Adds the 4 bytes in a single String variable  }  tagID.toUpperCase();  mfrc522.PICC_HaltA(); // Stop reading  return 1;}Before we enter the main loop, at the end of the setup section, we also call the printNormalModeMessage() custom function which prints the “Access Control” message on the display.void printNormalModeMessage() {  delay(1500);  lcd.clear();  lcd.print("-Access Control-");  lcd.setCursor(0, 1);  lcd.print(" Scan Your Tag!");}

在主循环中,我们从读取接近传感器的值开始,它告诉我们门是否关闭。

int proximitySensor =  *** ogRead(A0);

因此,如果门是关闭的,使用与我们在 getID() 自定义函数中描述的相同的行,我们将扫描并获取新标签的 UID。我们在这里可以注意到,由于“if”语句中的“return”行,在我们扫描标签之前,代码不会继续进行。

一旦我们扫描了标签,我们就会检查该标签是否是我们之前注册的主,如果是,我们将进入程序模式。在这种模式下,如果我们扫描一个已经授权的标签,它将从系统中删除,或者如果标签未知,它将作为授权添加到系统中。

// 检查扫描到的标签是否是主标签if (tagID == myTags<0>) {  lcd.clear();  lcd.print("Program mode:");  lcd.setCursor(0, 1);  lcd.print("Add/Remove Tag");  while (!successRead) {    successRead = getID();    if ( successRead == true) {      for (int i = 0; i < 100; i++) {        if (tagID == myTags) {          myTags = "";          lcd.clear();          lcd.setCursor(0, 0);          lcd.print(" Tag Removed!");          printNormalModeMessage();          return;        }      }      myTags = strdup(tagID.c_str());      lcd.clear();      lcd.setCursor(0, 0);      lcd.print(" Tag Added!");      printNormalModeMessage();      tagsCount++;      return;    }  }}

在程序模式之外,在下一个“for”循环中,我们检查扫描的标签是否与任何已注册的标签相同,我们要么解锁门,要么保持拒绝访问。在“else”语句的最后,我们等到门关闭,然后锁上门并再次打印正常模式消息。

// 检查扫描的标签是否被授权for (int i = 0; i < 100; i++) {  if (tagID == myTags) {    lcd.clear();    lcd.setCursor(0, 0);    lcd.print(" Access Granted!");    myServo.write(170); // Unlocks the door    printNormalModeMessage();    correctTag = true;  }}if (correctTag == false) {  lcd.clear();  lcd.setCursor(0, 0);  lcd.print(" Access Denied!");  printNormalModeMessage();}}// If door is open...else {  lcd.clear();  lcd.setCursor(0, 0);  lcd.print(" Door Opened!");  while (!doorOpened) {    proximitySensor =  *** ogRead(A0);    if (proximitySensor > 200) {      doorOpened = true;    }  }  doorOpened = false;  delay(500);  myServo.write(10); // Locks the door  printNormalModeMessage();}

项目的完整代码:

 /*Arduino 门锁门禁控制项目** 作者:Dejan Nedelkovski,www.HowToMechatronics.com** 库:MFRC522,https://github.com/miguelbalboa/rfid*/#include <SPI.h>#include <MFRC522.h>#include <LiquidCrystal.h>#include <Servo.h>#define RST_PIN 9#define SS_PIN 10byte readCard<4>;char* myTags<100> = {};int tagsCount = 0;String tagID = "";boolean successRead = false;boolean correctTag = false;int proximitySensor;boolean doorOpened = false;// Create instancesMFRC522 mfrc522(SS_PIN, RST_PIN);LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Parameters: (rs, enable, d4, d5, d6, d7)Servo myServo; // Servo motorvoid setup() {  // Initiating  SPI.begin(); // SPI bus  mfrc522.PCD_Init(); // MFRC522  lcd.begin(16, 2); // LCD screen  myServo.attach(8); // Servo motor  myServo.write(10); // Initial lock position of the servo motor  // Prints the initial message  lcd.print("-No Master Tag!-");  lcd.setCursor(0, 1);  lcd.print(" SCAN NOW");  // Waits until a master card is scanned  while (!successRead) {    successRead = getID();    if ( successRead == true) {      myTags = strdup(tagID.c_str()); // Sets the master tag into position 0 in the array      lcd.clear();      lcd.setCursor(0, 0);      lcd.print("Master Tag Set!");      tagsCount++;    }  }  successRead = false;  printNormalModeMessage();}void loop() {  int proximitySensor =  *** ogRead(A0);  // If door is closed...  if (proximitySensor > 200) {    if ( ! mfrc522.PICC_IsNewCardPresent()) { //If a new PICC placed to RFID reader continue      return;    }    if ( ! mfrc522.PICC_ReadCardSerial()) { //Since a PICC placed get Serial and continue      return;    }    tagID = "";    // The MIFARE PICCs that we use have 4 byte UID    for ( uint8_t i = 0; i < 4; i++) { //      readCard = mfrc522.uid.uidByte;      tagID.concat(String(mfrc522.uid.uidByte, HEX)); // Adds the 4 bytes in a single String variable    }    tagID.toUpperCase();    mfrc522.PICC_HaltA(); // Stop reading    correctTag = false;    // Checks whether the scanned tag is the master tag    if (tagID == myTags<0>) {      lcd.clear();      lcd.print("Program mode:");      lcd.setCursor(0, 1);      lcd.print("Add/Remove Tag");      while (!successRead) {        successRead = getID();        if ( successRead == true) {          for (int i = 0; i < 100; i++) {            if (tagID == myTags) {              myTags = "";              lcd.clear();              lcd.setCursor(0, 0);              lcd.print(" Tag Removed!");              printNormalModeMessage();              return;            }          }          myTags = strdup(tagID.c_str());          lcd.clear();          lcd.setCursor(0, 0);          lcd.print(" Tag Added!");          printNormalModeMessage();          tagsCount++;          return;        }      }    }    successRead = false;    // Checks whether the scanned tag is authorized    for (int i = 0; i < 100; i++) {      if (tagID == myTags) {        lcd.clear();        lcd.setCursor(0, 0);        lcd.print(" Access Granted!");        myServo.write(170); // Unlocks the door        printNormalModeMessage();        correctTag = true;      }    }    if (correctTag == false) {      lcd.clear();      lcd.setCursor(0, 0);      lcd.print(" Access Denied!");      printNormalModeMessage();    }  }  // If door is open...  else {    lcd.clear();    lcd.setCursor(0, 0);    lcd.print(" Door Opened!");    while (!doorOpened) {      proximitySensor =  *** ogRead(A0);      if (proximitySensor > 200) {        doorOpened = true;      }    }    doorOpened = false;    delay(500);    myServo.write(10); // Locks the door    printNormalModeMessage();  }}uint8_t getID() {  // Getting ready for Reading PICCs  if ( ! mfrc522.PICC_IsNewCardPresent()) { //If a new PICC placed to RFID reader continue    return 0;  }  if ( ! mfrc522.PICC_ReadCardSerial()) { //Since a PICC placed get Serial and continue    return 0;  }  tagID = "";  for ( uint8_t i = 0; i < 4; i++) { // The MIFARE PICCs that we use have 4 byte UID    readCard = mfrc522.uid.uidByte;    tagID.concat(String(mfrc522.uid.uidByte, HEX)); // Adds the 4 bytes in a single String variable  }  tagID.toUpperCase();  mfrc522.PICC_HaltA(); // Stop reading  return 1;}void printNormalModeMessage() {  delay(1500);  lcd.clear();  lcd.print("-Access Control-");  lcd.setCursor(0, 1);  lcd.print(" Scan Your Tag!");}

让我们一起动手试试吧!

如果您喜欢本教程,欢迎收藏,点赞加关注喔!这将为我后续文章提供更大的动力。

Linkboy教程:第1课 闪烁的灯(A)


创客教育注重不只是技术性问题,更是教育思想的变革,致力于将学生从知识的奴隶变为知识的主人;注重具有知、情、意、行等能力的培养,在知识的应用中深化、内化知识,更加注重知识的创造。

创客教育着眼于在实践中培养学生的创新、实践、共享的创客精神和理念。

之一章

第1课 闪烁的灯(A)

  1. 实验器材

1、Arduino uno板:Arduino不仅仅是全球更流行的开源硬件,也是一个优秀的硬件开发平台,更是硬件开发的趋势,很适合初学者入门嵌入式开发。Arduino简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。

2、面包板

面包板是由于板子上有很多小插孔,专为电子电路的无焊接实验设计制造的。由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。

3、LED灯

长脚接VCC或数字引脚,短脚接GND

4、杜邦线

认识公-公,公-母,母-母

  1. 认识Linkboy

linkboy是一款开源免费的图形化编程仿真平台,通过鼠标交互拖拽快速搭建编程逻辑,拥有所见即所得的可视化界面,独一无二的模拟仿真功能,是开源免费的创客教育神器.

步骤:

下面我们来编写一个闪烁的红灯程序:

1、打开Linkboy程序,分别在程序模块选择arduino uno板 、面包板和红色LED,并拖动到编辑区。

2、连线,点击各个电子元件接脚连线。

3、编写程序,设计一个每隔5秒点亮和熄灭的LED灯程序。因为需要添加一个延时器,用来命令LED灯亮5秒和熄灭5秒。

1、点击arduino板,选择反复执行

2、在指令中拖动“模块类功能指令”,移动的反复执行下方,出现蓝色方框,放开鼠标左键。

3、点击

选择红灯点亮

4、再次添加一个

,选择延时器,选择延时器延时秒,输入5秒。

5、重复第3步,选择红灯熄灭

6、重复第4步

7、保存文件,点击

,仿真运行。

8、按照设计图,连接实物,用USB线连接arduino板,在程序中点击

,在串口号下点击连接的硬件,再点击“开始下载“,完全下载后,就可以看到实物运行情况。

  1. 注意事项:
  1. 下载程序前需要在电脑中安装主板的驱动程序,否则不能下载程序。
  2. 程序中的反复执行就是程序执行完命令后再次从头开始执行,反复进行。
  1. 思考题
  1. 为什么要用延时器?不用延时器的效果怎么样?可以测试下。
  2. 如果不用反复执行,用初始化,效果会怎么样?
  1. 作业

请设计一个红绿灯,要求红灯、绿灯亮20秒,黄灯亮5秒.

多功能家用面包机控制板原理 及方案开发


控制板功能

多功能面包机通常具有多种预设程序和可调节的参数,如面团的重量、烘焙时间、温度等,以适应不同种类的面包 *** 。同时,它们也具备多种辅助功能,如预约烘焙、保温、取消操作等。这些功能都是通过电子控制模块实现的,控制模块接收用户的指令并控制面包机的工作状态,从而实现自动化面包 *** 。


系统框架

模块及配件

名称及功能

技术参数

图片

TCOOP-M004-升压模块-MT3608

(将锂电池电压转化为控制板所需的电压)

输入电压:2.8-5.5V

输出电压:5V

更大输入电流:1.2A

工作效率:>=80%

保护:限流保护,过温保护,过压保护

安装方式:2.54*4P排针

开关频率:1.2MHz

尺寸:15*13*3(mm)

工作温度:-40°C ~ +85°C

贮存温度范围:-65℃~125℃


TCOOP-M074-单节锂电池充电模块-FM4057

(锂电池充电功能)

输入电压工作范围:4.6-32V

输入过压保护电压:6.5V

充电电流:1A

支持电池类型:4.2V、4.35V、4.4V

保护:输出过流、过压、短路保护;输入过压、欠压保护;OTP 过温保护

特性:4KV ESD

安装方式:传感器2.54*6P排针

尺寸:10*15.72*3(mm)

工作环境温度范围:-40℃~ +85℃


TCOOP-M015-处理器-N79E715AT28

内核:51(4T)CMOS微控制器

工作电压范围:2.4~5.5V

工作频率:高速内部RC振荡器22.1184 MHz

工作温度: - 40 ℃ 至 + 105 ℃;

I/O口:最多25个I/O引脚,具有四个优先级的14个中断源

内存FLASH: 16 KB;模数转换器(ADC):提供 8 模拟通道;计时器/计数器:两组16位定时器/计数器,一个16位定时器,具有三个通道的输入捕获脉宽调制器(PWM);4通道10位PWM输出,带一个制动/故障输入;8个键盘中断输入(KBI);10位A/D转换器;

串行端口:一套UART具有帧错误检测和自动地址识别功能;1组UART;一套具有主/从功能的SPI;2组SPI;一套具有主/从功能的I2C


TCOOP-M025-液晶屏驱动模块-HT1621B

(驱动液晶屏显示)

工作电压:2.4V~5.2V

工作频率:256kHz 内建 RC 振荡电路

LCD模式:1/2 或 1/3 的偏置,1/2、1/3 或 1/4 的占空比

显示矩阵:32×4 的 LCD 驱动

通讯方式:3 端串行接口

TCOOP-M102-电流检测模块-CC6902S0

(安全保护模块:包括过载保护、过热保护、短路保护等)


工作电压:4.5~5.5V

量程更大值:20A

灵敏度:100mV/A

工作环境温度范围:-40℃~ 85℃

载波频率:1MHZ

安全隔离电压:导线引脚到信号引脚有2100V

ESD(HBM):6000V

TCOOP-M052-传感器模块-温湿度传感器-AHT10

输入电压:2.5-5.5V

工作电流:23uA

测量范围:温度(-40℃~ 85℃)湿度(0-100%RH)

测量精度:温度(±0.5℃) 湿度(±3%RH)

测量分辨率:温度(0.01℃) 湿度(1%RH)

通讯协议:IIC通讯

安装方式:2.54*4P排针

尺寸:10.5*13.5*3(mm)

工作环境温度范围:-40℃~ 85℃

贮存温度范围:-50℃~150℃

案例展示

手机蓝牙操控Arduino二例

文/山东省招远之一中学 牟晓东

在数据通信方面,Arduino UNO通常情况下是通过数据线与计算机的USB接口相连,比如从Arduino IDE中上传编译好的程序代码;而位于数字引脚0(RX)和1(TX)的串口通信,一般是通过Serial.println()函数在串口监视器中进行提示信息或传感器所读取数据的实时显示。如何进行数据的无线通讯呢?以蓝牙传输为例,借助于HC-05蓝牙模块,我们可以实现手机操控Arduino的功能,比如控制LED灯的亮与灭、风扇模块的“无级变速”。

1.Arduino蓝牙LED灯

实验器材包括:Arduino UNO主板一个,面包板一个,HC-05蓝牙模块一个,蓝色LED灯一支,10KΩ和20KΩ的色环电阻各一个,杜邦线若干。

对照设计好的电路接线图(如图1),进行元器件的连接。首先,将Arduino的5V引脚和GND接地引脚通过红色和黑色杜邦线分别与面包板的红色、蓝色侧边线槽连接;接着,将蓝色LED灯插接到面包板上,负极(短腿)接入蓝色线槽,正极(长腿)通过杜邦线(蓝线)连接至Arduino的13号数字引脚;HC-05蓝牙模块共有六个引脚(仅使用其中的四个),先将VCC端和GND端分别接入面包板的红色和蓝色线槽,由于蓝牙模块的标准工作电源是3.3V,因此需要借助两个电阻进行“分压”——从蓝牙模块的RXD端通过杜邦线(黄色)插接至面包板,其中的一端经10KΩ的电阻与Arduino的TXD(1号)连接,另一端经20KΩ的电阻与面包板的蓝色线槽(GND)连接;蓝牙模块的TXD端,则通过杜邦线(绿色)与Arduino的RXD(0号)进行连接;最后,通过数据线将Arduino与计算机的USB接口进行连接。

在Arduino IDE中进行程序代码的编写:

首先进行变量的定义,语句“int BlueLED = 13;”的作用是声明蓝色LED灯的连接引脚是13号,并且通过语句“char serialBlueLED;”来定义一个字符型的变量,其作用是用来存储蓝牙串口数据;在setup()函数中,先通过语句 “Serial.begin(9600);”来设置串口监视器的波特率为9600bps,再通过语句“pinMode(BlueLED, OUTPUT);”将蓝色LED灯的引脚设置为输出工作模式;在loop()函数中,建立一个实时检测是否有串口数据传输的while()循环:“while (Serial.available() > 0)”,通过语句“serialBlueLED = Serial.read();”将读取到的蓝牙串口传输数据赋值给变量serialBlueLED;然后建立“if…else if…”双分支选择结构,对变量serialBlueLED的值进行是否为“1”或“0”(均为字符型)的判断,是“1”的话,执行两个“动作”:“Serial.println("收到指令:点亮13号蓝色LED灯!");”(在串口监视器显示提示信息)、“digitalWrite(BlueLED, HIGH);”(控制蓝色LED灯发光);是“0”的话,则执行另外两个“动作”:“Serial.println("收到指令:熄灭13号蓝色LED灯!");”、“digitalWrite(BlueLED, LOW);”(熄灭蓝色LED灯);最后添加一个2秒钟的延迟语句:“delay(2000);”,将程序保存为BlueToothLED(如图2)。

注意,程序编译后不要直接上传至Arduino,因为蓝牙模块占用了Arduino的RX(0号)和TX(1号),直接上传会出现“Problem uploading to board”错误。解决 *** 是暂时将两条杜邦线从Arduino上拔出后再进行上传,上传成功后再原样插回即可,此时蓝牙模块的红色LED灯就会一直在闪烁,处于等待连接状态中;在手机中下载并安装Arduino bluetooth controller_v1.apk(apk文件可扫码关注“壹零社”在编程相关中下载),运行程序进行蓝牙连接(首次使用时会先进行“配对”),点击“HC-05”项后会弹出四个连接选项,选择其中的第二项“Switch mode”(开关模式),接着点击弹出按钮右上角的“齿轮”设置项,将绿色和红色两个开关的值分别设置为“1”和“0”(如图3)。

打开Arduino程序的串口监视器,然后在手机中就可以不断点击两个开关按钮进行LED灯的控制了,同时会在串口监视器中对应出现“收到指令:点亮13号蓝色LED灯!”或“收到指令:熄灭13号蓝色LED灯!”的提示(如图4)。

2.Arduino蓝牙变速风扇

在蓝牙LED灯的电路接线图中稍作改动(如图5),将LED灯及对应的杜邦线拆除,保持蓝牙模块和分压电路不变,将风扇模块接入:VCC和GND端分别接入面包板的红色和蓝色线槽,信号控制端通过杜邦线连接至Arduino的3号数字引脚。

在Arduino IDE中进行程序代码的编写:

首先进行变量的定义,语句“int FANPin = 3;”的作用是声明风扇模块的连接引脚是3号,并且通过语句“int serialFAN;”定义serialFAN变量,作用是存储蓝牙串口控制风扇模块的数据;在setup()函数中,仍然是通过语句 “Serial.begin(9600);”设置串口监视器的波特率为9600bps;在loop()函数中,仍然建立一个实时检测是否有串口数据传输的while()循环:“while (Serial.available() > 0)”,通过语句“serialFAN = Serial.parseInt();”将读取到的蓝牙串口传输数据赋值给变量serialFAN;然后在串口监视器中进行提示信息和变量serialFAN数据的输出显示:“Serial.print("3号风扇模块的转速为:");”、“Serial.println(serialFAN);”;接着,通过语句“ *** ogWrite(FANPin, serialFAN);”向风扇模块的信号引脚写入一个0-255之间的数据,作用是控制输出对应的PWM值,即不同的转速;最后,再添加一个2秒钟的延迟语句:“delay(2000);”,将程序保存为BlueToothFAN(如图6)。

同样,程序编译后不要直接上传至Arduino,仍然是将插接在RX和TX引脚的两条杜邦线从Arduino上拔出后再进行上传,上传成功后再恢复连接;然后在手机中再次运行Arduino bluetooth controller进行蓝牙连接,点击“Connect in”页面四个连接选项中的第四项“Terminal mode”(终端模式),此时就可以在下方的输入框中进行测试:数值越小,风扇模块的转速就越低(50以下不启动),比如输入“127”后,风扇模块就是中等速度,“255”则是更高速,“0”就是关闭风扇模块(如图7)。

此时,在串口监视器中会显示有“3号风扇模块的转速为:127”的提示信息,与手机端的Arduino bluetooth controller控制界面是同步显示的;同时,风扇也会根据这个数值的大小来调节自身的转速,实现“无级变速”的功能(如图8)。

用移位寄存器来扩展 Arduino 数字 I/O 端口的数量

今天我们将使用几个基本的电子“构建模块”,移位寄存器。这些方便的设备可用于各种用途,如数据转换、缓冲和存储,但今天我们将看到它们也可用于扩展 Arduino 数字 I/O 端口的数量。

本文原创: 加拿大DroneBotWorkshop.com 翻译整理:DIY百事

通过学习使用移位寄存器,您将为设计师的工具包添加另一个方便的工具。


目录

1简介
1.1扩展您的 Arduino

2 移位寄存器
2.1移位寄存器的类型
2.1.1串行输入-并行输出
2.1.2并行输入-串行输出
2.1.3并行输入-并行输出 & 串行输入-串行输出
2.2移位寄存器的工作原理
2.3级联移位寄存器

3 74HC575 & 74HC165 移位寄存器
3.1 74HC595——8位串行输入——并行输出
3.2 74HC165——8位并行输入——串行输出

4. 74HC595 的额外输出端口
4.1 Arduino & 74HC595 连接
4.2 Arduino shiftOut() 函数
4.3 Arduino & 74HC595 草图

5. 驱动 7 段显示器
5.1 7 段 LED 显示
5.2 74HC595 7 段显示器连接
5.3 74HC595 7段显示示意图

6. 74HC165 的额外输入端口
6.1 Arduino shiftIn() 函数
6.2 Arduino & 74HC165 连接
6.3 Arduino & 74HC165 代码

7. 74HC595 和 74HC165 一起使用
7.1 74HC595 和 74HC165 连接
7.2 74HC595 和 74HC165 代码 1
7.3 74HC595 和 74HC165 代码 2 – 令人兴奋!

8. 结论

---------------------------------------------------------------------------------------------------------

扩展您的 Arduino

Arduino 已经有许多数字 I/O 端口,事实上,Arduino Mega 250 拥有 54 个数字 I/O 引脚和另外 16 个可以兼作数字 I/O 引脚的模拟输入。因此,对于 70 个潜在的 I/O 引脚,您通常不需要更多。但有时你确实需要更多。

以熟悉的“LED Cube”为例。一个 4x4x4 尺寸的立方体需要 64 个 LED,如果你“借用”几个模拟引脚,这在 Arduino Mega 2560 的能力范围内。但是你快到极限了。

如果你想扩展到一个 5x5x5 的立方体,那么你就不走运了,为此你需要 125 个 LED,而且你不能用一个 Arduino 单独控制它们。

即使是使用标准(即不可寻址)RGB LED 的 4x4x4 立方体也会超过限制。

有很多 *** 可以解决这些问题,包括在矩阵中运行 LED 或使用移位寄存器。移位寄存器将允许您仅使用几个 Arduino I/O 引脚来寻址大量 LED。

有时,您有很多传感器、显示器或其他 I/O 设备,无法为 LED 或开关留出大量引脚,但您需要一个多 LED 显示器或一个小键盘。移位寄存器可以再次派上用场。

让我们来看看这些设备的使用。

移位寄存器

移位寄存器是用于二进制数据的转换、存储或传输的时序逻辑电路。

这些设备用于在串行和并行数据之间进行转换。它们可用于数据通信电路以及存储器和缓冲电路。许多复杂的电子电路,例如微处理器和微控制器,在内部使用移位寄存器。

移位寄存器的类型

移位寄存器处理其输入和输出上的串行和并行数据,并且它们可以在这些格式之间进行转换。

有四种基本类型的移位寄存器:

串行输入-并行输出

并行输入 - 串行输出

并行输入 - 串行输出 (PISO) 移位寄存器将并行数据转换为串行数据。它用于通信并将多个输入端口转换为串行数据。

并行输入 – 并行输出 & 串行输入 – 串行输出

你可能会觉得这两个很奇怪。为什么需要一个移位寄存器,以与输入的格式相同的格式输出数据?

答案是这可以用作缓冲区,以在特定数量的时钟周期内保存数据。我们今天使用的移位寄存器都使用类似的缓冲器来保存他们输入和输出上的数据,因此在寄存器移位时它不会改变。

移位寄存器的工作原理

内部移位寄存器由许多基本逻辑门组成,其中许多被安排为“触发器”。

如果您不熟悉触发器,它是一种基本的电子电路,可以用来保存来自其输入的数据值。它是一个基本的构建块,无处不在,包括在许多形式的存储器电路中。

串行输入-并行输出或 SIPO 寄存器使用一系列触发器,并行输出上的每个位对应一个触发器。此处的插图显示的是 4 位设备。

当串行数据的之一位被计时,它存储在触发器中并出现在其输出上。

下一位数据将原始位推送到下一个触发器。

随着串行数据的输入,该过程继续进行。请注意,触发器仅在输入时更新输入值。

最后,当并行输出中的所有数据都被计时时,就可以读取了。在大多数移位寄存器中,一个额外的缓冲区保存并行数据,并且在所有数据输入时钟之前不会更改它。

PISO 或并行输入 - 串行输出移位寄存器的构造如下

该图的“MUX”部分实际上由许多分立的逻辑门组成,它们用于在正确的时间将数据馈入相关的触发器。

这很重要,因为 PISO 移位寄存器需要单独计时并行数据的每一位。这意味着并行输入上的数据在读取时不能更改,同样,大多数实际设计采用缓冲区来保存并行数据。

级联移位寄存器

移位寄存器按其处理的位数进行分类,前面插图中显示的那些是 4 位寄存器,而我们今天将使用的两个移位寄存器都是 8 位设备。

如果您需要增加可以使用移位寄存器处理的并行数据量,您可以将其与另一个移位寄存器级联。所以两个 8 位移位寄存器可以支持 16 位,再加一个支持 24 位,等等。

您不需要额外连接到微控制器来级联移位寄存器,因此这是驱动大量 LED 或读取大量开关而不使用大量端口的好 *** 。

74HC575 & 74HC165 移位寄存器

今天我们将使用两个非常常见且容易获得的移位寄存器,即 74HC595 SIPO 和 74HC165 PISO。让我们仔细看看这些芯片。

74HC595——8位串行输入——并行输出

该74HC575是一个8级串行移位寄存器,它也具有一个内部存储寄存器。存储寄存器缓冲输出数据并且可以独立于移位寄存器计时。这可以防止数据在加载时发生变化。

74HC595 具有“三态”输出。这意味着并行数据输出上的引脚可以处于三种不同的状态。

OFF 状态是高阻态,有效断开芯片的输出。这种技术允许多个三态芯片驱动同一条总线,在任何给定时间只有其中一个处于活动状态。

DIP 封装中 74HC575 的引脚排列如下所示:

串行数据在 DS 引脚(引脚 14)上输入。您可以使用 Q7' 引脚来级联这些设备,以增加您可以控制的并行输出数量。

输出使能(引脚 13)控制三态总线,如果它为低电平,则输出总线被使能。

74HC165 – 8 位并行输入 – 串行输出

该74HC165是具有串行输出的8位并行负载移位寄存器。它具有互补输出,其中一个可以连接到另一个 74HC165 以将它们级联。

该器件用于并行到串行数据转换,具有以下引脚排列:

与 74HC595 一样,这是一种非常常见的集成电路,您几乎可以从任何电子供应商处获得它。

74HC595 的额外输出端口

我们将从 74HC595 SIPO(串行输入-并行输出)移位寄存器开始我们的实验。

74HC595 允许我们扩展 Arduino 上的数字 I/O 端口的数量。在这些实验中,我们将使用它来驱动一些 LED,我们将使用 Arduino 控制这些 LED。

Arduino & 74HC595 连接

以下是我们将 74HC595 连接到 Arduino 和八个 LED 的 *** 。

请注意在电源两端添加了一个去耦电容器,当使用 74HC595 等 TTL 芯片时,这是一个好主意。我使用了一个 100uf 的电容器,但 10uf 以上的任何值都可以正常工作。确保您观察电容器的极性。

在我的面包板上,我用一个 8×2220 欧姆的电阻阵列替换了八个降压电阻。当您需要大量相同的电阻器时,这是一个方便的组件。当然,如果您没有阵列,您可以使用分立电阻器。

这里有很多电线,所以请仔细检查您的接线。您可以先连接 LED 降压电阻器组合,然后向电阻器施加 5 伏电压,如果接线正确,您将点亮 LED。对所有八个电阻-LED 对重复测试。在连接 74HC595 和 Arduino 之前执行此操作。

一旦全部连接好,您就可以继续前进并编写一些代码以使其全部工作。

Arduino shiftOut() 函数

有几种 *** 可以使用 Arduino 与移位寄存器“对话”。一种 *** 是使用 SPI 总线,它允许您利用现有库来简化代码编写。

另一种 *** 是使用 Arduino 上的任何标准 I/O 引脚来创建时钟并交换串行数据。这是我们将用于处理 74HC595 移位寄存器的 *** 。

Arduino 提供了一个shiftOut()函数来简化串行连接上的数据移动。它可以获取一个字节值并以串行格式与另一个引脚上的时钟脉冲同步输出。可以选择两个方向输出数据。

  • MSB First– 更高位在前。所以二进制数 10110010 将以“101”开始,或者从左到右,一次输出一位。
  • LSB First – 更低有效位在前。在这种情况下,二进制数 10110010 将以“010”开始,或从右到左,一次输出一位。

我们将在我们的代码中使用这个功能。

Arduino 和 74HC595 代码

我们的代码非常简单。该SHIFTOUT函数能将我们的数据发送到移位寄存器和创建时钟信号。

/*  74HC595 Shift Register Demonstration 1  74hc595-demo.ino  Count in Binary and display on 8 LEDs   Modified from "Hello World" example by Carlyn Maw,Tom Igoe and David A. Mellis   DroneBot Workshop 2020  https://dronebotworkshop.com*/ // Define Connections to 74HC595 // ST_CP pin 12const int latchPin = 10;// SH_CP pin 11const int clockPin = 11;// DS pin 14const int dataPin = 12; void setup (){  // Setup pins as Outputs  pinMode(latchPin, OUTPUT);  pinMode(clockPin, OUTPUT);  pinMode(dataPin, OUTPUT);} void loop() {  // Count from 0 to 255 and display in binary   for (int numberToDisplay = 0; numberToDisplay < 256; numberToDisplay++) {     // ST_CP LOW to keep LEDs from changing while reading serial data    digitalWrite(latchPin, LOW);     // Shift out the bits    shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay);     // ST_CP HIGH change LEDs    digitalWrite(latchPin, HIGH);     delay(500);  }}

我们首先为连接到 74HC595 的引脚分配变量名称。然后将所有这些引脚设置为输出。然后我们进入循环。

我们使用 for-next 循环从 0 到 255 计数,递增 1。在每次增量时,我们将计数器值写入移位寄存器。锁存引脚用于在我们准备好之前保存数据,以便在加载移位寄存器时显示不会闪烁。

半秒延迟后,下一个数字被加载。

结果是 LED 显示从 0 到 255 的二进制计数。

您可以试验代码并操纵一些值并观察对 LED 的影响。尝试将shiftOut 语句中的MSBFIRST参数更改为LSBFIRST,看看会发生什么。

这是理解基本移位寄存器操作的简单 *** 。

驱动 7 段显示器

74HC575 的另一个用途是驱动 7 段 LED 显示屏。您可以使用它来显示连接到一台显示器的数量,或者您可以级联多个 74HC595 来驱动多台显示器。

7 段 LED 显示屏

典型的 7 段 LED 显示布局如下所示:

请注意,“7 段”显示器中实际上有八个 LED 元件,第八个 LED 用作小数点。在某些显示中,这可以用冒号代替。

LED 显示屏有两种配置:

  • 共阳极– 所有 LED 都使用共阳极(正极)连接。
  • 共阴极- 所有 LED 都与一个共阴极(负极)连接相连。

两种显示类型都使用相同的引脚排列,因此了解您的类型非常重要。一个很好的判断 *** (除了参考显示器部件号)是在“二极管测试”功能上使用万用表。当以正确的极性连接时,它可用于点亮 LED 元件。

共阴极显示器更常见,是我们将用于实验的类型。

74HC595 7 段显示器连接

由于共阴极 7 段 LED 显示屏实际上只是将八个 LED 连接到一个公共阴极(负极)端子,因此与我们在之一个实验中使用的八个 LED 没有什么不同。所以我们可以使用完全相同的电路来接线。

使用连接图中的图表将显示引脚连接到降压电阻。COM 引脚(公共阴极)连接到 Arduino 的地。请注意,显示器将有两个 COM 引脚,您只需连接一个。

完成所有连接后,您可以通过运行上一个代码来测试它,该代码应该测试所有 LED 段,包括小数点。

但要真正显示连贯的东西,我们需要不同的代码。

74HC595 7段显示代码

这是我们将用来测试我们的 7 段显示器的代码。

/*  74HC595 Shift Register with 7-segment LED display  74hc595-7segdisplay.ino  Count in hex from 0-F and display on 7-segment Common Cathode LED display   DroneBot Workshop 2020  https://dronebotworkshop.com*/ // Define Connections to 74HC595 // ST_CP pin 12const int latchPin = 10;// SH_CP pin 11const int clockPin = 11;// DS pin 14const int dataPin = 12; // Patterns for characters 0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,Fint datArray<16> = {B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11110110, B11101110, B00111110, B10011100, B01111010, B10011110, B10001110}; void setup (){  // Setup pins as Outputs  pinMode(latchPin, OUTPUT);  pinMode(clockPin, OUTPUT);  pinMode(dataPin, OUTPUT);}void loop(){  // Count from 0 to 15  for (int num = 0; num < 16; num++)  {    // ST_CP LOW to keep LEDs from changing while reading serial data    digitalWrite(latchPin, LOW);     // Shift out the bits    shiftOut(dataPin, clockPin, MSBFIRST, datArray);     // ST_CP HIGH change LEDs    digitalWrite(latchPin, HIGH);     delay(1000);  }}

此代码与前一个代码有许多相似之处,当您认为它在同一件事上做得很好时,这并不奇怪。

我们通过定义与 74HC595 的连接重新开始。

然后我们创建一个包含 16 个元素的数组,每个元素代表要在 7 段 LED 上显示的字符模式。

这些元素以二进制形式编写,因此很容易理解它们的工作原理。在二进制字节中,每一位代表一个 LED 段。从 MSB 到 LSB(从左到右),它们代表显示屏中的以下段:

a – b – c – d – e – f – g – DP

当该位设置为“1”时,LED 各段点亮,“0”表示熄灭。

数组是有序的,所以元素 0 是“0”的字符。元素1是“1”等的字符。它是十六进制的,所以元素15是“F”。

查看数组元素,您将看到排列。

再次在设置中,我们将连接设置为输出,然后进入循环。

我们再次使用计数器,只是这次 介于 0 和 15 之间。我们将在 LED 显示屏上以十六进制格式显示这些值。

我们一次遍历数组一个元素,使用shiftOut将数组中的数据发送到移位寄存器。

加载代码并观察显示。如果一切都正确连接,您会看到它从 0 到 F 计数,然后重复。

74HC165 的额外输入端口

现在我们已经了解了如何使用移位寄存器添加输出端口,现在是时候做相反的事情并添加一些输入了。对于这项工作,我们将使用 74HC165。

我们将使用 74HC165 移位寄存器和八个轻触式按钮开关。移位寄存器将从开关中获取 8 个输入,并将它们作为串行数据发送到 Arduino。

Arduino shiftIn() 函数

Arduino 再次具有用于接收串行数据的专用功能。

所述SHIFTIN()函数中的一个字节在一个时间移位串行数据。可以设置为先取 MSB 或 LSB。它通常与 74HC165 或CD4021BE等移位寄存器一起使用。

与其表亲shiftOut函数一样,shiftIn函数也提供时钟信号来同步数据传输。

Arduino & 74HC165 连接

74HC165 的输入需要拉低以防止错误读数,因此除了我们的八个按钮开关之外,我们还需要八个下拉电阻。我使用了 10k 电阻,但从 4.7k 到 27k 的任何值都可以正常工作。

我再次使用了一个 100uf 的去耦电容,确保在连接时注意极性。

一旦你把它全部连接起来,我们就可以专注于我们将用来完成这项工作的代码。

Arduino & 74HC165 代码

我们的代码非常简单,因为它所做的只是读取按钮的状态并在串行监视器上显示结果。但这就是了解如何从按钮和 74HC165 获取数据所需要做的全部工作。

/*  74HC165 Shift Register Demonstration 1  74hc165-demo.ino  Read from 8 switches and display values on serial monitor   DroneBot Workshop 2020  https://dronebotworkshop.com*/ // Define Connections to 74HC165 // PL pin 1int load = 7;// CE pin 15int clockEnablePin = 4;// Q7 pin 7int dataIn = 5;// CP pin 2int clockIn = 6; void setup(){   // Setup Serial Monitor  Serial.begin(9600);   // Setup 74HC165 connections  pinMode(load, OUTPUT);  pinMode(clockEnablePin, OUTPUT);  pinMode(clockIn, OUTPUT);  pinMode(dataIn, INPUT);} void loop(){   // Write pulse to load pin  digitalWrite(load, LOW);  delayMicroseconds(5);  digitalWrite(load, HIGH);  delayMicroseconds(5);   // Get data from 74HC165  digitalWrite(clockIn, HIGH);  digitalWrite(clockEnablePin, LOW);  byte incoming = shiftIn(dataIn, clockIn, LSBFIRST);  digitalWrite(clockEnablePin, HIGH);   // Print to serial monitor  Serial.print("Pin States:\r\n");  Serial.println(incoming, BIN);  delay(200);}

代码与我们之前的所有代码一样,定义了到 IC 的四个连接。

在设置中,我们初始化串行监视器,然后根据需要设置连接。

在循环中,我们首先向加载引脚写入一个脉冲,这将使其将并行输入中的数据加载到要处理的缓冲区中。

接下来,我们设置 74HC165 准备发送数据,然后使用shiftIn函数获取该数据,首先是 LSB(更低有效位)。我们通过将时钟引脚拉高来完成,这表示我们已经完成了。

最后,我们将结果打印到串行监视器。

加载代码,打开串行监视器并观察输出。马上你就会注意到一些事情。

数据在输出端全部保持高电平,与板上接线相反。按下按钮将使其读数为低,即使这与实际发生的情况相反。

这是因为我们使用的是 74HC165 的取反输出。我们的数据是相反的。

我将在稍后的代码中向您展示如何以正确的方式将其转回来。继续阅读!

我们刚刚使用的示例有许多实际应用,其中一个明显的应用是作为小键盘(尽管有更好的 *** 来 *** 大键盘)。对于需要大量开关的项目来说,这是一种有用的设计技巧。

该电路的一个重要应用是将它与 DIP 开关或跳线一起使用,这些开关或跳线只是偶尔设置。您可以使用 74NC165 来减少读取 8 位 DIP 开关所需的连接数量,只需在设置程序中读取它,以便仅在设备通电或复位时读取。

74HC595 和 74HC165 一起使用

当然,将所有这些 LED 和开关连接起来而不采取额外的步骤将它们连接在一起将是一种浪费!所以让我们这样做。

74HC595 和 74HC165 连接

如果您像我一样在自己的无焊面包板上构建每个演示,那么将它们连接在一起非常简单。

在其中一个演示中将 Arduino 与其面包板断开连接,哪个并不重要。将连接留在面包板上,以便您可以将它们重新连接到另一个 Arduino。您可以将 5 伏和接地连接连接到其他面包板电源轨。

完成后尝试在 Arduino 上运行之前的代码,一切都应该仍然有效。如果某些东西不起作用,请检查您的接线,当您加入项目时,某些东西可能已断开连接 - 这里有很多电线!

测试完所有内容后,就可以查看代码以同时使用 74HC165 和 74HC595。

74HC595 和 74HC165 代码 1

由于我们的演示本质上是将两个演示融合在一起,因此我们的代码完全相同。你会看到这个代码和之前的代码有很多相似之处,这并非偶然——其中一些是字面上的剪切和粘贴!

代码的目的是简单地使用 LED 来显示按钮的状态。作为演示,它运行良好。我保证在这之后我们会继续做一些更令人兴奋的事情!

/*  74HC595 & 74HC165 Shift Register Demonstration  74hc595-to-74ch165.ino  Input for 8 pushbuttons using 74HC165  Output to 0 LEDs using 74HC595   DroneBot Workshop 2020  https://dronebotworkshop.com*/ // Define Connections to 74HC165 // PL pin 1int load = 7;// CE pin 15int clockEnablePin = 4;// Q7 pin 7int dataIn = 5;// CP pin 2int clockIn = 6; // Define Connections to 74HC595 // ST_CP pin 12const int latchPin = 10;// SH_CP pin 11const int clockPin = 11;// DS pin 14const int dataPin = 12; void setup () {   // Setup Serial Monitor  Serial.begin(9600);   // 74HC165 pins  pinMode(load, OUTPUT);  pinMode(clockEnablePin, OUTPUT);  pinMode(clockIn, OUTPUT);  pinMode(dataIn, INPUT);   // 74HC595 pins  pinMode(latchPin, OUTPUT);  pinMode(clockPin, OUTPUT);  pinMode(dataPin, OUTPUT); }  void loop() {   // Read Switches   // Write pulse to load pin  digitalWrite(load, LOW);  delayMicroseconds(5);  digitalWrite(load, HIGH);  delayMicroseconds(5);   // Get data from 74HC165  digitalWrite(clockIn, HIGH);  digitalWrite(clockEnablePin, LOW);  byte incoming = shiftIn(dataIn, clockIn, LSBFIRST);  digitalWrite(clockEnablePin, HIGH);   // Print to serial monitor  Serial.print("Pin States:\r\n");  Serial.println(incoming, BIN);    // Write to LEDs   // ST_CP LOW to keep LEDs from changing while reading serial data  digitalWrite(latchPin, LOW);   // Shift out the bits  shiftOut(dataPin, clockPin, LSBFIRST, ~incoming);   // ST_CP HIGH change LEDs  digitalWrite(latchPin, HIGH);   delay(500); }

我们再次定义两个集成电路的引脚连接。在设置中,我们初始化串行监视器并根据需要设置连接。

循环以我们之前用于从 74HC165 读取按钮值的相同例程开始。我们再次将数据插入一个称为“传入”的 8 位字节中,并在串行监视器上显示其值。

接下来,我们使用之前使用的相同代码将数据写入 74HC595。但是我们对发送到移位寄存器上的数据进行了一项更改。

请记住,我们来自交换机的数据是反转的。如果我们将它发送到 74HC595 它将工作,但 LED 将全部亮起,除非我们按下了按钮。

为了反转数据,当我们在shiftOut函数中使用它时,我们在“传入”变量前面使用“~”符号。波浪号(波浪线)符号反转二进制数据,将每个零变成一,反之亦然。正是我们需要做的。

您还会注意到我们与早期 74HC595 代码不同的一件事是我们首先发送数据 LSB。这与我们从按钮接收它的方式相匹配。首先发送 MSB 会起作用,但 LED 显示会反转。

加载它并尝试一下。

很有趣,不是吗?

好吧,它确实不是,但它确实展示了如何获取并行数据(开关输入),使用移位寄存器将其转换为串行,将其发送到 Arduino,将其发送回第二个移位寄存器并进行转换它再次回到并联状态(LED 输出)。这有点令人兴奋。

如果您不是很兴奋,请不要担心,现在我们有 8 个开关和 8 个 LED,我们可以做其他事情。

74HC595 和 74HC165 代码 2 – 令人兴奋!

为了给我们的演示增添一些料,让我们使用八个开关来选择 LED 灯闪烁模式。因为我们有八个开关,所以我们可以选择八个模式。

这是我们如何做到的代码:

/*  74HC595 & 74HC165 Shift Register Demonstration 2  74hc595-to-74ch165-pattern.ino  Input from 8 pushbuttons using 74HC165  Output to 8 LEDs using 74HC595    Select LED pattern using pushbuttons    DroneBot Workshop 2020  https://dronebotworkshop.com*/// Define Connections to 74HC165 // PL pin 1int load = 7;  // CE pin 15      int clockEnablePin = 4;  // Q7 pin 7  int dataIn = 5;  // CP pin 2  int clockIn = 6;     // Define Connections to 74HC595 // ST_CP pin 12const int latchPin = 10;// SH_CP pin 11const int clockPin = 11;// DS pin 14const int dataPin = 12; // Define data arrayint datArray<8>; void setup () {  // Setup Serial MonitorSerial.begin(9600);  // 74HC165 pinspinMode(load, OUTPUT);pinMode(clockEnablePin, OUTPUT);pinMode(clockIn, OUTPUT);pinMode(dataIn, INPUT); // 74HC595 pinspinMode(latchPin,OUTPUT);pinMode(clockPin,OUTPUT);pinMode(dataPin,OUTPUT); }  void loop() { // Read Switches       // Write pulse to load pindigitalWrite(load,LOW);delayMicroseconds(5);digitalWrite(load,HIGH);delayMicroseconds(5); // Get data from 74HC165digitalWrite(clockIn,HIGH);digitalWrite(clockEnablePin,LOW);byte incoming = shiftIn(dataIn, clockIn, LSBFIRST);digitalWrite(clockEnablePin,HIGH); // Print to serial monitorSerial.print("Pin States:\r\n");Serial.println(incoming, BIN); // Setup array for LED pattern switch (incoming) {   case B11111110:      datArray<0> = B11111111;    datArray<1> = B01111110;    datArray<2> = B10111101;    datArray<3> = B11011011;    datArray<4> = B11100111;    datArray<5> = B11011011;    datArray<6> = B10111101;    datArray<7> = B01111110;      break;    case B11111101:      datArray<0> = B00000001;    datArray<1> = B00000010;    datArray<2> = B00000100;    datArray<3> = B00001000;    datArray<4> = B00010000;    datArray<5> = B00100000;    datArray<6> = B01000000;    datArray<7> = B10000000;      break;    case B11111011:      datArray<0> = B10000001;    datArray<1> = B01000010;    datArray<2> = B00100100;    datArray<3> = B00011000;    datArray<4> = B00000000;    datArray<5> = B00100100;    datArray<6> = B01000010;    datArray<7> = B10000001;      break;   case B11110111:      datArray<0> = B10101010;    datArray<1> = B01010101;    datArray<2> = B10101010;    datArray<3> = B01010101;    datArray<4> = B10101010;    datArray<5> = B01010101;    datArray<6> = B10101010;    datArray<7> = B01010101;      break;   case B11101111:      datArray<0> = B10000000;    datArray<1> = B00000001;    datArray<2> = B01000000;    datArray<3> = B00000010;    datArray<4> = B00100000;    datArray<5> = B00000100;    datArray<6> = B00010000;    datArray<7> = B00001000;      break;   case B11011111:      datArray<0> = B11000000;    datArray<1> = B01100000;    datArray<2> = B00110000;    datArray<3> = B00011000;    datArray<4> = B00001100;    datArray<5> = B00000110;    datArray<6> = B00000011;    datArray<7> = B10000001;      break; case B10111111:      datArray<0> = B11100000;    datArray<1> = B01110000;    datArray<2> = B00111000;    datArray<3> = B00011100;    datArray<4> = B00001110;    datArray<5> = B00000111;    datArray<6> = B10000011;    datArray<7> = B11000001;      break; case B01111111:      datArray<0> = B10001000;    datArray<1> = B01000100;    datArray<2> = B00100010;    datArray<3> = B00010001;    datArray<4> = B10001000;    datArray<5> = B01000100;    datArray<6> = B00100010;    datArray<7> = B00010001;      break;      default:     break;   } // Write to LEDs // Count from 0 to 7  for(int num = 0; num < 8; num++)  {    // ST_CP LOW to keep LEDs from changing while reading serial data    digitalWrite(latchPin, LOW);        // Shift out the bits    shiftOut(dataPin,clockPin,MSBFIRST,datArray);     // ST_CP HIGH change LEDs    digitalWrite(latchPin, HIGH);        delay(200);  } }

正如你所看到的,我再次从之前的所有演示中借用了编码。事实上,这个代码只有一件事不同,那就是允许您选择 LED 模式的 switch-case 语句。

我们使用保存开关值的“传入”字节作为语句的开关。然后我们有八个情况,每个开关按下一个。如果您想允许同时按下两个按钮,您可能可以添加更多按钮,但八个对我来说已经足够了!

在每个情况下,我们用 LED 图案填充datArray阵列,以二进制编写,以便于查看。在每个字节中,“1”表示 LED 点亮,而“0”表示 LED 熄灭。

我在数组中使用了八个元素以使其更容易,但您可以将其增加到您喜欢的任何数字。只需更改数组定义和循环遍历数组元素的 for-next 循环中的数字即可。

我将模式更改之间的延迟设置为 200 毫秒,但您可以更改它。更好的是,尝试将延迟作为每个案例评估中的变量,这样您就可以使模式以不同的速度运行。


代码按照预想的方式运行,实际上观看起来很有趣。

您可以通过级联 74HC595 以添加更多 LED 来改进代码。您还可以通过将电位计添加到模拟输入之一并使用它来设置延迟时间来使速度可变。74HC595 上的使能输入可以用 PWM 驱动来改变 LED 强度,你可以用第二个电位器来控制。

您甚至可以添加一些 MOSFET 来驱动更大的 LED 并 *** 您自己的特效!

一个有很多潜力的简单演示。

结论

移位寄存器可能是基本构建块,如果您需要为项目添加额外的输入或输出,它们会非常有用,它们既便宜又易于使用。

电子工程师的顶级PCB设计软??件工具:46种PCB设计的必备工具

不管他们正在从事哪个项目,电子工程师都必须准确知道电路的布局方式以及工作方式。没有印刷电路板(PCB),电子工程师的工作将是不可能的。但是,对于电子工程师来说,找到合适的PCB设计软件工具可能是一项艰巨的任务,因为它们太忙了,需要筛选的工具太多。

这就是为什么我们汇集了46个用于电子工程师的顶级PCB设计软件工具–节省了您在设计项目时所花费的时间。我们还意识到,一种软件工具可能适合一个PCB项目,而另一种软件工具可以更好地适用于其他类型的项目。结果,我们在清单中包括了简单工具,免费工具和专有工具。我们的标准很简单:电子工程师的PCB设计软件工具必须直观,包含有用的功能,建立足以限制风险的功能以及强大的库,以便可以将其应用于多个项目。我们在这里以 不分先后的顺序共享用于电子工程师的前46种PCB设计软件工具 。

1. PCB美工

@ AC4PCB

Advanced Circuits是领先的PCB制造商,拥有业内更大的活跃客户数据库和更佳的按时发货记录。他们的PCB Artist是电子工程师寻求可靠,易于使用的解决方案的可靠软件工具。电子工程师还选择PCB Artist,因为它可以节省时间和金钱。

主要特点:

  • 超过50万个零件的零件库
  • 免费的Gerber格式文件
  • 集成原理图
  • CSV的零件清单报告
  • 设计规则检查错误报告以及所选项目之间

费用:免费

2. Ultiboard

@NIglobal

National Instruments通过其开放的,以软件为中心的平台来加速工程成功,该平台利用了模块化硬件和广阔的生态系统。电子工程师特别选择National Instruments的Utiliboard,因为它为多种应用提供了快速的PCB原型 *** 环境。

主要特点:

  • 与Multisim无缝集成
  • 节省电子工程师数小时的开发时间
  • 在同一环境中完成电路原理图,SPIC仿真和PCB布局
  • 通过自动功能加速PCB设计,同时通过手动控制保持精度
  • 通过PCB布局和布线功能补充Multisim强大的SPICE仿真环境

费用:免费评估;联系报价

3. Altium Designer 17

@altium

作为一家为工程师提供基于PC的电子设计软件的软件公司,Altium推出了Designer17。该电子工程师的PCB设计软件被业内许多人视为黄金标准。Altium Designer 17高效,易于使用,并且满足专业电子工程师的现代需求。

主要特点:

  • 利用创新技术帮助电子工程师减少对流程的关注,而将更多的精力放在设计上
  • 通过将更多的精力集中在工作流程的创造性方面,来设计出更具启发性的设计
  • 轻松的设计自动化
  • 无限的工程范围
  • 直观的团队合作
  • 在机械领域验证设计
  • 集中信任的设计资产

费用:免费试用;联系报价

4. SOLIDWORKS PCB

@SOLIDWORKS

对于电子设计,SOLIDWORKS提供了强大的设计技术,并与SOLIDWORKS CAD按需双向集成。而且,他们的PCB解决方案将CAD和PCB设计融合在一起,实现了完美的协作。

主要特点:

  • 将PCB设计中的更佳技术与易于使用的界面相结合
  • 与SOLIDWORKS CAD链接以获得高效的设计体验
  • 快速轻松地完成PCB设计,以继续您的产品设计工作流程

费用:联系以获取报价

5. DipTrace

@DipTrace

DipTrace是面向电子工程师的PCB设计软件工具,具有直观的界面和广泛的功能。对于PCB布局,DipTrace为电路板设计提供智能手动布线和基于形状的自动布线器。电子工程师更喜欢DipTrace的单一环境,它具有直接的电路板到电路板转换,原理图更新和后注释功能。

主要特点:

  • 实时DRC
  • 差动部分
  • 3D预览
  • STEP导出
  • 放置功能允许通过简单的拖放手动放置组件或根据自定义设置自动放置组件
  • 网,组件和单个焊盘的扇出功能

成本:

  • DipTrace Full:1,195美元–引脚数量不受限制,信号层不受限制
  • DipTrace Extended:695美元– 2,000个引脚,6个信号层
  • DipTrace标准版:$ 395 – 1,000针,4信号层
  • DipTrace Lite:145美元– 500针,2信号层
  • DipTrace入门:75美元– 300引脚,2信号层

6. PCBWeb

@PCBWeb

功能齐全的电子设计工具PCBWeb支持原理图和PCB布局。对于希望简化硬件设计的电子工程师来说,PCBWeb是设计和制造电子硬件的理想工具。

主要特点:

  • 使用PCBWeb的快速,易于使用的书写工具设计多页原理图
  • 路由多层公猪,支持铜倒和DRC检查
  • 具有物料清单管理器的集成Digi-Key零件目录

费用:免费

7. BSch3V

BSch3V是Suigyodo Online上流行的PCB设计设计软件工具,适用于需要免费解决方案的电子工程师。原理图捕获程序BSch3V用于Windows Vista / 7/8/10,并具有简化操作的基本功能。

主要特点:

  • 基本原理图捕获
  • 组件库编辑器
  • 零件清单生成器
  • 网表生成器
  • 自动编号软件
  • CE3Search搜索实用程序,用于CE3文件
  • 源代码和组件库
  • Suigyodo还提供免费的PCB编辑器软件Minimal Board Editor。

费用:免费

8. XCircuit

电气工程师蒂姆·爱德华兹(Tim Edwards)编写和维护XCircuit,这是一个用于演示的原理图捕获程序和一个电子设计自动化(EDA)工具。当电子工程师需要绘制可发布质量的电路原理图和相关图形并通过原理图捕获生成电路网列表时,它们会将XCircuit纳入其PCB设计软件工具箱中。

主要特点:

  • 提供在线教程
  • 输出适合发布
  • 将电路视为固有的分层结构,并编写分层的PostScript输出和分层的SPICE网表
  • 将电路组件保存在完全可编辑的库中
  • 保持样式的灵活性,而不会影响原理图捕获的功能
  • 对于需要重复使用一组标准图形对象(包括PCB布局)的任务特别有用

费用:免费

9. gerbv

@sourceforge

gerbv在sourceforge上可用,它是仅用于RS-274X的开源Gerber文件查看器。电子工程师可以使用gerbv相互加载多个文件。

主要特点:

  • 在显示的图像上进行测量
  • 查看Excellon钻取文件
  • 查看放置文件
  • 在将文件发送到董事会之前快速确定冲突

费用:免费

10. KiCad EDA

@kicad_pcb

KiCad EDA是一个跨平台和开源电子设计自动化套件,包括原理图捕获,PCB布局和供电子工程师使用的3D查看器。使用KiCad EDA可以无限制地创建设计,进行专业的PCB布局并在交互式画布中检查设计。

主要特点:

  • 多达32个铜层
  • 更快地布置木板
  • 在KiCad推动前进的轨迹的同时绘制轨迹或在障碍物周围重新布置轨迹
  • 推和推路由器确保您的DRC约束得到遵守
  • 足迹编辑器(GAL)

费用:免费

11. DesignSpark PCB

@DesignSparkRS

DesignSpark通过免费的DesignSpark PCB,DesignSpark Mechanical和DesignSpark Electrical软件面向工程和制造商社区。当将创意从概念转化为创造力时,电子工程师会选择DesignSpark PCB。

主要特点:

  • 无缝集成到现有设计工作流程中
  • 原理图尺寸无限制
  • 使用PCB设计所需的多层
  • PCB的更大尺寸为1m x 1m
  • 在库编辑器中创建自己的零件模型或访问现成的嵌入式库
  • 准备不受限制的Gerber和ODB ++文件来订购PCB或让DesignSpark的PCB报价服务为您构建

费用:免费

12. 鹰板

@autodesk

通过提供3D设计,工程以及娱乐软件和服务,Autodesk借助Eagle PCB使电子工程师的工作更加轻松。这款功能强大且易于使用的PCB设计软件工具使工程师可以梦想成真。

主要特点:

  • 易于使用的原理图编辑器,将您的想法变为现实
  • 直观的PCB布局工具使设计栩栩如生
  • 可访问的库内容使电子工程师可以跳过忙碌的工作,并通过即用型零件库发挥创造力
  • 布线引擎使现代PCB布线工具可以加快复杂布局的速度
  • 模块化设计模块,用于快速重用原理图和PCB之间同步的子电路
  • 在几秒钟内逃脱球栅阵列

费用:免费试用

  • EAGLE标准订阅
  • $ 15 /月
  • $ 100 /年
  • EAGLE高级订阅
  • $ 65 /月
  • $ 500 /年

13. CircuitMaker

@CircuitMaker

CircuitMaker是由Altium提供支持的免费PCB设计工具,它还包括一群有创造力的人们,他们共同努力发明电路和电子产品。希望创造更好的未来产品的电子工程师经常使用CircuitMaker将他们的想法转化为产品。

主要特点:

  • 设计高质量的原理图和PCB,对层数或电路板面积没有人为限制
  • 依靠社区来查找参考设计,并对其他项目进行推广和评价
  • 建立团队进行协同设计

费用:免费

14. Pad2Pad

@ pad2padpcb

Pad2Pad是一家带有免费设计软件的印刷电路板制造商。电子工程师使用Pad2Pad通过以下组件创建产品,这些组件包括穿透保持组件,网表导入,任何电路板形状和自动布线。

主要特点:

  • 界面友好,直观
  • 自动错误检查
  • 地平面
  • BOM与Digi-Key集成
  • 对齐模式
  • 迹线简化器
  • 杂物

费用:免费

15. OrCAD

@EMA_EDA

OrCAD是超过40,000名工程师的首选PCB设计软件工具。电子工程师之所以选择OrCAD,是因为它可靠并且可以随着业务增长进行扩展。他们还喜欢OrCAD,因为它提供了从初始示意图到最终图形的完整环境。

主要特点:

  • 应对不断发展的设计挑战,并为将来的挑战提供可扩展性
  • 完全集成的仿真和分析技术可确保首次通过,而无需翻译
  • 直观的界面使OrCAD易于学习和使用
  • 屡获殊荣的OrCAD技术提供强大而有效的功能深度

费用:免费试用;联系报价

16. ZenitPCB

ZenitPCB是用于电子项目的免费PCB布局软件工具。ZenitPCB是一个灵活且易于使用的程序,因为它直观,可帮助电子工程师在短时间内创建项目。

主要特点:

  • 专为个人或半专业用途而设计
  • 限于800针
  • 由PCB设计师开发
  • 快速直观地创建PCB

费用:免费

17. CircuitStudio

@CircuitStudioTM

CircuitStudio是面向现代电子工程师的专业PCB设计工具。使用CircuitStudio通过交互式路由快速设计高级PCB布局,与机械设计团队合作以及模拟和运送高级电子产品。

主要特点:

  • 智能Situs自动路由技术
  • 本机3D PCB编辑和STEP MCAD支持
  • 集成模拟和数字仿真
  • 智能原理图捕获和PCB布局
  • 易于使用的界面和可定制的工作流程
  • 与Altium Designer和EAGLE完全兼容设计历史记录

费用: 30天免费试用;联系报价

18. PCB123

@SunstoneCircuit

Sunstone Circuits一直提供高质量,准时的PCB原型已有40多年的历史。他们还提供PCB123,这是专业质量的PDB设计软件,在Sunstone订购过程中可免费为电子工程师免费提供。

主要特点:

  • 改进的多边形功能,用于合并,裁剪和优化更复杂的设计
  • 每次订购PCB123即可免费获得Gerber文件
  • 增强的用户控件,可实现更快的渲染,更顺畅的拖放,更多的缩放控件以及统一的控制面板
  • 零件定义中有槽口和切口

费用:免费

19. CUSPICE

ngspice提供的CUSPICE可在CUDA平台上使用,并支持临终关怀设备,例如BSIM4v7,电容器,自感和互感器,电流源,电阻和电压源。电子工程师使用CUSPICE可以将模型评估,电路和右侧创建步骤最多加快三倍。

主要特点:

  • CUDA平台的临终关怀
  • 修改以利用CUDA平台提供的并行性
  • 需要具有Fermi或更新架构的NVIDIA视频卡以及可运行的CUDA环境

费用:免费

20. FreePCB

FreePCB是Microsoft Windows的免费开放源代码PCB编辑器,易于学习和使用,但使电子工程师能够 *** 出专业品质的作品。如有必要,工程师可以将基于Web的FreeRout基于Web的自动布线器与FreePCB一起使用,因为它不包含自动布线器。

主要特点:

  • 1-16铜层
  • 电路板尺寸更大为60英寸x 60英寸
  • 大多数功能使用英文或公制单位
  • 铜填充区
  • 足迹向导和足迹编辑器,用于创建和修改足迹

费用:免费

21. Mentor Graphics Xpedition

@MentorPCB

作为电子设计自动化的领导者,Mentor Graphics PCB提供Xpedition,这是面向电子工程师的PCB设计软件工具。Xpedition被称为“业界更具创新性的PCB设计流程”,包括独特的专利技术,可将设计周期至少减少50%,同时提高整体质量和资源效率。

主要特点:

  • 多板系统设计
  • PCB虚拟样机可以更快地提供更高质量的产品
  • 高度复杂的PCB的协同布置和布线
  • 在整个PCB设计流程中捕获,验证和传达设计意图
  • PCB数据管理以及用于WIP设计和库管理的单一集成解决方案
  • 首次获得正确的设计,并满足PCB最苛刻的制造工艺规则集

费用:联系以获取报价

22. ExpressPCB

@expresspcb_com

ExpressPCB是易于学习的PCB设计软件工具。该免费工具适用于初学者和专业电子工程师,他们在完成设计时会从ExpressPCB社区库中受益。

主要特点:

  • 对于XP,Vista和Windows 7 / 8.1 / 10
  • 功能齐全,可以安装
  • 标准化的Windows用户界面
  • 您可以选择是否先使用ExpressSCH程序绘制原理图
  • 设计两层或四层板
  • 拖放功能
  • 即时报价
  • xCheck在制造电路板之前分析PCB设计以识别潜在问题

费用:免费

23. Easy-PC PCB

Easy-PC PCB是之一系统公司的产品,是电子工程师可以使用的现成PCB设计软件。团队和个人选择Easy-PC PCB是因为它是一种经济高效且可扩展的专业设计工具。

主要特点:

  • 易于使用
  • 专门的有人支援
  • 图书馆管理工具
  • 库创建向导
  • 3D预览
  • 自动项目版本控制
  • 创建没有原理图的PCB设计
  • 设计重用
  • 铜基浇铸
  • 完全集成的自动路由器

成本:

  • Easy-PC集成原理图捕获和PCB布局
  • 无限引脚许可:497英镑
  • 2000 Pins许可证:£397
  • 1000 Pins许可:£297

24. TINA

@tinadesignsuite

TINA(交互式 *** 分析工具包)设计套件是功能强大的电路仿真和PCB设计软件包,可为电子工程师离线和在线提供。TINA来自DesignSoft,功能强大但价格适中,可用于分析,设计和实时测试模拟,数字,HDL,MCU和混合电子电路及其PCB布局。

主要特点:

  • 易于使用
  • 高性能工具
  • 选择TINACloud无需安装即可在PC,Mac,瘦客户机,平板电脑,智能手机,智能电视和电子书阅读器上在线编辑和运行电路仿真设计
  • 完全集成的布局模块包括电子工程师进行高级PCB设计所需的所有功能,包括具有分开的电源平面层的多层PCB,强大的自动放置和自动布线,翻录和重新布线,手动和跟随走线放置,PCB的3D视图从任何角度进行设计等等

成本:

  • TINA 11.0设计套件基本版,单用户:129美元,捆绑了免费的TINACloud Basic注册一年
  • TINA 11.0设计套件基本增强版,单用户:299美元,捆绑了免费的TINACloud Basic注册一年
  • TINA 11.0设计套件经典版,单用户:600美元,捆绑了免费的TINACloud Basic注册一年
  • TINA 11.0 Design Suite工业版,单用户:1200美元,捆绑了免费的TINACloud Industrial注册一年

25. Fritzing

@FritzingOrg

Fritzing是一种开放源代码的硬件计划,它是一个免费的软件工具,可以支持设计,艺术家,业余爱好者和工程师与交互式电子产品进行创造性的合作。Fritzing还包括一个社区网站和用于处理的服务,而Arduino则建立了一个创新的社区,用于记录原型,彼此共享,教授电子产品以及布置和制造专业PCB。

主要特点:

  • 受到Fritzing社区内项目的启发
  • 通过专业工程师的初学者的理想选择
  • 使用Fritzing Fab将您的PCB草图变成专业的PCB

费用:免费

26. EasyEDA

@easyeda

EasyEDA是面向电子工程师的基于Web的EDA,原理图捕获,香料电路仿真和PCB布局工具。EasyEDA的开发人员着手创建一个PCB设计软件工具,该工具可提供全面的数据和协作工具,以帮助工程师和设计人员更轻松,更快速地从构思转变为产品。

主要特点:

  • 在线完成电路仿真,PCB设计和电子电路设计
  • 通过要求零安装和跨平台环境中的电子工程师支持,支持Mac,Linux,Windows,Android和所有其他平台
  • 强大的PCB布局和仿真功能,带有大量原理图元件,PCB封装和封装,香料仿真等库
  • 从Eagle,Altium,KiCad和LTspice导入设计
  • 即使有多层和数千个焊盘,也可以快速操作并快速布局PCB设计

费用:免费

27. 变形杆菌

Proteus来自Labcenter Electronics,结合了强大的功能和易于使用的功能,可帮助电子工程师快速,轻松地设计,测试和布置专业PCB。Proteus直观,并包含世界一流的基于形状的自动布线器,使其成为现代工程师的完整软件设计工具。

主要特点:

  • 原理图上的将近800种微控制器可供仿真
  • 专业的PCB布局套件
  • 将原理图捕获和ARES PCB布局程序结合在一起,成为用于专业PCB设计的功能强大的集成工具套件
  • 完整的功能,但具有简单,干净的用户界面以及与原理图设计的紧密集成
  • 设计能力随产品范围而定,这使电子工程师可以选择适合您的Proteus产品

成本:

  • Proteus PCB设计等级1,网表中的500个引脚:248美元
  • Proteus PCB设计级别1,网表中的1000个引脚:487美元
  • Proteus PCB设计级别1,网表中的2000个引脚:652美元
  • Proteus PCB设计等级2+,网表中的1000个引脚:982美元
  • Proteus PCB设计等级2+,网表中的2000个引脚:1642美元
  • Proteus PCB设计等级2+,网表中的无限引脚:2022美元

28. 升

频器@upverter

Upverter是基于云的PCB设计工具的领导者,他们将其成功归功于为工程师提供世界一流的技术,知识和支持,从而为他们赋权。借助协作工具的强大功能,电子工程师可以找到更快的设计流程,从而节省时间并减少电路板错误。

主要特点:

  • Upverter Parts Concierge使您无需创建和验证原理图符号和封装,而使您可以专注于设计
  • 按需零件验证消除了符号和封装错误的风险
  • 集中式图书馆管理
  • 组件库不断增长,其中包含来自德州仪器(TI),Broadcom,Atmel,赛普拉斯半导体以及其他众多产品的经过验证的零件

费用:免费试用

  • 入门:免费
  • 专业人士:每年每位使用者每月$ 100美元
  • 企业:联系以获取报价

29. 电路向导

提供向导版,标准版和专业版的PCB向导设计工具可将电路设计,PCB设计,仿真和CAD / CAM制造集成在一个软件包中。专业版集成了整个设计过程,为电子工程师提供了从头到尾 *** 项目所需的工具。

主要特点:

  • 包括在施工前对PCB进行屏幕测试
  • 组件库中有500-1500 +个模型
  • ANSI和DIN符号
  • 车外组件
  • 交互式PCB布局模拟
  • 面包板模拟
  • 屏幕动画
  • 自动PCB布线

费用:联系以获取报价

30. TinyCAD

@sourceforge

TinyCAD在Sourceforge上可用,是一个用于绘制电路图或原理图的开源程序。TinyCAD是希望获得支持标准和自定义符号库并支持多种网表格式的PCB布局程序的解决方案的电子工程师的首选PCB设计软件工具。

主要特点:

  • 常用于绘制单线图,方框图和外观图
  • 平面或分层原理图条目
  • 包括许多流行的与PCB布局兼容的网表格式
  • 方便的在图形中嵌入图形图像的支持

费用:免费

31. AutoTRAX

AutoTRAX DEX PCB是面向电子工程师的集成PCB设计软件和EDA。使用包含分层项目管理器的PCB设计软件工具,可以快速,轻松地从设计过渡到生产。

主要特点:

  • 执行自上而下和自下而上的设计,并重用设计组件和子系统
  • 原理图捕获和PCB布局
  • 统一的电子设计软件,具有无与伦比的能力来设计和构建当前和未来的电子产品
  • 确保您的设计保持正确而不会悬空电线或违反PCB设计规则
  • 无需离开AutoTRAX程序,即可使用组装好的PCB快速进行设计到生产
  • 使用自动布线或自动布线和手动布线的组合来完成所有电气布线

费用: 49美元

32. NI Multisim

@NIglobal

NI Multisim来自National Instruments,是功能强大的电路设计软件,它是一种先进的,行业标准的,一流的SPICE仿真环境,被全球电子工程师使用。Multisim也适合教育者和学生。

主要特点:

  • 分析模拟,数字和电力电子
  • 全新的参数分析
  • 与新的嵌入式目标集成
  • 带有用户可定义模板的简化设计
  • 来自领先制造商的6,000多种新组件
  • 与NI Ultiboard集成,可实现快速布局和原型设计流程

成本:

  • 适用于Windows的Multisim基本版:1,617美元
  • Windows版Multisim完整版:2,826美元
  • Windows版Multisim Power Pro Edition:4,186美元

33.

祖肯CR-8000 @ZukenAmericas

Zuken提供用于PCB设计,设计从原理图到线束和面板布局的电气布线以及e-PLM的软件解决方案。当电子工程师需要具有以产品为中心的3D PCB设计平台的高级PCB设计软件时,电子工程师会选择Zuken CR-8000。

主要特点:

  • 多站点ECAD库和数据
  • 2D / 3D多板PCB设计
  • 通过设计探索来弥合营销需求和详细设计之间的差距
  • 3D ECAD / MCAD融合
  • 芯片封装板协同设计
  • FPGA引脚优化

费用:免费试用;联系报价

34. PCB创建者

@bayareacircuits

Bay Area Circuits是一家PCB制造商,专门为企业,设计师,制造商和业余爱好者提供快速转弯原型。他们的PCB Creator是免费的PCB布局和原理图捕获软件,对于希望使用功能强大的设计工具而又不花费很多钱的电子工程师来说,这是完美的解决方案。

主要特点:

  • PCB设计软件,用于创建具有集成定价和订购选项的2-4层定制PCB
  • 简单易学
  • 易于使用的手动和自动路由工具
  • 组件和图案编辑器,用于 *** 新零件和封装
  • 使用其他EDA工具导入和导出自定义PCB设计和库
  • 使用原理图捕获
  • 预览3D设计
  • 由DipTrace平台提供支持

费用:免费,可付费升级到DipTrace

35. Pulsonix

@PulsonixPCB

Pulsonix PCB是一家全球性的EDA公司,专门从事原理图捕获和PCB设计软件。电子工程师使用Pulsonix的先进但价格合理的PCB设计软件工具来改善其电子设计过程。

主要特点:

  • QSchematic捕获包括Pulsonix Schematic Editor中功能丰富的工具集
  • 具有智能功能的复杂,完全集成的PCB设计,可帮助进行复杂的日常PCB设计
  • 经过精心设计,可确保以最少的工程师投入时间实现更高的生产率
  • 规则创建,组件放置,布线模式和后处理功能可大大减少设计时间

费用:免费试用;联系报价

36. PADS PCB设计软件

@MentorPCB

来自Mentor Graphics的PADS PCB设计软件是面向电子工程师的功能强大的PCB工具,可轻松设计印刷电路板。PADS允许强大的规则层次结构,强大的交互式路由以及高级功能,例如物理设计重用。

主要特点:

  • 内置DFF
  • 自动路由
  • 高速交互式路由
  • 3D可视化和放置
  • 简单,有效的交互式路由
  • 轻松创建拆分平面和铜质区域
  • 加快大多数复杂设计的布局的高级功能

费用:可免费试用PADS Standard Plus;联系报价

37. Allegro PCB设计师

@Cadence

Cadence是全球领先的EDA和semiEDA公司,致力于电子设计创新,并在创建IC和电子产品方面发挥重要作用。当电子工程师需要更可预测,更短的设计周期时,他们会选择Cadence的Allegro PCB Designer。

主要特点:

  • 全面的设计内层间检查技术,可更大程度地减少设计-检查-重新设计的迭代
  • 动态并发团队设计功能可缩短产品创建时间
  • 利用材料镶嵌制造技术来降低材料成本
  • 嵌入式Sigrity技术可确保关键信号满足性能标准和电源完整性,从而使PCB设计人员能够有效解决功率传输和IR压降问题,从而消除了PI专家的耗时迭代

费用: 联系以获取报价

38. EdWinXP

@VisionicsIndia

EDWinXP是EDA软件包或电子产品的自动化设计,是Visionics的PCB设计和基于SPICE的软件工具。EDWinXP是面向电子工程师的集成PCB设计软件工具,涵盖了设计过程的每个阶段,从原理图捕获到PCB制造和测试。

主要特点:

  • 将完整的设计信息存储在集成项目中,并且可以通过原理图设计编辑器,PCB布局编辑器,制造输出管理器和模拟器进行访问
  • 分析并验证以示意图形式捕获的电路的功能和行为
  • 所有设计变更的全自动正面和背面注释
  • 包括扩展的零件库,可以通过库编辑器进行更新,定制和增强

成本:

  • EdWinXP 2.10 –原理图,商业用:$ 450
  • EdWinXP –标准版,商业版:$ 800
  • EdWinXP –豪华版,商业版:$ 1,200
  • EdWinXP –专业,商用:$ 3,200
  • EdWinXP 2.10 –原理图,小型企业许可证:$ 225
  • EdWinXP –标准,小型企业许可证:$ 800
  • EdWinXP – Deluxe,小型企业许可证:$ 1,200
  • EdWinXP –专业,小型企业许可证:$ 1,600
  • EdWinXP 2.10 –原理图,非商业用:$ 45
  • EdWinXP 2.10 –非商业版标准版:$ 160
  • EdWinXP 2.10 –非商业版豪华版:$ 240
  • EdWinXP –专业,非商业用途:$ 320

39. CADSTAR

@ZukenAmericas

Zuken为电子工程师提供的软件解决方案包括CADSTAR,台式PCB设计软件。借助其统一的应用程序套件,这种完整的设计环境使工程师从最初的构想到产品创建。

主要特点:

  • 将高性能PCB布局带到工程师的桌面
  • 提供一种快速,有效的方式来捕获电子设计意图,规则和约束,以实现向PCB布局的平滑,无错误的过渡
  • PCB分析与验证
  • 高效的图书馆管理

费用: CADSTAR Express的免费试用版;联系以获取报价和其他CADSTAR产品

40. 奥斯蒙德PCB

O *** ond PCB是面向使用Mac的电子工程师的PCB设计软件工具。该PCB设计工具为用户提供了强大的功能和灵活性,并消除了人为的限制和限制,从而可以设计任何尺寸和形状以及所需层数的电路板。

主要特点:

  • 10纳米的空间分辨率可确保精度
  • 将零件以任何方向放置在板上的任何位置
  • 沿任意路径和任意角度运行任何轨迹
  • 即使在同一设计上,也支持公制和英制单位
  • 集成的零件编辑器,可轻松定义新零件类型或修改现有零件类型

成本:

  • 少于700个引脚的小型设计免费
  • O *** ondCocoa 1.1.1:$ 79

41. 万神殿PCB布局软件

@ Intercept2

Intercept Technology,Inc.是与技术无关的PCB,混合以及RF设计和布局软件的领先供应商。他们的Pantheon PCB Layout Software是电子工程师理想的PCB设计软件工具,因为它提供了易于使用的界面以及基本到高级的设计选项,从而提高了生产率和效率。

主要特点:

  • 具有专用RF和混合设计流程的高级PCB布局软件
  • 适用于各种规模的设计团队
  • 可扩展,价格合理的PCB布局解决方案
  • 几何生成
  • 组件放置和布线
  • 灵活的区域填充创建和操作
  • 自动测试点生成
  • 分割动力飞机
  • 艺术品创作/验证

费用:联系以获取报价

42. CometCAD

CometCAD是一种原理图捕获和PCB布局编辑器工具,专门为使用Windows的电子工程师设计。PCB布局编辑器使用户能够创建矩形多PCB面板并利用多边形的PCB边框。

主要特点:

  • 1/2铜层
  • 一微米的内部分辨率
  • 铜飞机和设计规则检查
  • 调整拐角点之间的走线宽度
  • 可以研磨PCB间隙/切口和圆孔

成本:

  • 1级,最多2张原理图和250个封装引脚:免费
  • 2级,最多20张原理图和500个封装引脚:67美元
  • 第3级,最多1,000张原理图图纸和1,000封装引脚:134美元

43. VUTRAX

VUTRAAX是来自英国的主要专业电子原理图和PCB设计软件包。Windows上支持VUTRAX,并且不支持的Linux版本可用于大多数基于x86的发行版。电子工程师之所以选择VUTRAX,是因为它具有可扩展性,集成了原理图捕获功能并始终提供真正的所见即所得操作。

主要特点:

  • 针对现代PCB技术的设计,包括表面贴装,胶点,盲孔和埋孔,微孔,两侧组件,拾取和放置等
  • 具有完整性的双向修改
  • 从正交,翻录和重试以及基于形状的样式中选择自动路由器
  • 在线和离线设计验证
  • 包含大量的原理图符号和组件封装库PCB的3D视图

成本:

  • VUTRAX扩展定制:4850英镑
  • VUTRAX标准定制:2048英镑
  • VUTRAX局捆绑包:2500英镑

44. 微带阻抗计算器

@EE_Web

EEWeb是硬件设计师的首要电气工程社区,提供Microstrip Impedance。这个方便的PCB设计工具不需要安装或下载,因为它是基于Web的PCB微带阻抗计算器。该PCB设计工具简单实用,是电子工程师应收藏的下一个设计工具。

主要特点:

  • 通过了解微带传输线来正确构建满足您需求的结构
  • 使用建模近似设计微带走线
  • 基于Wheeler方程的Forumla

费用: 免费

45. CIRCAD

CIRCAD是功能强大但易于使用的PCB设计软件包,其中包括现代电子工程师所需的所有电路设计和制造工具。CIRCAD包括原理图捕获,网表生成,PCB布局,覆铜,设计规则检查,几种制造输出格式和标准组件库。

主要特点:

  • 使用所有原理图图纸共有的一组信号名称轻松完成更复杂的电路
  • 多页原理图产生多个网表,并由PCB编辑器合并
  • 手动路由或自动路由
  • 淹没限制区域,并针对每种不同的元素类型具有单独的清除参数
  • DRC功能使工程师能够验证电路互连的正确性,并确保各个元件之间有足够的间隙

成本:

  • CIRCAD V6:995美元
  • CIRCAD V5:995美元
  • CIRCAD V4:695美元

46. Eurocircuits在线PCB数据验证工具

@eC_PCB

Eurocircuits是在线PCB原型和小批量生产专家,致力于通过快速简便的PCB采购帮助缩短设计师和工程师的上市时间。他们的在线PCB数据验证工具使电子工程师可以在下订单之前验证PCB数据,从而为他们提供了更多的选择。

主要特点:

  • PCB Visualizer –用于数据输入和可制造性分析的自动工具
  • PCB Checker –显示在布局上检测到的设计规则问题
  • PCB解算器–在线维修工具可帮助用户在下订单前快速简单地修复常见的生产数据问题

费用:免费

168个开关电源专业术语,能懂一半工程师不多

开关电源术语

这些定义应被认为是有关于开关电源的 ,并不一定等同的适用于其它技术领域.

考虑到在其它出版物(标准,词典,制造商数据手册 ,技术笔记,手册)已经同时给出了定义,下列的术语仅代表作者本人的观点,并可能与 使用本文档的特定用户有轻微的差别.

绝对额定更大值,元件:

如果超过将导致永久性的器件损坏的规定值. 这不是连续额定值,并不表示适当的操作.

Ae, 有效区域:

对于给定几何尺寸的磁芯,是指具有同样磁性的同种原料的圆柱形磁芯的横截面积.

周围温度Ambient Temperature (1):

目标温度和 *** PS周围静止空气的温度,在距离电源最小为4" (100mm)处测得.

周围温度Ambient Temperature (2):

根据MIL-STD-810E: 除了必要的支撑点,测试单元应完全出于空气的包围中.周围空气的温度梯度应为测量温度的2℃之内且不超过1℃每米.

安培匝数Ampere Turns (NI):

流过线圈的电流与线圈匝数的乘积.

ATP:

验收测试步骤(Acceptance Test Procedure).

BA *** :

英国无线电通讯认证部(The British Approvals Board for Telecommunications).对英国市场上的无线电通讯设备进行认证的肚里组织.BA *** 对测试实验室进行认证和授权.

行为模型(Behavioral Model):

用数学关系表达的电路模块的模型.是更高的仿真层次.

BJT:

双极结晶体管(Bipolar Junction Transistor.).

BOM:

物料清单(Bill of Material).

升压式(Boost):

一种基本的开关电源结构,在开关导通时能量存储到电感中,在开关断开时能量转移到输出端.它把不规则的输入电压转换成比输入电压更高的规则的输出电压.

面包板(Breadboard):

电路的首次物理实现.它可能是不完整的,甚至与最终的产品的外观完全不一致.

BS:

英国标准(British Standard).

BSI:

英国标准协会(British Standards Institution (United Kingdom)). 一个制定产品兼容性标准的协会.

降压式(Buck):

一种基本的开关电源结构,串联的开关将输入电压变成脉冲,并把脉冲加到一个LC虑波器上.降压式调整器会产生比输入电压低的电压输出.

升降压式(Buck-Boost):

参见返驰式.

烧机(Burn-In):

一种将开关电源运行一段时间的步骤,目的是减少其短时间内损坏率,并通过老化使开关电源稳定.在此期间可能包括温度循环和功率循环.

C1, 磁芯常数(Core Constant):

同一个截面面积划分的各部分电路的磁路长度的总和.

CENELEC:

欧洲电气技术标准委员会(Comite pour Europeen de Normalisation Electronic (European Committee for Electrotechnical Standardization)). 包括17个欧洲国家组成的制定欧共体标准的组织.

CE标志:

表明完全兼容于所有的欧盟标准.

CFM:

立方英尺每分钟.

CISPR:

国际射电干扰专业委员会(Committee International Special des Perturbations Radioelectriques).

公共(Common):

超过两个电路以上的共用的通路.也称为反射.不能用于定义接地端.

恒电流(Constant Current):

一种输出电流根据输出负载变化而调整的工作模式.

常电压(Constant Voltage):

一种输出电压根据输出负载变化而调整的工作模式.

对流(Convection):

一种传热方式,发生在固体表面于周围静止空气的交界处.

自然对流(Convection, Natural):

当热的表面被冷的自然流动的空气包围时.

强制对流(Convection, Forced):

由风扇或其它机械方式产生的气流顺着热表面流动或流过热表面周围时.

变换器(直流/直流)Converter (DC/DC):

一种把直流输入电压转换为不同的直流输出电压的开关电源.

交叉调整率(Cross Regulation):

在多输出电源中指由于一个输出负载的改变而引起的另外一个输出电压改变的百分比.

短路器(Crowbar):

一种过压保护电路,放置在检测到过压的两点之间的接近短路的电路.

CSA:

加拿大标准联合会(Canadian Standards Association).为加拿大市场制定标准和执行 安全测试的独立组织.

CSA 22.2 No. 950:

参见UL1950.

Cuk:

一种来自升降压式的开关电源结构,它可以产生非常低的输出纹波.

居里温度(Curie Temperature):

指一个转变温度,铁磁体高于磁温度时变为反磁性体.

电流模式控制(Current Mode Control):

一种利用双环电路调整PWM运行的控制 *** .

更大额定输出电流(Current, Maximum Rated Output):

在规定的条件下开关电源设计更大输出电流,如:周围温度、进口空气温度、海拨、气流噪声、环境其它元件的热辐射、输出电压、输出功率.

DEMKO:

丹麦电子委员会(Dansk Electroteknisk Komite. (Denmark)).

降级(Derating):

为了促进稳定性规定的操作参数的特定降低.通常对于开关电源来说,是指超过环境温度或输入电压低于额定值等时更大输出功率的降低、

DF:

介质损耗角(Dissipation Factor).

DHHS:

健康与公共事业部(美国)(Department of Health and Human Services (USA)).

漂移Drift:

在其它工作参数如输入电压、负载和周围环境温度保持恒定时,开关电源在规定时间段内随着温度上升,输出电压的改变.

ECO:

工程学改造订单Engineering Change Order.

效率Efficiency:

用百分比表示的总输出功率对有源输入功率的比率.通常在满负载、额定输入电压和25℃的环境温度时定义.

电磁兼容性EMC, Electromagnetic Compatibility:

设备在电磁环境下良好工作的能力,同时不应对环境或周围其它设备引入不可忍受的干扰.

EMI:

电磁干扰(Electromagnetic Interference).开关电源传导或辐射的有害能量.

EN:

欧洲标准(Euro Norme).

ESL:

等效串联电感(Equivalent Series Inductance).与理想电容串联的电感值,它们一起模拟真正的电容的特性.

ESR:

等效串联电阻(Equivalent Series Resistance). 与理想电容串联的电阻值,它们一起模拟真正的电容的特性.

EUT:

在测设备(Equipment Under Test).

法拉第屏蔽Faraday Shield:

变压器输入和输出的静电屏蔽.这是为了减少主级对次级的耦合电容,该电容可以导致输出端的共模噪声.

FCC:

(美国)通信委员会.Federal Communications Commission (USA).

前馈Feed Forward:

一种控制技术,用于开关电源通过直接检测输入电压来调整电路压差.

FET:

场效应晶体管Field Effect Transistor.

磁通密度Flux Density, Magnetic:

通过垂直于磁路的单位面积的磁场.磁通密度取决于磁场强度和介质的导磁率.

焊锡膏Flux, Soldering:

对金属表面焊锡时加入的一种物质,加热后,它可以阻止氧化并有助于锡的流动.

返驰式变换器Flyback Converter:

一种隔离的升降压式开关电源结构,在开关周期的之一个阶段,能量被存储到电感中,在第二个阶段,能量被转移到同一个电感的不同的绕组中及负载中.

返送电流限制Foldback Current Limiting:

一种过流保护电路,在过载增加时输出电流减少,减少开关电源元器件的压力.

正向变换器Forward Converter:

一种来自降压变换器的开关电源结构,在开关晶体管导通时,能量被转移到变压器次级绕组及负载中.

傅立叶分析Fourier *** ysis:

利用傅立叶级数计算复杂波形的谐波分量.

傅立叶级数Fourier Series:

一种数学级数,显示了任何一个周期函数都是正弦和余弦函数的组合.

全桥变换器Full Bridge Converter:

一种开关电源变换器,里面的四各晶体管连接成桥结构以驱动变压器主级.

砷化镓GaAs:

砷化镓Gallium Arsenide.

良好接地Ground Benign:

理想的实验室环境.应用于测试和医学设备、实验室仪器等.

固定接地Ground Fixed:

比理想环境稍差.应用于机架固定件,或用于非加热厂房.

移动接地Ground Mobile:

应用于安装在轮式或轨式车辆的设备.

半桥变换器Half Bridge Converter:

一种开关电源结构,与全桥变换器相近,它只用了两个晶体管,其它的两个用电容代替.

H.A.L.T.:

高度加速寿命测试(Highly Accelerated Life Testing).

H.A.S.S.:

高度加速应力采样(Highly Accelerated Stress Sampling).

散热器Heat Sink:

通常是一种金属板,挤压成形的、等用于转移敏感元件的热量.

打嗝模式Hiccup Mode:

一种由故障条件触发的开关电源的工作模式,此模式下开关电源周期性的开和关.

高电位测试Hi-Pot Test:

高电位测试(High Potential Test).确定电路或元件的击穿电压是否超出最小需求的测试.

延续时间Holdover Time:

参见延迟时间(Hold-Up Time).

延迟时间Hold-Up Time:

在去掉输入功率后开关电源输出电压维持在规定范围内的时间.

热插拔Hot Plug-In:

开关电源接入电力线或从电力线断开(输入和输出)而不导致损坏的能力.

IEC:

国际电气技术委员会(The International Electrotechnical Commission).制定电子产品和元器件的标准的组织.不进行任何测试.

IMQ:

意大利安全局(Safety agency, Italy).

启动电流Inrush Current:

在开关电源启动时引起的瞬间的峰值输入电流.

基本绝缘(IEC定义)Insulation, Basic (IEC Definition):

绝缘,此绝缘失效后会导致电击的危险.

双绝缘(IEC定义)Insulation, Double (IEC Definition):

由基本绝缘和辅助绝缘组成的绝缘.

加强绝缘(IEC定义)Insulation, Reinforced (IEC Definition):

提供的对电击保护不低于双绝缘的绝缘.它可能包含多个不能单独作为基本绝缘或辅助绝缘的层次.

辅助绝缘(IEC定义)Insulation, Supplementary (IEC Definition):

附加于基本绝缘的独立绝缘,目的是在万一基本绝缘失效后提供抗电击保护.

逆变器Inverter:

一种输入为直流输出为交流的电源.

ISO:

国际标准组织(International Standards Organization).

隔离电压Isolation Voltage:

可以连续加到开关电源两个部分之间的更大交流或直流电压.

拉普拉斯变换Laplace Transform:

一种数学运算,通过化简特定的差分方程的 *** 求解代数方程.

le, 有效长度Effective Length:

对于给定几何尺寸的磁芯,是指具有与之同样磁场的假设的螺旋管芯的磁路的长度.

寿命(开关电源)Lifetime ( *** PS):

在开关电源保持其电气特性和合理的平均故障间隔时间(MTBF)的时间.

线路调整率Line Regulation:

在输入电压的变化超过规定的范围,且其它参数保持恒定时,百分比表示的输出电压的变化.

LISN:

线路阻抗稳定 *** (Line Impedance Stabilization Network).

负载调整率Load Regulation:

当负载从最小变化到更大,其它参数保持恒定时,百分比表示的输出电压的变化.

MIL-STD:

美国军队标准(US military standards).

MIL-STD-202F:

描述了自然环境和条件下的确定元件阻抗的测试 *** .常用于小元件如电阻.

MIL-STD-202F, Method 103:

描述了湿度测试.85%的相对湿度,无冷凝,85℃环境温度,240小时.

MIL-STD-202F, Method 107:

定义了热冲击.200个循环,-40℃到125℃,15分钟保留时间.

MIL-STD-202F, Method 108:

定义了加速寿命.100小时,60℃环境,更大功率.

MIL-STD-461C:

描述了电子设备电磁辐射和磁化系数特征的设计和文档要求.覆盖了四各方面:传导辐射、传导磁化率、放射辐射和放射磁化率.

MIL-STD-462C:

描述了用于验证MIL-STD-416C规定的EMC兼容性的 *** .

MIL-STD-704D:

定义了在电源系统和电子设备之间的空间飞行器系统的传导电力功率的特性.它保证了空间飞行器设备和地面支持设备之间的兼容性.

MIL-STD-810E:

环境测试 *** 和工程指导.

定义了军用设备的自然环境和感应环境的测试 *** .

MIL-STD-883D, *** 2002.3:

定义了机械冲击.条件A,500G,1毫秒,半正弦波,5次冲击,2个方向,3轴,总共30次冲击.适合于封装的低功率模块.

MIL-STD-883D, *** 2007.2:

定义了机械振动.4个四分钟扫描,4次每轴,总时间为48小时,20到2000Hz对数增加.适合于封装的低功率模块.

MIL-STD-1275A:

描述了军用交通工具中使用的28V直流驱动的电路的瞬太电压特性和稳态范围.

MIL-T-28800E:

湿度,振动.

最小负载Minimum Load:

开关电源要满足所有规定所需要的最小的输出电流.

MOSFET:

金属氧化硅场效应晶体管(Metal Oxide Silicon Field Effect Transistor).

MTBF:

平均故障间隔时间(Mean Time Between Failure).用小时表示的开关电源的故障率,通常在25℃和良好接地环境中用MIL-HDBK-217F计算.

NEC:

国家电气规范(美国)(National Electrical Code (USA)).

NEMCO:

挪威电子技术委员会Norsk Electroteknisk Komite (Norway).

NFC:

国家火灾安全规范(美国)National Fire Safety Code (USA).

NEMKO:

挪威电子材料控制Norges Elektriske Materiell Kontroll (Norway).

共模噪声Noise, Common Mode:

开关电源中相对于地的与输入(输出)线路伴随的噪声分量.

差模噪声Noise, Differential Mode:

在两输入导线或两输入导线之间测得的噪声分量.

离线开关电源Off-Line *** PS:

整流和虑波之前没有变压器,直接离开交流线路工作的开关电源.

输出阻抗Output Impedance:

输出电压变化对输出负载电流变化的比率.

OVP:

过压保护(Over Voltage Protection).开关电源电路的一个特征,在输出端出现不正常的高电压时保护开关电源和负载.

OVE:

澳大利亚安全局Safety agency, Austria.

PARD:

周期性和随机漂移(Periodic and Random Deviation).用于总结在制定频带内测得的纹波和噪声分量的术语,可以用峰峰值或RMS值表述.

PFC:

功率因数角校正(Power Factor Correction).

电源Power Supply:

通常指从交流输入电压得到的直流功率源

可编程电源Power Supply, Programmable:

输出(电压或/和电流)可以通过外部模拟信号(阻抗、电压和电流)或数字信号控制的电源.

原型Prototype:

该词语最初用于生产的之一个产品,它用于在全面的生产开始之前设计阶段的最终检查.

工程原型Prototype, Engineering:

在生产线外手工之作的原型,但是电路、物理结构和PCB都接近于最终的产品.

PWM:

脉冲宽度调制(Pulse Width Modulation).一种开关电源使用的电压调整 *** ,指仅通过改变脉冲序列的宽度控制输出.

推挽式变换器Push-Pull Converter:

一种开关电源结构,通常使用中间抽头的变压器和两个分别处于开和关状态的开关.

热传递辐射Radiation, Heat Transfer:

温度在0K以上的物体所固有的电磁(红外)辐射引起的热传递.

额定输出电流Rated Output Current:

在规定条件下开关电源设计提供的更大的负载电流.

电源恢复时间Recovery Time, Power Supply:

在阻性负载变化后电源输出电压稳定所需要的时间.

冗余Redundancy:

多电源系统中一个或多个电源失效后继续为公共负载提供功率的能力.开关电源应当从与冗于系统设计兼容的设计开始.系统设计者应规定系统的冗于等级(N个电源中的M个失效后系统仍能为负载提供足够的功率.当然,M

调整率Regulation:

开关电源在输入电压和输出负载变化时维持输出电压在规定范围内的能力.

可靠性Reliability:

为标称的时间段及条件时开关电源保持其功能和指标的能力.

输出电压调整分辨率Resolution, Output Voltage Adjustment:

通过调整可以达到的输出电压的最小变化量.

谐振变换器Resonant Converter:

利用谐振腔把能量从输入传输到输出的开关电源结构.

回路Return:

公共端的名称.

电压反接保护Reverse Voltage Protection:

输入或输出端电压反结时提供保护的开关电源特征.

RFI:

射频干扰(Radio Frequency Interference).

输出纹波和噪声Ripple and Noise, Output:

在规定的带宽内,开关电源输出交流电压的幅度,通常用毫伏级的峰峰值或RMS值表示.

反射纹波电流Ripple Current, Reflected:

开关操作引起的在开关电源输入端产生的交流电流,用峰峰值或RMS值表示.

带式变换器Royer Converter:

在低成本低功率设计中使用一种自振荡的推挽变换器.

次级侧Secondary Side:

隔离开关电源的输出侧.

SEMKO:

Svenska Elektriska Kommissionen (Sweeden).

远程传感Sensing, Remote:

一种使用单独的一对引线检测电压的调整开关电源负载输出电压的技术,

SETI:

Electrical Inspectorate Finland (Finland).

SEV:

Schweizerischer Elektrotechnischer Verein (Switzerland).

短路保护Short Circuit Protection:

在短路时限制开关电源的输出电流到一个安全值以保护开关电源不受损坏.

单一故障条件Single Fault Condition (IEC Definition):

处于该条件下即意味着对危害的保护已失效.注意:如果某单一故障条件是不可避免的由另外一个单一故障条件引起的,则两个故障被当作一个单一故障条件.

*** T:

表面安装技术(Surface Mount Technology).

缓冲器Snubber:

通过限制峰值电压或电流,dV/dt,dI/dt减少元件压力而在开关电源中使用的元件或电路包括有源或无源、消耗或再生的.

软启动Soft Start:

开关电源的一种特性,在启动时,逐渐的升高输出电压到它的最终值,以便保护电源和负载.

长期稳定性Stability, Long Term:

用百分比表示的开关电源输出电压的变化,通常只考虑由于时间引起的,而其它因素保持恒定.有时也包括其它因素.

环境介质温度Temperature, Ambient:

围绕在开关电源周围的物体的温度(不必是入口空气的温度).

温度系数Temperature Coefficient:

由温度变化引起的输出电压变化的平均百分数(规定为在规定的温度范围内的每百万分之几每摄氏度).

入口空气温度Temperature, Intake Air:

用于冷却开关电源入口空气的温度.通常入口空气的主要任务是冷却散热器和磁芯.其次是冷却其它元件入集成电路、电阻、电容.

工作环境温度Temperature, Operating Ambient:

开关电源可以合理的电气指标和稳定性工作的温度范围.除非规定如此,否则不要认为开关电源在整个的温度范围内都可以输出满功率,也不是说开关电源在整个工作温度范围内都能保持同样的电气指标.

传输函数Transfer Function:

一个数学表达式,显示了在不同的地点或不同的时间两个实体或事件如何相互作用.

瞬态恢复时间Transient Recovery Time:

在输出负载电流发生阶越变化后,变换器输出返回到规定的范围所需要的时间.

TUV:

Technisher Uberwachungs-Verein (Germany). 一个测试机构,被授权认证产品和VDE标准.

UL:

保险实验室公司(Underwriters Laboratories, Inc.).美国的一家独立的非盈利的测试产品安全性的组织.

UL94:

UL 对塑料材料的易燃性标准,

UL1012:

UL电源标准.

UL 1262:

UL 实验室设备标准.

UL1950:

信息技术设备安全.

UPS:

不间断电源(Uninterruptible Power Supply).在交流输入电压掉电后可以持续供电的电源.

VDE:

德国电气工程师协会(Verband Deutscher Elektrotechniker).一个制定产品安全和噪声辐射标准以及对设备进行相应标准的测试和认证的私人组织.

预热漂移Warm-up Drift:

开关电源从打开到额定线路在满负荷和25℃环境温度时达到热平衡期间输出电压的初始变化.

预热时间Warm-up Time:

开关电源从打开到额定线路在满负荷和25℃环境温度时达到热平衡所需的时间.通常估计为30分钟.

隔离线轴缠绕Winding, Split Bobbin:

一种变压器的缠绕方式,主级和次级绕组通过绝缘隔离带隔离后并行的绕在一个轴上.

X电容X Capacitors:

RFI电容用在确保失效后任何接触机箱的人不会收到伤害的地方.X电容跨接在线路电感的两端.有三种子级别的X电容:X1,X2和X3.最常见的是X2子级别的,用于IEC-64安装目录II.X2电容额定用于小于或等于2.5KV的峰值脉冲电压.

Y电容Y Capacitors:

RFI电容用在确保失效后任何接触机箱的人不会收到伤害的地方.Y电容在电力线和地/公共端之间跨接.有四种子级别的Y电容.Y1,Y2,Y3和Y4.最常见的是Y2子级别,用于基本或辅助的绝缘.Y2电容额定用于额定工作电压低于或等于250Vac且疲劳实验之前的峰值脉冲电压小于或等于5KV.因为安全标准规定了不同应用的对地的更大电流,因此Y电容的电容值必须限制于特定值,这取决于电容应用的设备类型.

零电压切换Zero Voltage Switching:

开关电源中的开关在其电压为零时导通的技术,目的是尽量减少开关瞬间噪声和开关损耗.

来源: *** 整理,如涉及版权问题,请及时联系删除

STM32开发板不 *** 申请中

本篇文章主要针对的人群是不会填写申请链接的小伙伴,因为问的人太多了,不便于一一回复,所以写一篇文章帮助小伙伴们。还有要申请的小伙伴可以私信笔者“开发板”获取官方网址。

笔者所申请的STM 32开发板是中国移动onenet平台的物联网开发板,板子的质量明显的比 *** 上卖的开发板质量高好几个档次。下图为笔者申请下来的开发板。除了开发板之外还有一块电源、1602A-LCD显示屏和一个ST-link下载器。

不多说了,下面分享申请教程。

申请入口

有很多小伙伴私信我说找不到申请界面在哪,在获取笔者发的网址之后,打开主页,如下图。

然后往下拖动界面,直到出现下图所示界面,点击“立即申请”。

申请账号

如果是初次登录onenet官网,点击“立即申请”按钮之后,会弹出登录对话框,因为我们没有账号,这时候便需要申请一个,点击立即注册,注册方式就不再叙述。

进入申请页面

申请完成之后就可以进入申请界面了,进入之后可以看到一个标题为:“麒麟座标准版申领表”的问卷,像这样的选择可以任意选,这个无关紧要,因为笔者接触到的人群当中,下图所示的选项都有涉及。

比如下图中的第三个选择一定要选择最后一个选项,之一个选择更好全选,第五个是自由发挥,这时候一定要认真回答关于你的诉求,下面笔者写一个示例供大家参考。

之前我们公司在做一个智能开关的项目,最开始的联网模块雏形是用8266和面包板上所搭建的,由于各种不确定性,服务器接受到的数据偶尔会有乱码或者接收不到的现象,具体是程序的原因还是外围电路抗干扰能力差,现在都无法得知,鉴于此,想申请官方的onenet开发板,以此来查明原因。妥否,请批示!

最重要的一项:应用链接

关于第六项的地址示例是必须要正确填写的,这是官方防止有人为了申请开发板而申请开发板,如果连应用链接都没有,那一定对这个平台是不了解的。

下面教大家怎么填写应用链接

进入如下界面之后,点击创建产品

面包板电源模块怎么用,面包板电源模块pcb-第1张图片-

接下来的工作只要填上就行,对这个倒是没有什么要求,填完之后点击确定。

创建完成之后可以看到,多了一个界面,点进去我们刚创建的产品。

进去之后点击“创建应用数”下面的“创建应用”按钮

进去之后点击“创建应用”

然后输入应用的名字!点击“创建”

最后一步

复制发布链接,粘贴到申领表里面的第六个选项里面,至此,大功告成。

最后祝小伙伴们申请成功!

科技进社区·智能启未来——银河社区开展青少年编程暑期科普宣传活动

为丰富社区少年儿童的暑期生活,提升青少年的科学文化素养,激发青少年对编程的学习兴趣,8月18日上午,银河社区联合福瑞文化教育培训学校开展“助力AI·智向未来”青少年编程暑期科普宣传活动。


活动开始,孩子们对复杂的人工智能和编程结构充满了浓厚的兴趣,受邀而来的编程专业的蓓蓓老师和孩子们热情互动,通过视频、实操、问答等形式手把手引导孩子们了解人工智能的组成和应用领域范围,展示了编程在生活中的运用,并一一讲解传感器、面包板、电源模块、电阻等功能结构组件,通过二进制入手,带领孩子们在编程的世界遨游。活动极大地激发了孩子们的想象力、创造力、动手能力,通过零件的多样化搭建,一个个图形化的程序模块在电脑屏幕上搭建起来,顺利完成奇妙的科技之旅。

“社区开展的这次编程活动不仅锻炼了孩子们的空间思维能力,还开发了他们动手能力与创造力,让他们感受到了科技的魅力,非常有意义!”家长李女士说道。

此次新颖酷炫的科普活动,以编程为切入口,让更多青少年接触到AI时代的脉搏,向孩子们揭开了人工智能和编程的神秘面纱,不仅让青少年了解和掌握编程科普知识,也激发了青少年对科技知识的探索热情,让孩子在实践中提升动手能力、空间想象力和逻辑思维能力,在他们心中埋下了科技的“种子”。下一步,银河社区将继续在青少年科普学习方面挖掘需要,开展更多具有创造性的活动。


来源:银河社区

标签: 电源模块 面包 怎么 pcb

抱歉,评论功能暂时关闭!