进行瞬时开关产生2态触发输出(锁定瞬时开关)的最简单,最便宜,最小的方法是什么?
换句话说,输出持续为低电平,当您短暂按下按钮/轻触开关时,输出将变为持续高电平,然后再次按下时,它将切换回低电平。
进行瞬时开关产生2态触发输出(锁定瞬时开关)的最简单,最便宜,最小的方法是什么?
换句话说,输出持续为低电平,当您短暂按下按钮/轻触开关时,输出将变为持续高电平,然后再次按下时,它将切换回低电平。
Answers:
这是具有两个逆变器并进行反跳的另一种选择:
对于逻辑输出,仅需要两个反相器RC和反馈电阻器:
NC7WZ14的价格为$ 0.06,带有2个反相器,小型6引脚封装和施密特触发器输入,尽管我认为由于RC,该电路甚至不需要施密特输入。它还可以驱动24 mA的电流,因此,无论出于何种原因使用LED都可以将LED直接连接到它。
我认为,如果按住按钮,则反馈电阻必须比中心电阻小得多,以防止其振荡,因为与输出的低阻抗连接将阻止电容器充电到中压,直到松开为止。
按下ON-按下OFF软锁存电路描述了变体:
一种可能的方法:
使用RC反跳开关
然后将其反馈到D触发器,输出反馈到输入,以实现T触发器。
D触发器仅需正向边沿触发,并且需要反相输出。
这有什么问题吗?可能需要在短时间内按住开关,以使上升时间触发时钟输入,这可能很好。如果按住该按钮,则只会触发一次,这很好。有没有更好的方法可以消除反馈回路中的反跳?
或者,您也可以只用一个微型的6针微控制器而无需其他组件。它可能会花费更多,但更简单并且占用更少的空间。在软件中对开关进行反跳很简单,如果输出应该是高电平还是低电平,这只是存储布尔值的一种方式。该MCU的最小版本采用2mm x 2mm表面贴装封装。批量价格为0.50美元。
通过短接正边沿触发的jk触发器的输入来制作T触发器,并将按钮输出连接到jk触发器的时钟输入。
模拟该电路 –使用CircuitLab创建的原理图
我知道这是一种“间接”的方式,但是您可以获得像Sparkfun这样的霍尔效应传感器:http : //www.sparkfun.com/commerce/product_info.php? products_id=9312
并仅使用一块磁铁,我(很难地)发现这种特定的霍尔效应正在闩锁,因此它无法满足我的需要,但从理论上讲,它可以满足您的需求。
我只是将其插入面包板,我想我可能已经使用了一个电阻器(可能已经用了一个月,所以我对细节有些模糊),当我将磁体移近(瞬间)时,它会闭合传感器并在那里你走。
最简单的选择是使用交替按钮开关。
如果您忽略它在不同位置锁定的事实,则几乎就像是瞬时开关一样。我知道这不是问题的实质,但这是一个简单而紧凑的解决方案,不需要软件,也不需要外部硬件。
不确定确切的最终目标是什么,但我想我应该把它放在那里:
我喜欢用这很棒的小电路来驱动双稳态继电器。构建起来也很便宜。
按下瞬时开关可切换继电器和LED的状态。按住按钮多长时间并不是很挑剔。由于继电器处于闭锁状态,因此大部分时间不会消耗太多电流。
在此配置中,当继电器处于设置状态时,LED将亮起;当继电器复位时,LED将熄灭。您也可以将R7连接到C3的+端子,以使继电器复位时LED亮起。
我喜欢在吉他效果中使用此功能,因此可以通过瞬时脚踏开关绕过或接合设备。当然,3PDT开关可以自己做同样的事情,但是这种开关更安静(没有大的砰砰声),瞬时的轻触式脚踏开关感觉比3PDT的大得多。
希望这可以帮助。
您不仅可以通过软件来完成吗?
该按钮将是可编程设备上的输入,还是需要在硬件领域中进行切换?
通过将按钮状态存储在内存中,使用瞬时开关作为切换非常容易。
boolean buttonState = false; // store for toggle state, false = off true = on
if(yourButton == HIGH && buttonState == false) // if button is pressed and toggled off
{
Serial.println("Button Toggled On"); // do something while button is on
buttonState = true // set button state to on
}
if(yourButton == HIGH && buttonState == true) // if button is pressed and toggled on
{
Serial.println("Button Toggled Off"); // do something else while button is off
buttonState = false // set button state to off
}
抱歉,如果这没有完成,很明显,此答案取决于您使用MCU还是可编程芯片。