Problème avec la PWM

Bonjour,
Je souhaiterais faire varier la vitesse de rotation d'un ventilateur (ancien ventilateur de pc, 4 pin, 808025mm) grâce à une broche PWM de mon Arduino Uno, comme on peut faire varier la luminosité d'une led.

Pour des raison de facilité j'ai cherché un code tout fait sur internet et j'ai trouvé celui-ci :

http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoInitiationImpulsionVarierLuminositeLED

J'ai donc arrangé le code à ma manière de façon à ce qu'il soit plus lisible. J'obtiens donc ceci :

Code N°1

int ventil = 3;
int i = 0;

void setup()   
{
  pinMode(ventil, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  for (i=0; i<=255; i++)
    {
      analogWrite(ventil, i); 
      delay(10);
      Serial.println(i);
    }

    delay(1000);

  for (i=0; i<=255; i++)
    {
      analogWrite(ventil,255-i);
      delay(10);
      Serial.println(i);
    }
}

Je le téléverse sur la carte Arduino et cela fonctionne très bien.

Ensuite, j'ai voulu retaper ce code sur un autre croquis. Donc ça donne cela :

Code N°2

int ventil = 3;
int i = 0;

void setup() 
{
  pinMode(ventil, OUTPUT);
  Serial.begin(9600);
}

void loop() 
{
  for(i=0;i<255;i++)
    {
      digitalWrite(ventil, i);
      delay(10);
      Serial.println(i);
    }
   
    delay(1000);
  
  for(i=0;i<255;i++)
    {
      digitalWrite(ventil, 255-i);
      delay(10);
      Serial.println(i);
    }
}

On peut remarquer que les deux codes sont identiques. Or celui que j'ai retapé, une fois téléverser, ne fonctionnes pas, le ventilateur tourne en continue avec du 5V.

Pour le câblage l'alimentation du ventilateur est directement branchée sur la broche n°3 de la carte Arduino et le GND du ventilateur directement sur le GND de la carte Arduino.

Pouvez vous éclaircir ce problème sur le quel je bloque, car les deux codes sont identiques.

Non, dans le premier sketch : analogWrite
Dans le deuxième : digitalWrite

Normal que cela ne fonctionne pas.

Attention: danger !
Combien consomme le ventilateur ?
Quelle tension nominale ?

Ahh oui effectivement, mais je pensais que analogwrite était réservé que pour les broches analogiques de l'arduino.

Pour le ventilateur je ne sais pas vraiment, derrière il est marqué "DC12V 0.45A" donc logiquement le ventilateur consomme 5.4W

Est-ce un ventilateur 12V. Comme il s'agit d'un ventilateur de PC, je suppose que oui.

Combien consomme t-il ?

Pour le haut de gamme : 1W, donc environ 100mA
Même sous 5V il consommera quand même 50mA.

Incompatible avec la sortie d'un ARDUINO (40mA maxi, et encore en étant prêt à accepter une tension réduite à 4V).