ARDX-Montages-CIRC03
Ce que nous faisons
Les sorties d'Arduino sont géniales pour contrôler directement de petits éléments électriques tels que des LEDs.
Cependant, lorsque l'on s'attaque à de plus gros composants (tels qu'un moteur de jouet ou de machine à laver), un transistor complémentaire est alors nécessaire. Un transistor est incroyablement utile. Il commute une grande quantité de courant en utilisant une quantité de courant bien plus petite.
Un transistor à 3 broches. Pour un transistor de type négatif (NPN), vous connectez la charge au collecteur et l'émetteur à la masse. Alors, lorsqu'un petit courant circulera de la base à l'émetteur, un courant circulera à travers le transistor et votre moteur tournera (cela se produira lorsque nous mettrons la pin de notre Arduino à HIGH).
Il y a littéralement des centaines de type de transistors, permettant de répondre à la perfection à chaque situation. Nous avons choisit le P2N2222AG, un transistor communément utilisé dans de nombreuses applications. Les facteurs importants dans notre cas sont la tension maximale (40 volts) et le courant maximum (600 milliampères) qui sont tous deux largement suffisant pour notre moteur de jouet (plus de détails sur sa fiche technique ardx.org/2222).
La diode 1N4001 est utilisé comme diode anti-retour (aussi dit "en roue libre") pour plus de détails sur la raison de sa présence, visitez: ardx.org/4001(anglais)
Le montage
Le matériel nécessaire
2 Pin header
x4
Transistor P2N2222AG (TO92)
x1
Moteur de jouet
x1
Diode (1N4001)
x1
Résistance de 2.2 KOhms (rouge-rouge-rouge)
x1
Tous ces éléments sont disponibles dans le Kit Ardx proposé sur shop.mchobby.be.
Schéma
Montage
.: NOTE: Si votre Arduino se réinitialise, vous aurez alors besoin de placer la capacité optionnelle :.
Le code
Pas besoin de taper tout le code, vous pouvez le télécharger depuis ardx.org/CODE03 et faire un copier/coller dans votre croquis.
int motorPin = 9; //Pin de raccordement du moteur void setup() //Exécuté une seule fois { void setup() //Exécuté une seule fois } void loop() // Exécuté encore et encore { motorOnThenOff(); //motorOnThenOffWithSpeed(); //motorAcceleration(); } /* * motorOnThenOff() - allume puis éteint le moteur * (note : ce code est identique à celui de la * LED clignotant) */ void motorOnThenOff(){ int onTime = 2500; //temps allumé int offTime = 1000; //temps éteint digitalWrite(motorPin, HIGH); // Allume le moteur delay(onTime); // Attend onTime ms digitalWrite(motorPin, LOW); // Eteind le moteur delay(offTime); // Attend offTime ms } /* * motorOnThenOffWithSpeed() - contrôle du moteur * avec gestion de la vitesse. */ void motorOnThenOffWithSpeed(){ int onSpeed = 200;// Nombre de 0 (arrêt) à 255 int onTime = 2500; int offSpeed = 50;// Nombre de 0 (arrêt) à 255 int offTime = 1000; analogWrite(motorPin, onSpeed); // Alimenter le moteur delay(onTime); // Attend onTime millisecondes analogWrite(motorPin, offSpeed); // Eteint le moteur delay(offTime); // Attend offTime ms } /* * motorAcceleration() - Accélération/décélération du * moteur. */ void motorAcceleration(){ int delayTime = 50; // temps entre deux modification de vitesse //boucle toutes les vitesses de 0 à 255 for(int i = 0; i < 256; i++){ //assigne la nouvelle vitesse analogWrite(motorPin, i); delay(delayTime); // attends delayTime ms } //boucle toutes les vitesses de 255 à 0 for(int i = 255; i >= 0; i--){ //assigne la nouvelle vitesse analogWrite(motorPin, i); delay(delayTime); //Attend delayTime ms } }
Cela ne fonctionne pas?
Voici 3 choses à essayer.
Le moteur ne tourne pas?
Si vous avez utilisé votre propre transistor, vérifiez à l'aide de sa fiche technique que le brochage est compatible avec le P2N2222AG (beaucoup utilisent des brochages inversés)
Toujours pas de chance?
Si vous avez utilisé votre propre transistor, vérifiez à l'aide de sa fiche technique que le brochage est compatible avec le P2N2222AG (beaucoup utilisent des brochages inversés)
Cela ne fonctionne toujours pas?
Il arrive que la carte Arduino se déconnecte de votre ordinateur.
Essayez de déconnecter et de reconnecter la prise USB.
Faire encore mieux
Contrôler la vitesse
Précédemment, nous avons joué avec la possibilité qu'Arduino avait de contrôler la luminosité d'une LED.
Maintenant, nous allons utiliser cette même capacité pour contrôler la vitesse de notre moteur. Arduino fait cela en utilisant une technique appelée « modulation de longueur d'impulsion » (PWM). Cela s'appuie sur la capacité qu'à Arduino à fonctionner vraiment-vraiment rapidement.
Plutôt que de contrôler directement la tension de sortie d'une broche, Arduino va activer et désactiver la broche très rapidement. Dans le monde informatique c'est passer de 0 à 5 volts plusieurs fois par secondes, mais dans notre monde humain, nous percevons cela comme une tension.
Par exemple si un Arduino module à 50% nous voyons la LED éclairée à 50% parce que nos yeux ne sont pas assez rapides pour voir qu'elle s'allume et s'éteint constamment.
Vous ne le croyez pas ? Alors essayez le.
Changer la fonction loop() comme suit
// motorOnThenOff(); motorOnThenOffWithSpeed(); // motorAcceleration();
Ensuite charger le programme. Vous pouvez modifier les vitesses en modifiant les variables onSpeed et offSpeed.
Accélérer et décélérer
Pourquoi s'arrêter à deux vitesses ? Pourquoi ne pas accélérer et décélérer la vitesse du moteur ?
Pour ce faire, il suffit de changer la fonction loop() pour y lire ;
// motorOnThenOff(); // motorOnThenOffWithSpeed(); motorAcceleration();
Chargez ensuite le programme et regardez votre moteur accélérer lentement jusqu'à plein régime puis ralentir.
Si vous voulez modifier l'accéleration, modifiez la variable delayTime (une plus grande valeur implique une accélération plus lente)
Plus, plus et encore plus
Plus d'information, où poser vos autres questions: ardx.org/CIRC03 (anglais)
Internet
.:téléchargement:.
LA fiche de montage est disponible sur ardx.org/BBLS03
.: Vidéo :.
La vidéo du montage est disponible sur ardx.org/VIDE03 (anglais)
Tutoriel/Manuel traduit par Meurisse D. pour MCHobby.be licence Creative Commons BY-SA.
Crédit de traduction
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant :
« Traduction par MCHobby (shop.MCHobby.be) - Vente de kit et composants » et ce quelque soit le média utilisé.
Utilisation commerciale
L'utilisation commercial de cette traduction (y compris sur site produisant des revenus par l'intermédiaire de publicité), même partielle, est soumise à redevance (license fee).
Le présent manuel a été traduit et autorisé à la vente avec l'aimable autorisation conjointe de Oomlout (www.oomlout.com) et d'AdaFruit (www.adafruit.com).
Produit sous licence Creative Commons BY-SA License and available for download: ardx.org/src/