Supongo que es para un sistema de prueba de inyectores; porque como seguramente sabes, para usarlo en un motor propiamente, se debe activar al ángulo exacto de rotación; y que esta señal PWM pueda variar dinámicamente su frecuencia (régimen motor) y ciclo de trabajo (acelerador).
Suena complicado, y es por eso que asumiré que es un sistema de prueba de inyectores.
Si dices que lo único que hace es quedarse abierto, es porque la señal del PWM trabaja a una frecuencia demasiado alta (posiblemente está conmutando a 490 hz, lo cual no es tolerable para un solenoide de este tipo).
Veo que trabajas con el pin 11, entonces puedes hacer lo siguiente para bajar la frecuencia del PWM a 30 hz (una frecuencia aceptable):
Coloca este pedazo de código al final:
void setPwmFrequency(int pin, int divisor) {
// A function that modifies the PWM frequency of the specified pin.
// Taken from http://playground.arduino.cc/Code/PwmFrequency
byte mode;
if (pin == 5 || pin == 6 || pin == 9 || pin == 10) {
switch (divisor) {
case 1: mode = 0x01; break;
case 8: mode = 0x02; break;
case 64: mode = 0x03; break;
case 256: mode = 0x04; break;
case 1024: mode = 0x05; break;
default: return;
}
if (pin == 5 || pin == 6) {
TCCR0B = TCCR0B & 0b11111000 | mode;
} else {
TCCR1B = TCCR1B & 0b11111000 | mode;
}
} else if (pin == 3 || pin == 11) {
switch (divisor) {
case 1: mode = 0x01; break;
case 8: mode = 0x02; break;
case 32: mode = 0x03; break;
case 64: mode = 0x04; break;
case 128: mode = 0x05; break;
case 256: mode = 0x06; break;
case 1024: mode = 0x7; break;
default: return;
}
TCCR2B = TCCR2B & 0b11111000 | mode;
}
}
Añade al setup, la siguiente línea de código:
setPwmFrequency(inj, 1024);
Y así ya debería funcionar (aunque 30 conmutaciones por segundo aún así podría sonar muy rápido).
Un último detalle: deberías colocar un "diodo de protección" a la salida de corriente al inyector, ya que este al ser un tipo de solenoide, funciona con bobina; y esta podría provocar picos de voltaje de hasta 40v. Si tu MOSFET no soporta semejante voltaje, acabarías matándolo.