Arduino与Proteus仿真实例MCP23017IO扩展器驱动仿真
Arduino与Proteus仿真实例-MCP23017-I/O扩展器驱动仿真MCP23017-I/O扩展器驱动仿真1、MCP23017介绍MCP23017/MCP23S17 (MCP23X17) 器件系列为 I2C 总线或 SPI 应用提供 16 位通用并行 I/O 扩展。两种设备仅在串行接口上有所不同:
MCP23017——I2C 接口
MCP23S17——SPI 接口
MCP23X17 由多个 8 位配置寄存器组成,用于输入、输出和极性选择。系统主站可以通过写入 I/O 配置位(IODIRA/B) 来启用 I/O 作为输入或输出。每个输入或输出的数据保存在相应的输入或输出寄存器中。输入端口寄存器的极性可以用极性反转寄存器反转。所有寄存器都可以被系统主机读取。
16 位 I/O 端口在功能上由两个 8 位端口(PORTA 和 PORTB)组成。 MCP23X17 可以通过 IOCON.BANK 配置为在 8 位或 16 位模式下工作。有两个中断引脚,INTA 和 INTB,它们可以与它们各自的端 ...
Arduino与Proteus仿真实例8255A可编程IO驱动仿真
Arduino与Proteus仿真实例-8255A可编程IO驱动仿真8255A可编程IO驱动仿真1、8255A介绍8255A 是一种通用可编程 I/O 设备,旨在根据需要在某些条件下将数据从 I/O 传输到中断 I/O。 它几乎可以与任何微处理器一起使用。
它由三个 8 位双向 I/O 端口(24 I/O 线)组成,可根据需要进行配置。
1)8255A 端口
8255A 有 3 个端口,即PORTA、PORTB和PORTC。
PortA 包含一个 8 位输出锁存器/缓冲器和一个 8 位输入缓冲器。
PortB 类似于端口 A。
PortC通过控制字可以分为两部分,即PORT C下层(PC0-PC3)和PORT C上层(PC7-PC4)。
这三个端口又分为两组,即A组包括PORTA和上PORTC。B组包括PORTB和下PORTC。这两组可以编程为三种不同的模式,即第一种模式称为模式 0,第二种模式命名为模式1,第三种模式命名为模式2。
2)操作模式
8255A 具有三种不同的工作模式
模式0 在此模式下,端口 A 和 ...
Arduino与Proteus仿真实例PCF8574接口扩展驱动仿真
Arduino与Proteus仿真实例-PCF8574接口扩展驱动仿真PCF8574接口扩展驱动仿真PCF8574/74A 通过两线双向 I2C 总线(串行时钟 (SCL)、串行数据 (SDA))提供通用远程 I/O 扩展。
PCF8574/74A包括八个准双向端口、100 kHz I2C 总线接口、三个硬件地址输入和中断输出在 2.5 V 和 6 V 之间运行。准双向端口可以独立指定为输入以监控中断状态或键盘,或作为输出以激活 LED 等指示设备。 系统主机可以通过单个寄存器从输入端口读取或写入输出端口。
PCF8574/74A具有2.5 uA(典型值,静态)的低电流消耗非常适合移动应用,并且锁存输出端口可直接驱动 LED。
在前面的实例中,对PCF8574已经做了详细的描述,请参考:
8051单片机Proteus仿真与开发实例-PCF8574扩展接口控制LED仿真
1、仿真电路原理图
2、仿真代码实现本次实例使用开源库:
PCF8574_library
123456789101112131415161718192021222324 ...
Arduino与Proteus仿真实例4x4矩阵键盘驱动仿真
Arduino与Proteus仿真实例-4x4矩阵键盘驱动仿真4x4矩阵键盘驱动仿真键盘是广泛用于各种电子和嵌入式项目的输入设备。 它们用于以数字和字母的形式获取输入,并将其输入系统以进行进一步处理。
矩阵键盘由一组相互连接的按钮组成。 在本次实例中使用 4X4 矩阵键盘,其中四行中的每一行都有 4 个按钮。 按钮端子按下图所示示连接。 在第一行,所有4个按钮的一个端子连接在一起,4个按钮的另一个端子代表4列中的每一列,每行也是如此。 所以一共有 8 根线来连接一个微控制器。
在前面的实例中,对矩阵键盘驱动做了详细的介绍,请参考:
Ardunio开发实例-矩阵键盘输入
8051单片机Proteus仿真与开发实例-4x4矩阵键盘输入仿真
1、仿真电路原理图
2、仿真代码实现本次实例使用了如下开源库:
https://github.com/adafruit/Adafruit_Keypad/
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include & ...
Arduino与Proteus仿真实例PCA9685输出PWM驱动LED仿真
Arduino与Proteus仿真实例-PCA9685输出PWM驱动LED仿真PCA9685输出PWM驱动LED仿真PCA9685 是 I2C 总线控制的 16 通道 LED 控制器,针对红/绿/蓝/琥珀色 (RGBA) 彩色背光应用进行了优化。每个 LED 输出都有自己的 12 位分辨率(4096 步)固定频率的独立 PWM 控制器,可运行以 24 Hz 至 1526 Hz 的典型频率可编程,占空比可在 0 % 至 100 % 之间调节,以允许将 LED 设置为特定的亮度值。所有输出都设置为相同的 PWM 频率。
每个 LED 输出可以关闭或打开(无 PWM 控制),或设置为其单独的 PWM 控制器值。 LED 输出驱动器被编程为具有 25 mA 电流的开漏5 V 下的灌电流能力或具有 25 mA 灌电流能力的图腾柱(Totem Pole ),5 V 下的 10 mA 拉电流能力。PCA9685 在 2.3 V 至 5.5 V 的电源电压范围内工作,输入和输出可承受 5.5 V 电压。 LED 可以直接连接到 LED 输出(高达 25 mA,5.5 ...
Arduino与Proteus仿真实例PCF8574驱动4x4矩阵键盘仿真
Arduino与Proteus仿真实例-PCF8574驱动4x4矩阵键盘仿真PCF8574驱动4x4矩阵键盘仿真PCF8574/74A 通过两线双向 I2C 总线(串行时钟 (SCL)、串行数据 (SDA))提供通用远程 I/O 扩展。
PCF8574/74A包括八个准双向端口、100 kHz I2C 总线接口、三个硬件地址输入和中断输出在 2.5 V 和 6 V 之间运行。准双向端口可以独立指定为输入以监控中断状态或键盘,或作为输出以激活 LED 等指示设备。 系统主机可以通过单个寄存器从输入端口读取或写入输出端口。
PCF8574/74A具有2.5 uA(典型值,静态)的低电流消耗非常适合移动应用,并且锁存输出端口可直接驱动 LED。
在前面的实例中,对PCF8574已经做了详细的描述,请参考:
8051单片机Proteus仿真与开发实例-PCF8574扩展接口控制LED仿真
Arduino与Proteus仿真实例-PCF8574接口扩展驱动仿真
键盘是广泛用于各种电子和嵌入式项目的输入设备。 它们用于以数字和字母的形式获取输入,并将 ...
Arduino与Proteus仿真实例PCA9685驱动伺服电机仿真
Arduino与Proteus仿真实例-PCA9685驱动伺服电机仿真PCA9685驱动伺服电机仿真1、伺服电机介绍伺服电机是一种旋转执行器或线性执行器,可以精确控制角度或线性位置、速度和加速度。 它由一个合适的电机组成,该电机耦合到一个用于位置反馈的传感器。 它还需要一个相对复杂的控制器,通常是一个专门设计用于伺服电机的专用模块。
伺服电机不是特定类别的电机,尽管术语伺服电机通常用于指适用于闭环控制系统的电机。
伺服电机用于机器人、数控机械或自动化制造等应用。
伺服电机是一种闭环伺服机构,它使用位置反馈来控制其运动和最终位置。其控制的输入是一个信号(模拟或数字),代表输出轴的位置指令。
电机与某种类型的位置编码器配对以提供位置和速度反馈。在最简单的情况下,只测量位置。输出的测量位置与指令位置(控制器的外部输入)进行比较。如果输出位置与所需位置不同,则会生成错误信号,然后根据需要将电机向任一方向旋转,从而将输出轴带到适当的位置。随着位置的接近,误差信号减小到零,电机停止。
最简单的伺服电机通过电位计和对电机的 bang-bang 控制使用仅位置感测;电机始终全速旋转(或停止)。这种 ...
Arduino与Proteus仿真实例伺服机舵机驱动使用Servo库仿真
Arduino与Proteus仿真实例-伺服机/舵机驱动(使用Servo库)仿真伺服机/舵机驱动(使用Servo库)仿真伺服电机是一种旋转执行器或线性执行器,可以精确控制角度或线性位置、速度和加速度。 它由一个合适的电机组成,该电机耦合到一个用于位置反馈的传感器。 它还需要一个相对复杂的控制器,通常是一个专门设计用于伺服电机的专用模块。
通过向伺服的信号线发送 PWM(脉宽调制)信号来控制伺服电机。 脉冲宽度决定了输出轴的位置。 当您向舵机发送脉冲宽度为 1.5 毫秒 (ms) 的信号时,舵机将移动到中间位置(90 度)。 最小(0 度)和最大(180 度)位置通常分别对应于 1 毫秒和 2 毫秒的脉冲宽度。 请注意,这在不同类型和品牌的伺服电机之间可能略有不同(例如 0.5 和 2.5 ms)。 许多舵机仅旋转约 170 度(甚至仅 90 度),但中间位置几乎总是在 1.5 毫秒。
1、仿真电路原理图
2、仿真代码实现1234567891011121314151617181920212223242526272829303132#include <Ser ...
Arduino与Proteus仿真实例74C922键盘解码驱动仿真
Arduino与Proteus仿真实例-74C922键盘解码驱动仿真74C922键盘解码驱动仿真矩阵键盘是向基于微控制器的系统提供用户输入数据的绝佳方式。键盘在远程控制、独立数据记录器、安全系统、门禁系统、计算器、微波炉等中找到应用。它们通常被实现为按行和列矩阵格式排列的按钮开关,以减少 I/O 连接的数量.例如,一个 16 开关键盘以 4 X 4 矩阵格式排列,需要 8 个 I/O 连接。通过扫描键盘以查找行和列线之间的短路情况来检测和识别按下的键。键盘扫描可以通过轮询或中断程序来完成。在轮询方式中,扫描过程在一个连续的循环中重复进行,导致CPU时间的浪费。中断方法更有效,它会在有击键时通知处理器。将键盘连接到微控制器的另一种方法是使用专用键盘编码器 IC,这进一步减少了 I/O 连接并使接口更加简单。
MM74C922 芯片提供 18 引脚 DIP 和 20 引脚 SOIC 封装。
74C922 编码器实现了将 16 键开关矩阵连接到数字系统所需的所有逻辑。编码器芯片连续扫描键盘等待按键。当按下开关时,它会在其输出引脚 D、B、C 和 A (14- ...
Arduino与Proteus仿真实例HT16K33驱动LED点阵8x8仿真
Arduino与Proteus仿真实例-HT16K33驱动LED点阵(8x8)仿真HT16K33驱动LED点阵(8x8)仿真HT16K33 是一个内存映射和多功能 LED 控制器驱动器。 设备中最大显示段数为128个模式(16段和8个公共点),带有13*3(MAX.)矩阵键扫描电路。 HT16K33 的软件配置特性使其适用于多种 LED 应用,包括 LED 模块和显示子系统。 HT16K33 与大多数微控制器兼容,并通过两线双向 I2C 总线进行通信。
HT16K33有多种封装,28Pin封装如下图所示:
HT16K33的内部结构如下:
HT16K33的28Pin封装引脚功能如下:
1、仿真电路原理图
2、仿真代码实现本次使用到如下开源库:
Adafruit_LED_Backpack
开源库中的演示代码如下:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 ...
