Circuitjs web 在线电路模拟器应用简介

news2024/9/23 13:26:46

Circuitjs 是一款 web 在线电路模拟器, 可以在浏览器上方便地模拟各种模拟或数字的电路, 用户无需安装各种软件, 生成的电路也支持在线分享给其它用户.

访问地址

下述地址我部署的一个版本: https://cc.xiaogd.net/

此版本的特色是界面翻译成中文时尽量保留了英文, 因此在某些地方显示时可能有点拥挤, 除此之外, 与其它纯英文或纯中文的版本功能上并无差别.

使用简介

点击前述地址即可打开首页:

circuitjs 首页

默认情况下, 会给出一个示例的 LRC 电路.

另一个数字电路示例:

另一个我制作并分享的数字电路的示例参见: 三位(3 bit)二进制加法虚拟电路示例

打开效果如下:

在线可互动操作的三位(3 bit)二进制加法虚拟电路示例图

创建新的空白电路

默认给出的示例电路只是起一个演示作用, 如果你要创建自己的电路, 可以点击 菜单--电路--空白的电路 从而打开一个新的空白电路.

circuitjs 新建空白电路

当然, 你也可以通过拖动鼠标选中全部组件, 再按 Delete 全部删除它们.

添加组件

清空默认的示例电路后, 可以通过 菜单--绘制 菜单添加自己想要的组件.

下面以添加一个继电器为例, 通过点击 菜单--绘制--无源元件--添加继电器 后便处于添加继电器状态, 此时的鼠标光标变为十字光标"+"形状:

circuitjs 添加继电器

此时只要在空白处按住鼠标左键不放拖动鼠标, 即可在面板上添加一个继电器:

circuitjs 添加继电器

如果是横向拖动便放置一个横向排列的继电器, 纵向拖动就放置一个纵向排列的继电器

注意: 根据自己所需的组件宽度和高度决定释放的时机. 当然, 拖放完成后依然可以继续调整宽度或高度.

连续添加组件

选择添加组件后, 系统默认即是连续添加, 因此添加一个组件后, 继续处在添加该组件状态, 用户可以继续拖动以添加更多的类似组件.

鼠标光标继续处在十字光标"+"形状

退出添加状态

如不再需要继续添加组件, 可以通过按 Esc 键退出添加状态.

此时光标回到默认的状态(选择组件状态)

快捷键

对于常见组件, 反复通过菜单去选择也是比较繁琐的, 系统考虑到这一点, 也为那些常用组件添加了快捷键.

点开菜单时, 位于菜单右侧的那些字母即是对应的快捷键, 如下图所示:

circuitjs 菜单快捷键

用户通过按某个对应的快捷键, 即可快速处于添加所对应组件的状态.

下面是一些常用组件及相应的快捷键:

  • ESC : 退出组件添加状态(回到选择组件状态)
  • w : 导线(wire)
  • r : 电阻器(resistor)
  • R : 继电器(Relay)
  • s : 开关(switch)
  • v : 二端口直流电压源(voltage source, 2-terminal)
  • V : 单端口直流电压源(Voltage source, 1-terminal)
  • g : 接地(groud)
  • l : LED 灯
  • t : 文本(text)
  • i : 逻辑输入(logic input)
  • o : 逻辑输出(logic output)
  • 1 : 非门
  • 2 : 与门
  • @(Shift + 2) : 与非门
  • 3 : 或门
  • #(Shift + 3) : 或非门
  • 4 : 异或门

注意: 快捷键是区分大小写的.

比如, 继电器的快捷键是大写的 R, 因此需要按 Shift + R 来激活; 如果是小写的字母则单按对应键即可.

更多的组件快捷键以及那些与拖动等相关的组合快捷键, 用户可以在菜单中找到相应提示.

还可以通过 菜单--选项--快捷键... 查看所有快捷键, 分配新的快捷键或调整现有的快捷键.

更多快捷键参考: Circuitjs 快捷键

自动吸附及对齐特性

为了方便对齐及准确连接线路, 拖动或拉长(缩短)组件时, 移动或变长变短的距离总是以某个固定值的整数倍离散地变化, 并自动吸附到最接近的一个位置上.

这为连线带来了方便, 只要拖动到大概的连接点位置并释放, 线路即能准确地连接起来.

移动组件时也能够更方便地对齐.

连接电路的一些小技巧

为快速连接组件, 添加组件或导线时, 把鼠标的光标置于待连接组件或导线的连接点上, 然后按住左键开始拖动, 而释放时光标的位置位于另一个连接点上, 则拖动结束后两个连接点即已与新添加的组件或导线连接上.

选择, 调整及移动

处于选择状态时, 单击某个组件可选中对应组件.

注意: 如果处在添加组件状态, 须先按 Esc 退出, 见前述描述.

也可以通过按住鼠标左键拖动形成一个选择框的方式选择多个组件.

按快捷键 Ctrl + A 可全选.

在组件上点击并按住不放移动鼠标(拖动), 即可移动组件.

在某些组件上, 选择某个端点上拖动, 则只是该端点位置改变, 另一端固定不动, 结果是组件(或其自带的连接线)被拉长, 缩短或是被旋转.

某些复杂的组件可能还有其它的控制点, 鼠标移上去后可显示出来, 拖动这些组件带来的变化根据具体组件情况而定.

另: 一些复杂组件可能不支持拉长, 缩短或旋转等操作.

放大与缩小

滚动鼠标滚轮可以放大或缩小整个画布.

或是通过 菜单--编辑--放大菜单--编辑--缩小 实现.

欲回到原始的 100% 的大小(没有缩放), 通过 菜单--编辑--缩放100% 实现;

上述三个操作对应的快捷键为:

  • 0 : 缩放100%
  • - : 缩小
  • + : 放大

编辑属性

在组件上单击鼠标右键, 在弹出的快捷菜单上选择 编辑:

circuitjs 组件属性值编辑

在弹出的对应组件的属性窗口上, 显示了那些可以编辑的属性值, 调整相关值, 然后点击 确定 即可改变相应属性值:

circuitjs 组件属性值编辑

添加方框及文本

除了可以添加那些功能性的组件外, 你还可以添加一些说明性的文字及辅助装饰性的方框(虚线框).

具体例子见前述 三位(3 bit)二进制加法虚拟电路示例

通过 菜单--绘制--输出和标签--添加文本 可以添加文字

也可以通过快捷键 t.

通过 菜单--绘制--输出和标签--添加提示框 可以添加方框.

运行, 停止与重置

在界面右侧边栏上, 有相关功能性控制界面.

默认情况下, 即处在 运行 状态下.

点击 运行 / 停止 按钮, 可以停止实时模拟.

此时 运行 / 停止 按钮处于红色状态:

circuitjs 停止模拟按钮状态

如果先前电路还有电流等流动, 则此刻会处于停止状态.

再次单击 运行 / 停止, 则又开启实时模拟, 电流等又重新流动.

如果发现电流没有流动, 或是相关的灯等没有亮, 或是其它异常, 你可能需要检查导线是否连接良好, 对应的开关是否处于闭合状态等.

注: 通过 菜单--选项--显示电流 可以调整电流显示状态, 如果没有勾选, 则也不会显示电流的流动.

点击 “重置” 按钮可以将电路状态重置.

如果你发现电路模拟运行有异常, 你可以尝试重置看是否可以解决问题.

开关控制

单击开关可以改变开关的闭合状态.

断开时单击可以闭合开关; 闭合后再度单击又可以重新断开.

circuitjs 开关断开及闭合状态

另: 某些数字式逻辑输入组件(可以视作为电源与开关的综合体), 没有模拟开关的那种断开或闭合的图示, 但通常会有相应的文字提示, 点击相应文字切换其断开或闭合状态.

显示为 L(Low, 表示低电压) 或 0 表示断开;

显示为 H(High, 表示高电压) 或 1 表示闭合.

circuitjs 数字逻辑开关断开及闭合状态

也可以通过查看与之相连的导线的颜色判断其开闭状态. 导线颜色为高亮的绿色表示接上了电压; 反之, 处于灰白色则暗示没有接上.

另: 接地端总是灰白色.

示波器

画布下方为示波器, 可以实时显示组件的电流, 电压等值随时间的变化(波形).

点击每个示波器左下角的"齿轮"按钮, 可调出示波器设置窗口.

circuitjs 示波器 scope

如不需要示波器, 可以在"齿轮"按钮上鼠标右键, 然后在弹出的快捷菜单中选择"删除".

拖动示波器区域上方的横线可以调整示波器区域的大小.

注: 横线缺省不显示, 鼠标移动到示波器区域上方附近时, 会呼出该横线

保存, 导入, 导出及分享

电路画好后, 点击 菜单--文件--另存为, 在弹出的小窗口中, 点击文件链接可以将电路下载保存为一个本地的 txt 文本文件.

circuitjs 另存为 save as

点击 菜单--文件--打开, 然后选择一个先前保存的电路文件, 则可以将其打开.

导入, 导出与文件的另存为和打开类似, 区别在于, 你需要自行拷贝文件内容并转储.

点击 菜单--文件--导出图片 可以将画布中的电路作为 png 图片导出.

点击 菜单--文件--导出链接 可以生成一个分享链接地址, 你可以将此地址发给别人以分享你创建的电路.

注意: 导出链接时, 因为电路内容直接以转义的查询字符串的形式附在地址后面, 所以生成的链接地址可能会特别长.

另外一种分享的方式是使用一个可公开访问的互联网资源地址.

比如, 前述的 三位(3 bit)二进制加法虚拟电路示例 就是这样一种形式. 首先把电路另存为本地的一个文件, 然后上传至你的个人网站或网盘上, 并得到一个外部访问的地址.

比如像这样的: https://www.xiaogd.net/static/circuit/c-3bit-adder-demo.txt

你需要测试在直接访问这个地址时, 浏览器能正确打开并显示这个文件的内容, 类似下图的例子:

circuitjs 分享的资源地址打开示例

然后你把这个地址取代下述这个分享链接模板上的 “{你的资源地址}” :

https://cc.xiaogd.net/?startCircuitLink={你的资源地址}

最后形成类似下述的一个完整地址:

上述例子的最终结果是这样: https://cc.xiaogd.net?startCircuitLink=https://www.xiaogd.net/static/circuit/c-3bit-adder-demo.txt

也即是资源地址作为查询参数 startCircuitLink 的值传递.

用户访问上述地址时, 应用会去对应的资源地址加载电路文件并显示.

注意: 你需要确保地址是可以公开访问到的.

比如你放在某些云盘应用上并分享时, 你作为登录用户是可以访问, 但其它人未必能访问.

另: 你的资源站点需要支持跨域访问(cors), 如果是你的个人站点, 你可以将 cc.xiaogd.net 加入到你的允许名单中.

问题及注意事项

最后说说使用过程中可能会碰到的一些问题及排解方式.

  1. 灯不亮

    • 如果你添加了一个灯, 却发现它不亮, 你需要检查连线是否正常, 开关是否闭合, 与之相连的电阻是否过大, 或者电源的功率(电压)是否足够, 另外则是灯本身的额定功率, 电阻等是否合适.
    • 在做数字电路相关模拟时, 使用 LED 灯即可; 如果你使用普通的灯, 则要注意其标称的功率及对应的电阻值是否合适(通过 右键--编辑 查看).
    • 此外, 灯还有 预热时间冷却时间 等属性, 因此, 你合上开关后, 它可能过一阵子才逐渐变亮; 关闭时, 则是逐渐熄灭.
  2. 线的交叉点

    • 当两条导线十字交叉时, 如果上面没有一个实心的小圆点, 表明两条导线并没有连接在一起;
    • 只有有小圆点时, 才说明导线是彼此互连的.
    • 红点: 出现红点说明线路重叠, 但实际上没有连接到一起.
  3. 电流过大

    • 如果整体电路的电压, 电阻等配置不合理, 可能导致出现模拟的电流过大的情形, 此时下方的状态提示文字中可能显示"电流过大"之类的异常信息, 你需要检查并设置合适的值.

反馈与联系

如果你在使用过程中遇到有问题, 可以在我的主页 果冻的猿宇宙 给出的书签链接中跟我联系及反馈.

当然, 不保证能解决你的问题~

关于 circuitjs 电路模拟器的介绍就到这里.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068382.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VBA语言専攻T3学员领取资料通知0823

T3学员领取资料通知0823 各位学员∶本周MF系列VBA技术资料增加706-725讲,T3学员看到通知后请免费领取,领取时间8月23日晚上19:00-8月24日上午11:00。本次增加内容: MF706:在同一页面上打印多个范围 MF707:通过合并行打印多个范围 MF708:将多表中的多…

mathtype7永久激活码密钥及2024最新序列号附安装教程

MathType7是一款强大的数学公式编辑器,它可以在各种文档中插入复杂的数学公式和符号。它的特点包括: MathType最新mac官方版本下载如下: https://wm.makeding.com/iclk/?zoneid61764 MathType最新win官方版本下载如下: https://wm.makeding.com/icl…

代谢组数据分析(十八):随机森林构建代谢组诊断模型

本文参考Metabolomic machine learning predictor for diagnosis and prognosis of gastric cancer撰写。 使用随机森林算法和LASSO特征选择构建了一种胃癌(GC)诊断预测模型。参与者(队列1,n=426)通过随机分层抽样分为发现数据集(n=284)和测试集(n=142)。接下来,在发…

社区流浪动物救助系统-计算机毕设Java|springboot实战项目

🎓 作者:计算机毕设小月哥 | 软件开发专家 🖥️ 简介:8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 🛠️ 专业服务 🛠️ 需求定制化开发源码提…

Linux下进程间的通信--信号

信号的概念: 在Linux操作系统中,信号是一种软件中断机制,用于通知进程某个事件已经发生。信号是Linux进程间通信(IPC)的一种简单且快速的方式,它可以用来处理各种异步事件,如用户输入、硬件事件…

DAG计算框架:实现业务编排

文章目录 DAG如何实现DAG计算框架Node的实现Engine的实现Graph的实现具体某个节点如何使用 在工作几年之后,大部分人如果还在继续做着 CRUD的简单重复工作,即使领导不提出对你更高的期望,自身也会感到焦虑吧。学如逆水行舟不进则退&#xff…

解锁Spring Boot、Prometheus与Grafana三合一:打造你的专属自定义指标炫酷大屏!

1. 集成Prometheus到Spring Boot 需要在Spring Boot应用中集成Prometheus。可以通过micrometer库来实现。micrometer是一个应用程序监控库,它支持多种监控系统,包括Prometheus。 一招制胜!Spring Boot、Prometheus和Grafana三剑合璧&#x…

数仓工具使用Docker部署DolphinScheduler 3.2.0 (分布式任务调度系统)-单机模式

Apache DolphinScheduler——开源大数据调度器神器 Apache DolphinScheduler(海豚调度),国人之光,是许多国人雷锋开源在Apache的顶级项目,主要功能就是负责任务的调度处理,Apache DolphinScheduler是一个分布式去中心化,易扩展的可…

C++--map和set

目录 1. 关联式容器 2. 键值对 3. 树形结构的关联式容器 3.1 set 3.2 map 3.3 multiset 3.4 multimap 4.底层结构 4.3红黑树与AVL树的比较 1. 关联式容器 前面我们已经接触过 STL 中的部分容器,比如: vector 、 list 、 deque、 forward_list(…

自建CDN/WAF解决方案--GoEdge

目录 概述 核心功能 典型应用场景 优点 适用对象 安装 使用 域名准备 DNSPOD的API秘钥申请 添加DNS厂商账号 添加集群 添加节点 添加网站 工作原理 概述 GoEdge 是一款高性能的、支持多种功能的反向代理服务器,通常用于流量管理、负载均衡、安全防护等…

layui2.9 树组件默认无法修改节点图标,修改过程记录下

官方文档树组件 data 参数值&#xff0c;未提供icon属性配置 需要修改源码 layui.js, 搜索图片中标记部分 查找到之后&#xff0c;修改为 <i class“‘(i.icon || “layui-icon layui-icon-file”)’”> 如图&#xff1a; 修改完成后&#xff0c;即可在data中添加icon…

Mysql双主双从

双主双从 1.安装Mysql1.1 查看linux版本1.2 下载Mysql安装包1.3 上传并解压1.4 安装Mysql1.5 编辑端口号1.6 Mysql启动命令1.7 更新密码 2.搭建Mysql主从复制2.1 搭建Master主服务器2.1.1 修改mysql配置文件2.1.2 重启Mysql服务2.1.3 创建Slave用户, 并授权2.1.4 查看主服务器当…

RTOS实战项目之实现多任务系统

文章目录 一、RTOS引入二、任务的引入2.1 任务的定义2.2 理解C函数的内部机制2.3 ARM架构2.4 汇编指令2.5 怎么保存函数的现场①要保存什么②保存现场的几种场景 三、FreeRTOS中怎么创建任务四、通过链表深入理解调度机制4.1 优先级与状态4.2 调度方法 五、创建任务—伪造现场5…

Python青少年简明教程:赋值语句

Python青少年简明教程&#xff1a;赋值语句 变量赋值是指将一个值分配给变量的过程。Python 支持多种形式的赋值&#xff08;assignment&#xff09;&#xff0c;包括基本赋值、多重赋值、链式赋值和解包赋值等。 为了深入理解Python赋值语句机制&#xff0c;先了解一下id()函数…

[Meachines] [Easy] Legacy nmap 漏洞扫描脚本深度发现+MS08-067

信息收集 IP AddressOpening Ports10.10.10.4TCP:135,139,445 $ nmap -p- 10.10.10.4 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows n…

战略合作篇白皮书:深度革新,赋能企业跃迁

01背景 企业数字化转型已经成为当今商业环境中不可避免的趋势&#xff0c;主要有以下几个原因&#xff1a; 技术发展&#xff1a;随着信息技术的迅猛发展和普及&#xff0c;企业面临着数字化转型的迫切需求。云计算、大数据、人工智能等技术正在改变商业模式和运营方式&#xf…

【C++第十四章】进阶模板

【C第十四章】进阶模板 非类型模板参数&#x1f9d0; 我们创建一个类&#xff0c;可以用模板开一个大小的为N的数组&#xff0c;这样优于用宏来定义N&#xff0c;因为可以在创建对象时可以根据需求更改数组大小。我们称在模板定义中使用的不依赖于模板类型的参数为非类型模板参…

当前A股平均市盈率

再写一篇【不务正业】的 2023-08-23A股平均市盈率 来自乐咕乐股网 当前A股市盈率是否为低点&#xff1f; 不言而喻 ‌当前A股市场的市盈率确实处于相对低位。‌ 根据东方财富Choice最新数据显示数据&#xff0c;截至2024年8月23日&#xff0c;全A市盈率为13.06倍&#xff0c;…

(贪心) LeetCode 45. 跳跃游戏 II

原题链接 一. 题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n …

《加油吧少年》热播 编剧蔡璧鸿:创作需要对幽默保持高度关注

近日&#xff0c;校园剧《加油吧少年》正在热播中&#xff0c;该剧以学渣视角&#xff0c;讲述他在高中校园与学霸&#xff0c;女神&#xff0c;死党一起学习&#xff0c;成长和努力拼搏的故事&#xff0c;《加油吧少年》自播出后&#xff0c;便以轻松幽默&#xff0c;诙谐搞笑…