문이 열릴 때 마그네틱 스위치로 켜려고하는 LED 스트립이 있습니다. 문을 열면 LED가 사라지고 아두 이노가 들어오는 곳인 문을 닫으면 꺼지기를 원합니다. 페이딩을 위해 PWM을 사용하고 있습니다. 각 구성 요소가 개별적으로 작동하도록 할 수 있습니다. 페이딩 LED는 스위치없이 MOSFET과 함께 작동합니다. Arduino에서 직렬 출력으로 스위치를 테스트했으며 MOSFET없이 단일 LED가 페이딩됩니다.
사용하고있는 제품 :
- Arduino Uno R3
- 자기 스위치
- N 채널 MOSFET IRLB3034
- 5 미터 흰색 LED 스트립
- 12VDC 30W 전원 공급 장치
- 10k Ohm 저항기
내 설정은 다음과 같습니다.
개략도 :
코드 (도움이되는 경우) :
const int buttonPin = 2; // the number of the switch pin const int ledPin = 9; // the number of the LED pin // variables will change: int buttonState = 0; // variable for reading the switch status int brightness = 0; int fadeAmount = 5; void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); } void loop(){ // read the state of the switch value: buttonState = digitalRead(buttonPin); // check if the switch is ON. // if it is, the buttonState is LOW: if (buttonState == LOW) { // fade LED on: analogWrite(ledPin, brightness); if (brightness < 255) { brightness = brightness + fadeAmount; } } else { // fade LED off: analogWrite(ledPin, brightness); if (brightness > 0) { brightness = brightness - fadeAmount; } } delay(30); }
문제가 MOSFET과 스위치의 공통 접지에있는 것 같습니다. 해결책 / 제안이 있으면 감사하겠습니다.
설명
- 핀 D9를 통해 FET를 계속 켤 수 있습니까? PWM없이 .. D9가 높을 때 NMOSFET의 드레인과 소스에서 전압을 측정 할 수 있습니까? 스위치가 닫히고 열릴 때 D2의 전압을 확인하십시오. D9 핀의 출력이 높을 때 D9에서 전압을 측정합니다. 5m LED 스트립의 세부 사항을 공유 할 수 있습니까? Arduino의 전원을 어떻게 켜고 있습니까? 5 미터 스트립 LED에 문제가있는 것 같습니다 …
- R2는 MOSFET 근처에서 100 옴 정도일 것으로 예상합니다. 그렇지 않으면 ' 뜨거워집니다. 또한 최소 및 최대 테스트를 255 resp에서 변경하십시오. 0 ~ 250 및 5
- 어떤 문제가 있는지 말하지 않습니다. 그것은 무엇을합니까? | LED 스트립은 12V 근처의 전압 범위에서 전원이 켜집니다. 즉, 약 9V에서 꺼지고 12V에서 켜질 수 있습니다. 따라서 스트립의 전압이 필터링으로 인해 아날로그이면 PWM 범위의 끝 부분에서 전원이 켜집니다. 회로가 그림과 같으면 LED 스트립이 PWM 주파수에서 켜고 꺼져 야합니다. 작동해야합니다. 표시된대로 회로는 정상이고 코드는 정상으로 보이므로 자신이 생각하는대로하지 않을 수 있습니다. 모든 것을 확인하십시오. | 그리고 그것은 실제로 무엇을합니까?
- @Jippie가 말했듯이 MOSFET 게이트 저항은 100 Ohms 또는 10 Ohms가 될 수 있습니다. 표시된대로 10k는 문제의 원인은 아니지만 너무 큽니다.
- THat '는 굉장한 FET입니다. 데이터 시트는 여기
답변
R2 저항을 유지해야한다고 생각하지만, 1k로 만들고 그 앞에 10k의 풀다운 저항을 넣어 NMOS Cgate 커패시턴스에 저장된 전하가 High-Z가있을 때마다 방전되도록합니다. 포트 D9에서. 또한 일반적으로 20mA 인 다이오드 순방향 전류를 제한하는 저항을 잊지 말고 데이터 시트에서 매번 확인해야합니다. LED 스트립의 경우 일반적으로 내부 저항이 있지만 더 높은 전압을 사용하는 경우 전류를 제한해야합니다. 예를 들어 적분기가있는 단순한 출력 포트가 아닌 PWM을 사용하는 이유와 LED를 켤 때 (페이드-온-오프) 정확히 관찰하고 측정 한 내용에 대해 자세히 설명해 주시겠습니까?
이 회로 시뮬레이션 – CircuitLab 을 사용하여 생성 된 회로도
다이어그램을 조금 더 작게 만드는 방법은 무엇입니까?
설명
- ' 내부 저항으로 12V 정격 스트립을 구동합니다. 외부 LED r이 필요하지 않습니다. 그는 아날로그 솔루션이 아닌 디지털 솔루션을 원하기 때문에 ' PWM을 사용하고 있습니다.
- @lalamer ESE에서 다이어그램을 확장하려면 다이어그램을 더 넓게 만들어야합니다. 점 / 세그먼트 / 텍스트를 왼쪽 및 / 또는 오른쪽에 배치하여 전체 다이어그램을 축소하고 잘 작동합니다.
- @RussellMcMahon 예, 맞습니다. 이것은 LED 스트립입니다. 내부 저항기. 내 답변을 업데이트했습니다. 헌신 해 주셔서 감사합니다.
답변
10KOhm은 필요 없습니다. MOSFET은 제어 된 전류가 필요한 트랜지스터와 달리 전압 제어 장치입니다. 나는 당신의 문제가 스위치의 디 바운싱에 있다고 생각합니다. 소프트웨어가 잘못 될 수있는 오 탐지 가능성이 있습니다. 작은 디 바운싱 루틴을 사용하는 것이 좋습니다. 예를 들어, 3 개의 연속적인 긍정을 찾은 경우에만 스위치 프레스를 진정한 긍정 정도라고합니다.
댓글
- 스위치가 활성화 된 것으로 표시되면 한 작업을 수행 한 다음 다시 테스트하기 전에 30mS를 지연시켜 효과적으로 30mS 디 바운스를 갖습니다.
- 돌입 전류를 제한하기 위해 저항을 게이트와 직렬로 연결하는 것이 좋습니다. MOSFET의 게이트는 커패시터처럼 작동하며 충전 / 방전이 필요합니다.
- 이를 달성하려면 MOSFET의 게이트를 gnd (NMOS의 경우)에 연결해야합니다. 그러면 MOSFET 게이트 커패시턴스가 빠르게 방전됩니다. 또한 게이트는 소음에 민감하고 전원이 켜지면 많은 손상을 입힐 수 있으므로 부동 상태로 두지 마십시오. 항상 NMOS 게이트를 아래로 내립니다.