순간 스위치가 2- 상태 토글 출력 (래칭 순간 스위치)을 생성하도록하는 가장 간단하고, 저렴하며, 가장 작은 방법은 무엇입니까?
다시 말해, 출력은 지속적으로 낮으며, 버튼 / 택트 스위치를 잠깐 누르면 출력이 지속적으로 높아지고 다시 누르면 다시 낮게 전환됩니다.
순간 스위치가 2- 상태 토글 출력 (래칭 순간 스위치)을 생성하도록하는 가장 간단하고, 저렴하며, 가장 작은 방법은 무엇입니까?
다시 말해, 출력은 지속적으로 낮으며, 버튼 / 택트 스위치를 잠깐 누르면 출력이 지속적으로 높아지고 다시 누르면 다시 낮게 전환됩니다.
답변:
두 개의 인버터와 디 바운싱을 사용하는 또 다른 대안 은 다음과 같습니다 .
로직 출력의 경우 두 인버터 RC 및 피드백 저항 만 필요합니다.
NC7WZ14 는 2 개의 인버터, 소형 6 핀 패키지 및 슈미트 트리거 입력으로 $ 0.06이지만,이 회로는 RC 때문에 슈미트 입력조차 필요하지 않다고 생각합니다. 또한 24mA를 구동 할 수 있으므로 어떤 이유로 든 LED를 사용하는 경우 LED를 직접 연결할 수 있습니다.
또한 여기 와 여기에 토글 터치 스위치로 표시 됩니다.
피드백 저항은 출력을 낮은 임피던스로 연결하면 놓을 때까지 커패시터가 중간 전압으로 충전되는 것을 방지하기 때문에 버튼을 누르고 있으면 진동이 발생하지 않도록 중심 저항보다 훨씬 작아야한다고 생각합니다.
한 가지 가능한 방법 :
RC를 사용하여 스위치 디 바운스
그런 다음 출력을 입력으로 다시 공급하여 T 플립 플롭을 구현하여 D 플립 플롭에 공급합니다.
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가 켜지고 릴레이가 재설정되면 꺼집니다. 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 또는 프로그래밍 가능 칩을 사용하는 사용자에 따라 다릅니다.