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.

Pages
Contributors: D___Run___
Favorited Favorite 0

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 :

Breadboard - Self-Adhesive (White)

Breadboard - Self-Adhesive (White)

PRT-12002
$5.50
48
Hobby Gearmotor - 140 RPM (Pair)

Hobby Gearmotor - 140 RPM (Pair)

ROB-13302
$5.50
6
Jumper Wires - Connected 6" (M/M, 20 pack)

Jumper Wires - Connected 6" (M/M, 20 pack)

PRT-12795
$2.10
2
Transistor - NPN, 50V 800mA (BC337)

Transistor - NPN, 50V 800mA (BC337)

COM-13689
$0.55

Zener Diode - 5.1V 1W

COM-10301
Retired

Resistor 100 Ohm 1/4th Watt PTH - 20 pack

COM-13761
Retired

Vous aurez également besoin d'une carte Arduino 101 ou Genuino 101.

Arduino 101

DEV-13787
9 Retired

Genuino 101

DEV-13984
Retired

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

alt text

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.

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

alt text

Pour agrandir le circuit, cliquez sur le schéma.

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.

alt text

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.