Arduino : UNL2004A & moteur à courant continu

Arduino & UNL2004AComme promis, je vous explique comment utiliser un UNL2004A avec un Arduino et un moteur continu : autrement dit, faire tourner un moteur à courant continu sans prise de tête. L’UNL2004A est un darlington qui va nous servir à piloter le moteur. Il fera office de relais entre l’Arduino (partie commande) et le moteur (partie puissance). Il y a 7 sorties. Chaque sortie est évaluée à 500 mA et peut résister à un pic de 600 mA. L’UNL2004A peut supporter une tension de 50V et intègre des diodes de roues libres.

Il s’agit d’un transistor qui va nous permettre de moduler la tension aux bornes du moteur. Cela va nous permettre de faire varier la vitesse du moteur. Ainsi, nous pouvons également utiliser un UNL2003A.

Premièrement, il faut rassembler les composants suivants :

  • Arduino
  • Platine d’essai
  • Fils
  • Moteur à courant continu
  • UNL2004A ou UNL2003A
  • Alimentation continue inférieure à 20V CC

Deuxièmement, il faut faire un schéma. Je vous conseille vivement de toujours faire un petit schéma électrique, cela vous évitera bien des ennuis.

Troisièmement, il faut faire le câblage de vos composants :

  • Commencer par la partie commande, c’est-à-dire Arduino => UNL2004A
  • Ne jamais alimenter le tout avant d’avoir fini le câblage
  • Prendre la peine de vérifier tous les branchements.

Commençons par câbler :  

schema du montage

unl2004+arduino_scéma

Schéma de câblage du montage Arduino + moteur DC + UNL2004A

Pour animer tout ça, vous devez injecter un programme dans votre Arduino. Le programme consiste à faire démarrer le moteur progressivement jusqu’à sa valeur maximale. Ensuite, décélérer jusqu’à sa valeur minimale.

Voici le code à injecter dans l’Arduino :

 

// on declare les variables

int moteur = 3;
int repet = 0;
// On configure le moniteur serie
void setup() { 
Serial.begin(9600);
pinMode(moteur, OUTPUT); 
}

// On programme la boucle loop
void loop() {
int tour =40;

Serial.println("debut normal");
while (tour < 254)

{
analogWrite(moteur, tour); 
delay(1000);

tour = tour+10;
Serial.println(tour);
} 
int tourinverse = 255;
Serial.println("debut inverse");

while (tourinverse > 40)

{

analogWrite(moteur, tourinverse); 
delay(1000);

tourinverse = tourinverse-10;
Serial.println(tourinverse);
} 
Serial.println("fin inverse");
}
Code moteur

Voici le résultat en images :


Arduino & UNL2004A


One Response

  1. Attoumane Attoumane

    at |

    Merci pour votre aide. Comment envoyer le nombre de tour/min au moniteur série et recevoir le nombre de bit (0,255).Demande une aide pour la programmation.Merci d’avance!

    Reply

Laisser un commentaire