почему p-mos действует как постоянный переключатель, когда источник подключен к любому порту в схеме? Я не могу найти решение?
если в моей схеме есть ошибка, пришлите мне правильное изображение.
#define pwm 6
void setup() {
// инициализируем последовательную связь со скоростью 9600 бит в секунду:
pinMode(6,OUTPUT);
Serial.begin(9600);
}
// процедура цикла выполняется снова и снова навсегда:
void loop() {
// прочитать ввод на аналоговом выводе 0:
int sensorValue = analogRead(A0);
//Serial.println(sensorValue);
// Преобразование аналогового показания (от 0 до 1023) в напряжение (0-5 В):
float voltage = sensorValue * (5.0 / 1023.0);
//Serial.println(напряжение);
float vol1=voltage*11;
Serial.print("convertd voltageg ");
Serial.println(vol1);
int s=0;
if (vol1>24){
float duty=(24)/(vol1);
Serial.print("Duty cycle ");
duty=duty*100;
Serial.println(duty);
s=map(duty,0,100,0,255);
Serial.print("maped values");
Serial.println(s);
analogWrite(6,s);}
else if(vol1>18 && vol1<25){
s=255;
analogWrite(6,s);
Serial.println(s);
}
//Серийный.println(x);
}
@datta sahu, 👍-1
Обсуждение2 ответа
Вы должны быть осторожны с такой схемой, потому что вы рискуете подать 12 вольт на контакт Arduino. Чтобы выключить этот P-канальный MOSFET, на затвор необходимо подать 12 вольт. Найдите "переключатель верхней стороны MOSFET". В обычных решениях используется как MOSFET с каналом P, так и транзистор npn или MOSFET с каналом N. Более простой альтернативой является переключение двигателя с помощью N-канального МОП-транзистора (переключатель низкой стороны). Полное описание см. на https://gammon.com.au/motors.
Примечание: похоже, что использованная вами схема взята отсюда https: //circuitjournal.com/how-to-use-ap-channel-mosfet-with-an-arduino и является особенно рискованным, поскольку основан на заземлении между 5-вольтовыми и 12-вольтовыми цепями, которые не соединены между собой. Это может работать, как показано, но не рекомендуется по причинам, изложенным выше, но в вашей симуляции источник питания на 12 В не имеет общей положительной шины с источником питания на 5 В.
Arduino, когда на выходе высокий уровень, составляет ~ 5 В. Затвор MOSFET видит его как -7 В, относящийся к источнику. Всегда лучше использовать источник в качестве точки отсчета для MOSFET. Посмотрите на лист данных, и он показывает, что он делает то, что делает. Затвор должен быть около 0 В, ссылаясь на источник, чтобы быть выключенным. Точное значение зависит от используемого МОП-транзистора. Вам нужно будет добавить транзистор или МОП-транзистор для управления P-канальным МОП-транзистором с помощью Arduino. Вы также можете использовать оптоизолятор для переключения MOSFET.
- Проблемы с ШИМ и подключением прерываний
- Контролировать ток 48 вольт и 30 ампер с помощью ШИМ-сигнала - какие компоненты необходимы для этого
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Как устранить шум от вентилятора 12 В с ШИМ-управлением на низкой скорости
- Генерация частоты ШИМ выше 125 кГц с помощью Arduino Uno
- Увеличить разрядность PWM
- Как вывести истинное аналоговое напряжение на выходной контакт
- ПИД-регулятор для управления скоростью двигателя
Прочтите [MOSFET как переключатель](https://www.electronics-tutorials.ws/transistor/tran_7.html)., @hcheung
ДВ и ВТК. Ваш вопрос не об Arduino, и его следует перенести на EE., @VE7JRO
Является ли здесь стандартной практикой отрицать ответ просто потому, что считается, что вопрос относится к другому месту? Я бы подумал, что любое голосование против ответа должно сопровождаться конкретным комментарием, указывающим, насколько ответ является фактическим или иным образом неверным., @6v6gt