Усиление ШИМ
- Войдите на сайт для отправки комментариев
Втр, 29/05/2018 - 17:26
Дано: arduino nano, ec-вентилятор embpast и блок питания на 40 вольт. Подключено по схеме
Резистор 420 Ом, транзистор bc547a. С ардуино подаю шим
void setup() { // ШИМ 8 разрядов 7 812,5 Гц TCCR1A = TCCR1A & 0xe0 | 1; TCCR1B = TCCR1B & 0xe0 | 0x0a; // открываем последовательный порт Serial.begin(9600); } void loop() { analogWrite(9, 25); // на выводе 9 ШИМ=10% Serial.print("На выводе 9 ШИМ=10%\r\n"); delay(10000);//задержка 10 секунд analogWrite(9, 50); // на выводе 9 ШИМ=20% Serial.print("На выводе 9 ШИМ=20%\r\n"); delay(10000);//задержка 10 секунд analogWrite(9, 75); // на выводе 9 ШИМ=30% Serial.print("На выводе 9 ШИМ=30%\r\n"); delay(10000);//задержка 10 секунд analogWrite(9, 100); // на выводе 9 ШИМ=40% Serial.print("На выводе 9 ШИМ=40%\r\n"); delay(10000);//задержка 10 секунд analogWrite(9, 125); // на выводе 9 ШИМ=50% Serial.print("На выводе 9 ШИМ=50%\r\n"); delay(10000);//задержка 10 секунд analogWrite(9, 150); // на выводе 9 ШИМ=60% Serial.print("На выводе 9 ШИМ=60%\r\n"); delay(10000);//задержка 10 секунд analogWrite(9, 175); // на выводе 9 ШИМ=70% Serial.print("На выводе 9 ШИМ=70%\r\n"); delay(10000);//задержка 10 секунд analogWrite(9, 200); // на выводе 9 ШИМ=80% Serial.print("На выводе 9 ШИМ=80%\r\n"); delay(10000);//задержка 10 секунд analogWrite(9, 225); // на выводе 9 ШИМ=90% Serial.print("На выводе 9 ШИМ=90%\r\n"); delay(10000);//задержка 10 секунд analogWrite(9, 255); // на выводе 9 ШИМ=100% Serial.print("На выводе 9 ШИМ=100%\r\n"); delay(10000);//задержка 10 секунд }
На 20% на базе транзистора имеем такую картинку
А на управляющем входе такую
т.е. уже 80%. Собственно вопрос, как сделать чтобы шим не инвертировался и почему так происходит?
меряете на управляющем ВЫХОДЕ ? наверное относительно земли
меряйте непосредственно на нагрузке.
транзистор вы выбрали не удачный, не знаю сколько там вентелятор жрет, но транзистор всего на 100 мА.
бабахнуть может !
да лучше схему приложите, еще чего всплывет...
почему так происходит?
Схемы никто не видел, но шар говорит, что происходит это потому, что Вы включили транзистор по схеме с общим эмиттером - т.е. собрали инвертирующий усилитель.
Собственно вопрос, как сделать чтобы шим не инвертировался
Опять же, нет ни схемы ни толкового объяснения задачи. Шар говорит, что Вам на самом деле не надо ничего делать, и так нормально (Вам уже посоветовали мерять напряжение на нагрузке, а не от земли). Но если надо ... сначала хотелось бы понимать задачу.
Опять же, нет ни схемы ни толкового объяснения задачи. Шар говорит, что Вам на самом деле не надо ничего делать, и так нормально (Вам уже посоветовали мерять напряжение на нагрузке, а не от земли). Но если надо ... сначала хотелось бы понимать задачу.
Была картинка, честное слово)
Понятно. ну, если Вам лень нарисовать схему для решения СВОЕЙ проблемы, то мне, знаете как-то, тем более лень, напрягаться ради решения ВАШЕЙ проблемы. Видать, не особо-то оно Вам и нужно, а мне тем более.
У него там управляемый модуль похоже и варианты управления к нему, других схем просто нет.
cheeps, попробуйте просто инвертировать ШИМ
analogWrite(9, (255-25));
// на выводе 9 ШИМ=10%
11
Serial
.print(
"На выводе 9 ШИМ=10%\r\n"
);
12
delay(10000);
//задержка 10 секунд
13
analogWrite(9,(255- 50));
// на выводе 9 ШИМ=20%
14
Serial
.print(
"На выводе 9 ШИМ=20%\r\n"
);
и т.д
С инвертированием програмно понятно.