Mam pasek LED, który próbuję włączyć za pomocą przełącznika magnetycznego po otwarciu drzwi. Chcę, aby diody LED gasły po otwarciu drzwi i gasły, gdy je zamykam, czyli tam, gdzie pojawia się Arduino. Używam PWM do zanikania. Mogę sprawić, by każdy komponent działał osobno. Zanikające diody LED współpracują z tranzystorem MOSFET bez przełącznika. Przetestowałem przełącznik z wyjściem szeregowym na Arduino i działa wygaszając pojedynczą diodę LED bez MOSFET-u.
Używam:
- Arduino Uno R3
- Przełącznik magnetyczny
- N-kanałowy MOSFET IRLB3034
- 5-metrowa biała taśma LED
- Zasilacz 12VDC 30W
- Rezystory 10k Ohm
Moja konfiguracja wygląda następująco:
Schemat:
Kod (jeśli to pomaga):
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); }
Mam wrażenie, że problem dotyczy wspólnej masy na tranzystorze MOSFET i przełącznika. Wszelkie rozwiązania / sugestie są mile widziane.
Komentarze
- czy jesteś w stanie włączyć tranzystor FET przez ciągły pin D9? Bez PWM .. Gdy D9 jest wysoki, czy możesz zmierzyć napięcie na drenu i źródle NMOSFET? Sprawdź napięcie na D2, gdy przełącznik jest zamknięty i otwarty. Zmierz napięcie na D9, gdy wyjście styku D9 jest wysokie. czy możesz podzielić się szczegółami 5 metrowej taśmy LED? Jak zasilasz Arduino? Mam wrażenie, że problem dotyczy 5-metrowego paska LED …
- Spodziewałbym się R2, w pobliżu MOSFET-u, rzędu 100 omów. W przeciwnym razie ' doprowadzisz go do działania. Zmień także minimalne i maksymalne testy z 255 odp. 0 do 250 i 5.
- Nie mówisz, jaki masz problem. Co to robi? | Taśma LED zasila się w zakresie napięcia bliskim 12V. tj. prawdopodobnie jest wyłączony przy około 9V i włączony przy 12V. Więc JEŚLI napięcie na pasku jest analogowe z powodu jakiegokolwiek filtrowania, włączy się poza końcową częścią zakresu PWM. Jeśli obwód jest, jak pokazano, taśma LED powinna modulować włączanie i wyłączanie przy częstotliwości PWM. To POWINNO działać. Obwód, jak pokazano, wygląda dobrze, a kod wydaje się OK, więc możesz nie robić tego, co myślisz. Sprawdź wszystko. | I co to właściwie robi?
- @ Jak mówi Jippie – rezystor bramki MOSFET może być mały 100 omów lub nawet 10 omów OK. 10k, jak pokazano, prawdopodobnie nie jest przyczyną problemów, ale jest zbyt duże.
- TO ' jest NIESAMOWITYM FETEM. Arkusz danych tutaj
Odpowiedź
Myślę, że powinieneś zachować rezystor R2, ale zrób to 1k i umieść przed nim rezystor obniżający 10k, aby wszelkie ładunki przechowywane w pojemności NMOS Cgate były rozładowywane, gdy jest wysokie Z w porcie D9. Nigdy też nie zapominaj o rezystorze ograniczającym prąd przewodzenia diody, który zwykle wynosi 20 mA, ale powinieneś to sprawdzić za każdym razem w arkuszu danych. W przypadku taśmy LED zwykle występują rezystory wewnętrzne, ale jeśli używasz wyższego napięcia, nadal musisz ograniczyć prąd. Czy mógłbyś nam powiedzieć więcej o tym, dlaczego używasz PWM, a nie prostego portu wyjściowego na przykład z integratorem i co dokładnie obserwujesz i mierzysz, kiedy włączasz-wyłączasz (zanikasz-wyłączasz) diodę LED?
symuluj ten obwód – Schemat utworzony przy użyciu CircuitLab
Jak nieco zmniejszyć diagram?
Komentarze
- On ' steruje taśmą o napięciu znamionowym 12 V z wewnętrznymi rezystorami – nie jest wymagana zewnętrzna dioda LED. ' używa PWM, ponieważ chce rozwiązania cyfrowego, a nie analogowego.
- @lalamer Aby skalować diagramy w ESE, musisz je poszerzyć, Robię to przez umieszczenie kropki / segmentu / tekstu po lewej i / lub prawej stronie, aby zmniejszyć cały diagram, działa dobrze.
- @RussellMcMahon tak, masz rację, to jest pasek led i jest wewnętrzny rezystor. Zaktualizowałem moją odpowiedź. Dziękujemy za zaangażowanie.
Odpowiedź
Nie ma potrzeby posiadania 10 kOhm. Tranzystory MOSFET są urządzeniami sterowanymi napięciem, w przeciwieństwie do tranzystorów, które wymagają kontrolowanego prądu. Myślę, że twój problem może dotyczyć odbicia przełącznika. Prawdopodobnie otrzymujesz fałszywe alarmy, które mogą powodować nieprawidłowe działanie oprogramowania. Polecam mieć małą rutynę podbijania. Na przykład – tylko jeśli znajdziesz 3 kolejne pozytywy, naciśnięcie przycisku zostanie nazwane prawdziwym pozytywem lub czymś podobnym.
Komentarze
- Gdy przełącznik jest postrzegany jako aktywny, wykonuje jedną akcję, a następnie opóźnia 30 ms przed ponownym testowaniem, dzięki czemu efektywnie uzyskuje 30 ms odbicia.
- Dobrą praktyką jest posiadanie rezystora połączonego szeregowo z bramką w celu ograniczenia prądu rozruchowego. Pamiętaj, że bramka MOSFET działa jak kondensator i musi być ładowana / rozładowywana.
- Aby to osiągnąć, należy podłączyć bramkę MOSFET-a do masy (w przypadku NMOS). Spowoduje to szybkie rozładowanie pojemności bramki MOSFET. Nie należy też pozostawiać pływającej bramy, ponieważ jest ona podatna na hałas i może się włączyć, powodując duże uszkodzenia. Zawsze opuść bramę NMOS.