SIK Experiment Guide for the Arduino 101/Genuino 101 Board (French)
This Tutorial is Retired!
This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.
Expérience 12 : Utiliser le contrôleur de moteur
Introduction
Dans l'expérience précédente, vous avez travaillé avec un servomoteur. Now, we are going to tackle spinning a motor. Pour cela, nous allons utiliser un transistor, qui permet le passage de plus de courant que la carte 101. Le transistor vous permettra d'allumer et d'éteindre un moteur, un peu comme un moteur qui clignote !
Composants nécessaires
Vous aurez besoin des composants suivants :
- 1 plaque Breadboard
- 1 carte Arduino 101 ou Genuino 101
- 1 motoréducteur de rapport 48:1
- 1 résistance 100 Ω
- 1 transistor NPN
- 1 diode 1N4148
- 7 cavaliers
Vous n'avez pas le SIK ?
Pour réaliser cette expérience sans le SIK, nous vous suggérons d'utiliser les composants suivants :
Vous aurez également besoin d'une carte Arduino 101 ou Genuino 101.
Lectures suggérées
Avant de poursuivre cette expérience, nous vous recommandons de vous familiariser avec les concepts des tutoriels suivants :
Présentation du transistor
Le transistor peut être décrit comme un petit interrupteur électronique. Il permet de contrôler des charges de courant de plus forte intensité avec un courant plus faible sans risque de faire griller les composants sensibles. Un transistor possède trois broches : un collecteur, un émetteur et une base. Le courant ne peut traverser le transistor que dans une direction : via le collecteur en sortant par l'émetteur. Pour contrôler le passage du courant, vous devez appliquer un courant faible à la base. Ce courant faible peut être numérique (allumé ou éteint) ou analogique (en utilisant la modulation PWM et la fonction analogWrite()). Le courant de plus forte intensité se basera sur le comportement du courant plus faible.
Branchement du matériel
Vous êtes prêt à tout raccorder ? Consultez le schéma de câblage ci-dessous pour savoir comment faire.
Composants polarisés | Faites particulièrement attention aux marquages indiquant comment placer les composants sur la plaque breadboard, car les composants polarisés ne peuvent être connectés à un circuit que dans une direction. |
Attention : Quand vous construisez le circuit, veillez à ne pas confondre le transistor avec le capteur de température, car ils sont quasiment identiques. Cherchez l'inscription « P2N2222A » sur le transistor.
Schéma de câblage de l'expérience
Qu'est-ce qu'une diode flyback ?
Quand un moteur qui tourne est subitement arrêté, le champ magnétique à l'intérieur du moteur s'effondre, générant une pointe de tension susceptible d'endommager le transistor. Pour empêcher que cela se produise, nous utilisons une « diode flyback », qui détourne la pointe de tension « autour » du transistor. Connectez le côté de la diode avec la bande (cathode) au 5 V l'autre côté de la diode (anode) au fil noir du moteur.
Ouverture du sketch
Ouvrez l'EDI Arduino sur votre ordinateur. Le codage en langage Arduino contrôlera votre circuit. Ouvrez le code du Circuit 11 en accédant au « Code du guide SIK 100 » que vous avez précédemment téléchargé et placé dans votre dossier « Examples ».
Pour ouvrir le code, cliquez sur : File > Examples >101 SIK Guide Code > Circuit_11
Vous pouvez également copier et coller le code suivant dans l'EDI Arduino. Cliquez sur Télécharger et observez ce qu'il se passe.
language:cpp
/*
SparkFun Inventor's Kit
Example sketch 11
SPINNING A MOTOR
Use a transistor to spin a motor at different speeds.
This sketch was written by SparkFun Electronics,
with lots of help from the Arduino community.
This code is completely free for any use.
Visit http://learn.sparkfun.com/products/2 for SIK information.
Visit http://www.arduino.cc to learn more about Arduino.
*/
// constant pin for the transistor connected to the motor
const int motorPin = 9;
void setup()
{
//set motorPin as OUTPUT
pinMode(motorPin, OUTPUT);
}
void loop()
{
// Here we've used comments to disable some of the examples.
// To try different things, uncomment one of the following lines
// and comment the other ones. See the functions below to learn
// what they do and how they work.
motorOnThenOff();
// motorOnThenOffWithSpeed();
// motorAcceleration();
}
// This function turns the motor on and off like the blinking LED.
// Try different values to affect the timing.
void motorOnThenOff()
{
// milliseconds to turn the motor on
int onTime = 3000;
// milliseconds to turn the motor off
int offTime = 3000;
// turn the motor on (full speed)
digitalWrite(motorPin, HIGH);
// delay for onTime milliseconds
delay(onTime);
// turn the motor off
digitalWrite(motorPin, LOW);
// delay for offTime milliseconds
delay(offTime);
}
// This function alternates between two speeds.
// Try different values to affect the timing and speed.
void motorOnThenOffWithSpeed()
{
// between 0 (stopped) and 255 (full speed)
int Speed1 = 200;
// milliseconds for speed 1
int Time1 = 3000;
// between 0 (stopped) and 255 (full speed)
int Speed2 = 50;
// milliseconds to turn the motor off
int Time2 = 3000;
// turns the motor On
analogWrite(motorPin, Speed1);
// delay for onTime milliseconds
delay(Time1);
// turns the motor Off
analogWrite(motorPin, Speed2);
// delay for offTime milliseconds
delay(Time2);
}
// This function slowly accelerates the motor to full speed,
// then back down to zero.
void motorAcceleration()
{
// milliseconds between each speed step
int speed;
int delayTime = 20;
// accelerate the motor
for(speed = 0; speed <= 255; speed++)
{
// set the new speed
analogWrite(motorPin,speed);
// delay between speed steps
delay(delayTime);
}
// decelerate the motor
for(speed = 255; speed >= 0; speed--)
{
// set the new speed
analogWrite(motorPin,speed);
// delay between speed steps
delay(delayTime);
}
}
Ce que vous devez voir
Le moteur CC doit tourner si vous avez assemblé correctement les composants du circuit et vérifié/téléchargé le code correct. Si votre circuit ne fonctionne pas, consultez la section Dépannage.
Dépannage
Le moteur ne tourne pas
Si vous avez acheté votre transistor, vérifiez sur la fiche technique que le brochage est compatible avec le transistor que vous utilisez (beaucoup sont inversés).
Le problème persiste
Si vous avez acheté votre moteur, vérifiez qu'il fonctionne avec 5 volts et qu'il ne consomme pas trop de courant.
Ne fonctionne toujours pas
Il arrive que la carte Arduino se déconnecte de l'ordinateur. Essayez de la débrancher puis de la rebrancher au port USB.