MOSFET диммер с ИК-управлением
Я пытаюсь подключить группу светодиодов с ШИМ к MOSFET. Код, похоже, работает для этого, но проблема в том, что ИК-приемник будет получать только сигнал о включении света, а затем встроенный светодиод ИК-приемника переходит в постоянное тусклое состояние (которое предположительно полностью выключено). Затем он отказывается принимать входные данные до тех пор, пока не будет выполнен сброс Arduino. Я купил еще один ИК-приемник и поместил его в ту же конфигурацию, и он работал точно так, как предполагалось. Я мог сделать светодиоды ярче, и я видел, как ШИМ растягивается на моем осциллографе с каждым щелчком моего пульта дистанционного управления. Проблема в том, что приемник быстро перестал работать, в этот момент я думаю, что проблема в моей схеме. Я прилагаю принципиальную схему в надежде, что кто-то может помочь.
Спасибо, Билла
#include <IRremote.h>
int led = 9;
int led2 = 10;
int brightness = 0; // насколько яркий светодиод
const int RECV_PIN = 7; //Контакт ИК-приемника
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
// объявляем вывод 9 выходом:
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
analogWrite(led, brightness);
analogWrite(led2, brightness);
if(irrecv.decode(&results)) // это проверяет, был ли получен код
{
if(results.value == 0xFF906F) //если нажатие кнопки равно шестнадцатеричному значению 0xC284
{
Serial.println("Triggered U");
brightness = brightness + 5;
}
if(results.value == 0xFFE01F) //если нажатие кнопки равно шестнадцатеричному значению 0xC284
{
Serial.println("Triggered D");
brightness = brightness + 5;
}
irrecv.resume(); //получаем следующее значение
}
delay(100);
}
@Billathekilla, 👍0
Обсуждение1 ответ
Лучший ответ:
Первая ошибка, которую я вижу в скетче, находится прямо под этой строкой кода Serial.println("Triggered D");
. Вы увеличиваете переменную brightness
, хотя, вероятно, хотели уменьшить ее.
Вторая ошибка связана с вашим вызовом analogWrite()
. Эта функция принимает целое число
от 0 до 255. Вы не ограничиваете значение в этот диапазон и увидеть, что я имею в виду, добавив эту строку кода Serial.println(brightness);
прямо над этой строкой irrecv.resume();
в вашем скетче. При изменении от 0 до -5 светодиод выключается до максимальной яркости. Вы этого хотите?
Ошибки с вашей схемой MOSFET относятся к категории General Electronics и должны быть заданы на сайте electronics.stackexchange.com. Как я упоминал в одном из своих комментариев к вашему вопросу, рекомендуется формат для рисования схем.
Другой мой комментарий касался этого вопроса и ответа на EE. Вы также не найдете единого мнения о том, как именно использовать MOSFET, но изображение в этом ответе может быть полезным для вас.
Спасибо за помощь. Я попробовал решение для звонков, но безуспешно. Я перенесу свой вопрос в General Electronics и посмотрим., @Billathekilla
- Использование ИК-пульта с Arduino
- Использование VS1838B с Arduino
- Tone() конфликтует с библиотекой IRremote (множественное определение `__vector_7')
- Как остановить вращение сервопривода?
- 74HC595 регистр сдвига не работает
- Arduino IRremote перестает работать
- KY-022 ИК-приемник, светодиод всегда горит, нет выхода
- ИК приемник принимает только 0
Что такое приемник?, @Majenko
это конечно уродливая схема, @jsotola
какой номер мосфета? почему между ардуино и мосфетом нет резистора?, @ElectronSurf
Я не думаю, что резистор между Arduino и MOSFET действительно необходим, поскольку MOSFET обычно имеет очень маленькую емкость. Но токоограничивающий резистор для светодиодов не помешал бы., @chrisl
@jsotola Вот что вы получаете, используя Fritzing..., @Majenko
@chrisl Вероятно, это светодиодные ленты со встроенными резисторами (поскольку они питаются от 12 В). Также светодиоды перевернуты, но мы пропустим это ;), @Majenko
@newbie Резистор строго не нужен. Обычно я добавляю резистор 100 Ом только для ограничения пускового тока на затвор при переключении, но тогда я обычно использую более мощные микроконтроллеры с более низким номинальным током на каждом выводе, чем 8-битный AVR., @Majenko
Приемник представляет собой цифровой инфракрасный приемник MagicW 38 кГц. Номер детали MOSFET — P30NO6LE. Я также добавил код внизу. Извините за кривую схему. Если есть рекомендуемый формат для схем Stack Exchange, я был бы рад переделать его в более читаемом формате., @Billathekilla
@ZackGarris - рекомендуемый формат для рисования схем: https://electronics.stackexchange.com/questions/28251/rules-and-guidelines-for-drawing-good-schematics, @VE7JRO
Вопрос о резисторе затвора MOSFET: https://electronics.stackexchange.com/questions/68748/question-about-mosfet-gate-resistor, @VE7JRO
@ VE7JRO Итак, вы думаете, что это может быть вызвано звоном (паразитные колебания)?, @Billathekilla