本条目介绍的是持续输出脉冲的红石电路。关于用于指示游戏时间的红石电路,请见“Tutorial:时钟”。
此条目需要更新。
理由:条目中某些信息已经不符合当前版本情况,且未区分Java版与基岩版。
该页面需要整理以符合格式指导。 讨论
请协助改善内容来使它符合规定。说明:多个子页面图示不规范,源代码一行中第一个字符为半角冒号时后面是否存在空格不统一,注释滥用,可能存在部分语句应当使用而未使用的情况。
时钟电路是一种红石电路,用于产生时钟信号(即一类不断重复的脉冲)。
目录
1 介绍
2 红石火把时钟
2.1 高频脉冲发生器
2.2 红石火把环路
3 中继器时钟
4 火把-中继器时钟
5 比较器时钟
5.1 减法时钟
5.2 渐减脉冲发生器
6 漏斗时钟
6.1 单物品漏斗时钟
6.2 多物品漏斗时钟
6.3 倍乘漏斗时钟
7 投掷器时钟
8 物品清除时钟
9 命令方块时钟
10 活塞时钟
10.1 极小活塞时钟(A)
10.2 极小双活塞时钟(B)
10.3 双方块活塞时钟(C)
10.4 紧凑型黏性活塞时钟(D)
10.5 四叶草活塞时钟(E)
10.6 高级高频活塞时钟(F)
10.7 简单的高频活塞时钟(G)
10.8 自我激活活塞时钟(H)
10.9 黏性活塞+黏液块+侦测器
11 矿车时钟
12 长周期时钟
12.1 时钟周期乘法器
12.2 带有反馈的红石中继器
13 侦测器时钟
14 信号交替时钟
15 参考
16 导航
介绍[编辑 | 编辑源代码]
时钟信号发生器(Clock Generators)是输出持续输出开/关的设备。
首先介绍时钟电路的一些理论,便于理解设计。
工作指标
在Minecraft中,通常由以下几种方式描述某个时钟电路的工作指标:
时钟周期,或工作周期,简称周期。即时钟电路一次工作循环的时间长度。
视应用场景所需要的时序分析精度选择最合适的单位:
红石刻(rt):用于一般场景,如“12rt时钟”。
游戏刻(gt):用于需要高精度时序分析的场景,多见于Java版,如“8gt时钟”。
赫兹(Hz):常用于rt和gt可能混合使用的场景。如数字电路。例如“1Hz时钟”
一般时间单位,如秒(s),分(min)甚至小时(h)。用于超长周期时钟电路(通常超过10s)。
若单位为Hz,则还可以使用“输出频率”或“频率”描述。
由于红石刻(rt)和游戏刻(gt)的简写都为刻(t),部分场景可能会产生歧义。在这些场景下使用赫兹或一般时间单位可能是更优解。
每次输出脉冲长度,单位为rt或gt。若未给定则默认输出长度为工作周期的一半。
如下面的例子所示:
“2rt时钟”指周期长度2rt,每次输出脉冲长度1rt的时钟电路。
“2.5Hz时钟”指周期长度4rt,每次输出脉冲长度2rt的时钟电路。
“频率5Hz的时钟”指周期长度2rt,每次输出脉冲长度1rt的时钟电路。
“周期16gt的时钟”指周期长度16gt,每次输出脉冲长度8gt的时钟电路。
“周期5rt输出2rt的时钟”指周期长度5rt,每次输出脉冲长度2rt的时钟电路。
相位,用于描述时钟一个周期的起点。这个概念在下文中几乎没有出现,但有时也很重要。
一个周期的起点在什么位置要看是什么时钟,但通常把“0”相位或“1”相位的起点看做周期的起点。多数情况下相位无关紧要,因为通常只需要重复的脉冲。但对于一些复杂的时序电路,它们对于时序的要求非常严格,相位在此时会成为一个不可忽视的问题。
工作频率相关
若时钟周期较短,如2rt时钟。那么它的输出频率将会很高,这类时钟电路被称为高频时钟(rapid pulser)或高频电路。
一般情况下最快的时钟频率为5Hz。在Java版中,借助活塞或是游戏漏洞。可以轻松构建输出频率高达10Hz、20Hz甚至更高(意味着在1gt内输出多次)的超高频时钟电路。
在Java版中,对于频率足够高的时钟(5Hz及更高),一般的电路可能难以处理。因为红石比较器和红石火把的计划刻优先级特性(红石火把还有烧毁特性)在一定程度上限制了它们高频处理信号的能力。而对于频率10Hz及更高频率的“超高频时钟”,则只有经过专门设计的电路能够处理它们发出的信号。
构建长周期时钟(周期大于4s)可能会比较困难。因为添加中继器会使时钟体积更加庞大。下文中会介绍一些特别的设计缓解这个问题。
时钟类型
一般通过使用红石元件或是水流等作为基础构建一个“环”,让信号或是别的某种东西(此处称为时序载体)在环当中“循环流动”来实现时钟电路。因此大部分时钟电路也可以被称为“旋转环”时钟。
而对于一类特殊的旋转环时钟:通常循环流动信号,信号每在环中完成一个循环,则其会被反相一次。这种环被称为“反相环”或“取反环”。
反相环时钟输出的脉冲长度必然是周期数的一半。
旋转环时钟难以关闭甚至不能关闭(取决于时序载体的类型)。只能断开环路、锁定环路或是截断输出。
断开环路是最有效的方案。但对于时序载体较为特殊的旋转环,时序载体可能或必然会丢失,下次开启时需要重新输入时序载体。
锁定环路则是更常见的方案,这样不会丢失时序载体,某些设计也能保留相位。但某些设计可能难以锁定。
截断输出通常成本很低,但对于长周期时钟通常并不值得,可能会出现一些很短的输出信号,需要确保下游的电路能够正常处理。
并且由于时钟自身仍然在工作,意味着其会持续计算,并增加每刻毫秒数(MSPT)。
反相环时钟可以关闭,因为它们的环路中总会存在一个关键的“非门”(若环路中有多个非门则取决于相位位置),因此可以将取反环的状态强制设置为0或者1。
接下来介绍实际的设计方案。
红石火把时钟[编辑 | 编辑源代码]
高频脉冲发生器[编辑 | 编辑源代码]
图示:高频脉冲发生器
参见:时钟电路/红石火把高频脉冲发生器 [编辑]
重复同样的结构可以维持1刻时钟的连续性,以防红石火把烧毁。这样所形成的装置被称为高频脉冲发生器(如图中的设计X[仅JE]、Y与Z(垂直方向的))。但是,信号可能不是连续的。
装置R是上面所说的高频脉冲发生器的一个变体,在其中一个火把的亮起就会使其他三个火把(及其自身)熄灭。从Java版1.5.1开始,通常两个火把(例如东西的火把)会闪烁而其他火把则永远熄灭。在基岩版中,四个火把依次亮起。在电路的任何地方都可以输出时钟信号。
高频脉冲发生器R
高频脉冲发生器R的俯视图
红石火把环路[编辑 | 编辑源代码]
基础的5刻时钟发生器(A)
这个基础的红石火把脉冲发生器是Minecraft中最古老的时钟电路,由奇数个反相器(非门)组成一个环路。这个设计现在经常被中继器所替代。设计A展示了一个5刻的时钟,这是简单地用这种方法可以制造的周期最短的时钟。时钟周期可以通过增加成对的红石火把和(或)中继器来延长。中继器可以直接被加入环路中,或者替代任何一对非门。增加中继器也可以用来产生偶数刻的时钟信号,例如一个10刻时钟信号。总时钟周期是“非门数量”+“中继器的总延时”。
垂直的5刻红石火把环路(G)
参见:时钟电路/垂直的5刻红石火把环路 [编辑]
紧凑的红石火把环路
参见:时钟电路/紧凑的红石火把环路 [编辑]
基于红石火把的5刻时钟也可以更加紧凑正如设计B与C所展示的那样。但是,可供插入中继器的地方更少了。这种方法使得建造1刻与3刻的时钟成为了可能,但是它们并不稳定,因为红石火把会经常性的烧毁。与基础的时钟一样,这种紧凑的时钟也可以通过非门链或中继器来延长。也可以在垂直方向上建造一个5刻时钟,例如G。
红石火把4刻时钟
参见:时钟电路/红石火把4刻时钟 [编辑]
设计D使用了一个不同的方法来建造一个4刻时钟。(4刻时钟是不会造成红石火把过载的最快的时钟)
设计E可能在Java版1.7中被淘汰了。通过利用南北向传输畸变可以建造一个更加的紧凑的4刻时钟,正如你在设计E中所看到的,这个设计使用了5个红石火把,但如果堆叠的红石火把指向南/北方,它会产生4刻信号。
中继器时钟[编辑 | 编辑源代码]
可以通过将一个脉冲引入红石中继器环路形成时钟信号。
1刻中继器环路
1刻中继器环路 – 红石火把与红石块可以在时钟开始运转后移除
2×3×2(体积:12格)
平面,无声
时钟输出:1刻开,1刻关
最简单的中继器时钟只要将两个中继器用红石粉连成一个环路。
将1刻信号引入循环是有技巧的。如果脉冲时间过长,中继器会被永久地激活。唯一修复这个问题的方法是破坏这个电路再重新修复它。
一种简单的解决方法是用拉杆,打开它并在1刻后关闭。最常用的方法是在时钟旁放置一个红石火把并快速将它破坏。你可能需要多次尝试才能成功,在每次尝试之中你需要破坏时钟再将它修复。一个更可靠的方法(如右图所示)是将红石火把放于被充能的方块之上(一个红石块、任何被其他红石火把充能的方块或其他能量源)。红石火把再被放置的一瞬间是亮的,但由于它附着在一个充能方块上,它会在1刻后熄灭。红石火把与充能方块可以在时钟开启后移除,但你仍需要通过破坏时钟来使其停止。
变形:中继器前的红石粉可以被方块替代以节省红石粉。
你可以通过在环路中增加中继器来延长时钟周期。只要每个中继器的延时都是1刻,无论增加了多少中继器,脉冲长度永远是1刻。如果任何一个中继器的延时增长了,脉冲的时长会增加到与中继器的延时等长。
可开关的1刻中继器环路
可开关的1刻中继器环路 – 使用黏性活塞
3×4×2(体积:24格)
平面,无声(运行时)
时钟输出:1刻开,1刻关
这个中继器环路可以被开关,通过移动方块或者破坏电路。
工作原理:当拉杆被打开时(t=0红石刻),黏性活塞开始伸出,在t=1时,红石火把熄灭,但左边的中继器仍然会保持能量1刻,在t=1.5时,活塞伸出完毕,被移动的方块被左边的中继器充能。在t=2时,左边的中继器关闭。在t=2.5时,右边的中继器开始输出方块传递给它的信号。自此以后,它持续输出1刻的时钟信号。直到拉杆关闭,打破循环。
10赫兹中继器环路
本段落所述内容仅适用于Java版。
10赫兹中继器环路
3×4×2(体积:24格)
平面,无声
时钟输出:1刻开,0刻关
这个时钟制造一个10赫兹的信号(每秒激活10次)包含了由0刻负信号(负信号存在,但它会在同一游戏刻被替换为正信号)分隔的1刻的正信号。
用1刻的脉冲来激活这个时钟(例如在一个充能方块上放置一个红石火把)。通过破坏掉一个红石粉来终止它。或者,前文所述的方法也可以使其变得可开关。
10赫兹的时钟运行地如此之快以至于有一些红石原件无法响应。命令方块、音符盒与钟可以接受高速的激活。门、活板门与栅栏门将保持激活,但是不断发出开门关门的声音。其他红石元件会表现为一直被激活的状态。
火把-中继器时钟[编辑 | 编辑源代码]
一个紧凑火把-中继器时钟,中继器设为3刻延迟
火把环路时钟现在通常替换为火把-中继器环路。在这些时钟中,大部分延迟来自中继器,而单个火把可提供振荡电流。这样的时钟不能短于3刻(否则火把烧毁),但是它们几乎可以无限扩展(忽略空间和材料限制)。但是,一旦环路达到9-16个中继器(延迟36-64刻),就不如使用T触发或时钟倍频器来增加周期成本更小(并且紧凑)。这些示例都是(R+1)刻时钟,其中R是中继器的总延迟(它们有R+1刻的时间为关,R+1刻的时间为开。)并且至少有一个位置输入信号后,使得时钟在半个周期内关闭(在当前所有电路中的高电平信号流出之后)。(将“开”信号连入输出也会使时钟停止,但当然停止后输出将为高水平。)当电源关闭时,时钟将自动重启。
基础的火把-中继器时钟
参见:时钟电路/基础的火把-中继器时钟 [编辑]
设计方案A是一个基础的环路时钟。其中中继器的总延迟必须不少于2刻,否则火把会烧毁。充能图中的金块可以关闭时钟。可以添加任意多的中继器,并且也可以通过添加红石粉连接各个中继器来根据需要扩展环路。图中展示的电路是平面的,但大型的环路也可以是多层的,以减少其面积。
垂直可扩展时钟
参见:时钟电路/垂直可扩展时钟 [编辑]
设计E是处在垂直平面的可扩展时钟。它体积最小时为1×5×4,但它可以无限扩展,每扩展一格长可以增加2个中继器(最多会增加8刻延迟)。图中所示中继器数量的时钟最小为5刻(可以吧中继器换成红石线来减少到3刻或4刻,或者使用D设计)。火把后面的拉杆或其他红石信号可以关闭时钟,关闭后输出保持“关”(在当前所有电路中的高电平信号流出之后)。
粉红色和品红色的羊毛或红石线可用于输出
垂直紧凑时钟
参见:时钟电路/垂直紧凑时钟 [编辑]
设计D是一个很小的垂直时钟,它是E的压缩形式,通过调节中继器可以输出3、4或5刻时钟信号。
已知最早发布:2011年6月30日[1]
它的周期是比较器总延迟加一,但比较器至少有2刻延迟,否则火把会烧毁。该电路的大小为1×3×3,但最常见的是在地面上将其构建为“V”形,并且可以很容易地完全掩埋。
在四个红石导体中的任意一个使用拉杆或其他红石信号可以停止时钟。停止后,火把会熄灭而红石线会亮起。
可以在几乎任何地方获得输出信号。
比较器时钟[编辑 | 编辑源代码]
比较器可用于制作高频和低频时钟。
减法时钟[编辑 | 编辑源代码]
减法1刻时钟
减法1刻时钟
2×2×2(体积:8方块)
平面,静音
时钟输出:1刻开,1刻关
减法时钟每1刻都改变一次输出。它使用减法模式的红石比较器,时钟的输出与比较器边侧输入端相连接。
首先当比较器获得15强度的信号时,它将向前方的方块输出强度15的信号,该方块将相同强度的信号传递到它旁边的红石线。当信号传递到比较器侧面的红石线处时,信号强度下降了1(变为14)。在下一个刻,比较器用输入15中减去14,仅输出信号强度1。从而只能为前方方块和该方块旁边的红石线提供信号,而不足以传递至比较器侧面的红石线。比较器,因此在下一刻里,比较器从其输入15中减去0,然后循环再次开始。
直线输出的减法1刻时钟
2×3×2(体积:12方块)
实际上,只有比较器旁边的红石线会在开和关之间切换。比较器、它前面的方块以及方块旁的红石粉只能在信号强度15和1之间切换。从它们那里获取输出,并使信号强度至少下降到14和0。可以通过在这些位置添加红石线使信号减至14和0以获取时钟信号。
减法时钟并不需要保证输入为15,只要输入的信号强度不小于2就可以正常运转。
变种:如果该位置的不方便输入,则玩家可以使用任何已满的容器作为“输入”。
已知最早发布:2013年2月9日[2]
减法n刻时钟
减法n刻时钟
2×3×2(体积:12方块)
平面,无声
时钟输出:2-5刻开,2-5刻关
将中继器设置为1刻延迟,就成为了2刻时钟(2刻开,2刻关)。增加中继器延迟可以减慢时钟速度,或者添加更多的中继器。如果输入强度大于1,则中继器后面的方块也可以换成红石粉;如果高于2,则比较器前面的方块也可以换成红石粉。可以从任何地方获取输出。
渐减脉冲发生器[编辑 | 编辑源代码]
渐减脉冲发生器是对于制作周期小于15秒的小体积时钟很有用(更长周期,可以使用漏斗做的体积更小),它们的周期可以用比较模式比较器边侧、减法模式比较器后侧输入信号调整。它们使用渐减电路(又称“渐减环路”,即信号强度每次通过时都会衰减的比较器环路,因为信号需要通过两个相连的红石线或由两次减法实现自减),每次衰减到0后都由红石火把(或中继器)重置环路。
渐减9刻脉冲发生器
→
→
渐减9刻脉冲发生器
1×4×4,1宽,无声
时钟输出:1刻开,8刻关
当输入为0时,红石火把先向环路提供信号强度15。环路中只有一个比较器所以信号每过一圈需要1刻,每次信号强度会衰减2。所以渐减环路的信号会持续8刻。红石火把之后亮起1刻,因为它会使自己短路(红石火把不会燃尽,因为大部分时间因衰渐减环路的信号而熄灭)。
渐减29刻脉冲发生器
渐减29刻脉冲发生器
2×4×2,平面,无声
时钟输出:2刻开,27刻关
当输入为0时,红石火把先向环路中方块旁的红石粉提供信号强度14(从火把传输到那里信号已经衰减1)。环路中有两个比较器,所以一圈有2刻。每经过1圈信号强度会衰减1,所以渐减环路的信号会持续28刻。1刻后,红石火把亮起,重新激活渐减环路(它会持续2刻亮起,其中1刻与渐减环路发出信号的时间重合)。
变种1[仅基岩版]
←
垂直渐减29刻脉冲发生器[仅基岩版]
添加更多比较器可以增加时钟周期。
去掉红石火把后脉冲信号将不会重复(成为一个脉冲扩展器)。
变种2
渐减32刻[需要在基岩版上验证]脉冲发生器
减法渐减脉冲发生器(火把重置)
B
A
减法渐减脉冲发生器(火把重置)
4×3×2,平面,无声
时钟输出:3刻开,2ceil(min{14,B}⁄B-A)-1刻关[需要在基岩版上验证]