Ligne 1 : |
Ligne 1 : |
| {{ARDX-NAV}} | | {{ARDX-NAV}} |
| | | |
− | {{traduction}}
| + | == Ce que nous faisons == |
− | | |
− | == Ce que faisons nous == | |
| {{bloc-etroit|text=Les sorties d'Arduino sont géniales pour contrôler directement de petits éléments électriques tels que des LEDs. | | {{bloc-etroit|text=Les sorties d'Arduino sont géniales pour contrôler directement de petits éléments électriques tels que des LEDs. |
| | | |
Ligne 20 : |
Ligne 18 : |
| | | |
| {{ARDX-composant | | {{ARDX-composant |
− | |label=Fiche de montage CIRC-01 | + | |label=Fiche de montage CIRC-03 |
| |label2=x1 | | |label2=x1 |
| |img=ARDX-circ-sheet.png | | |img=ARDX-circ-sheet.png |
Ligne 69 : |
Ligne 67 : |
| | | |
| {{ARDX-composant-end}} | | {{ARDX-composant-end}} |
| + | Tous ces éléments sont disponibles dans [http://shop.mchobby.be/product.php?id_product=11 le Kit Ardx proposé sur shop.mchobby.be]. |
| | | |
| === Schéma === | | === Schéma === |
− | [[Fichier:circ13-schema.png|250px]] | + | [[Fichier:circ03-schema.png|250px]] |
| | | |
| === Montage === | | === Montage === |
− | [[Fichier:cir13-montage.png|800px]] | + | [[Fichier:cir03-montage.png|800px]]<br />.: NOTE: Si votre Arduino se réinitialise, vous aurez alors besoin de placer la capacité optionnelle :. |
| | | |
| == Le code == | | == Le code == |
− | xxx
| + | Pas besoin de taper tout le code, vous pouvez le télécharger depuis [http://ardx.org/CODE03 ardx.org/CODE03] et faire un copier/coller dans votre croquis. |
| + | |
| + | |
| + | <nowiki>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); |
| | | |
− | <nowiki>/* code */</nowiki>
| + | 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 |
| + | } |
| + | } |
| + | </nowiki> |
| | | |
| == Cela ne fonctionne pas? == | | == Cela ne fonctionne pas? == |
| Voici 3 choses à essayer. | | Voici 3 choses à essayer. |
− | === xxx 1 === | + | === Le moteur ne tourne pas? === |
− | yyyy
| + | 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) |
| | | |
− | === xxx 2 === | + | === Toujours pas de chance? === |
− | yyyy
| + | 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) |
| | | |
− | === xxx 3 === | + | === Cela ne fonctionne toujours pas? === |
− | yyyy
| + | 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 == | | == Faire encore mieux == |
− | === zzz 1 === | + | === Contrôler la vitesse === |
− | zzzz
| + | 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 |
| + | <nowiki>// motorOnThenOff(); |
| + | motorOnThenOffWithSpeed(); |
| + | // motorAcceleration();</nowiki> |
| + | 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 ; |
| + | <nowiki>// motorOnThenOff(); |
| + | // motorOnThenOffWithSpeed(); |
| + | motorAcceleration();</nowiki> |
| + | |
| + | 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 {{fname|delayTime}} (une plus grande valeur implique une accélération plus lente) |
| | | |
| == Plus, plus et encore plus == | | == Plus, plus et encore plus == |
− | Plus d'information, où poser vos autres questions: | + | Plus d'information, où poser vos autres questions: [http://ardx.org/CIRC03 ardx.org/CIRC03] (''anglais'') |
− | | |
− | [http://ardx.org/CIRC13 ardx.org/CIRC13] (''anglais'') | |
| | | |
| == Internet == | | == Internet == |
| === .:téléchargement:. === | | === .:téléchargement:. === |
− | LA fiche de montage est disponible sur .... | + | LA fiche de montage est disponible sur [http://ardx.org/BBLS03 ardx.org/BBLS03] |
| | | |
| === .: Vidéo :. === | | === .: Vidéo :. === |
− | La vidéo du montage est disponible sur [http://ardx.org/VIDE13 ardx.org/VIDE13] (''anglais'') | + | La vidéo du montage est disponible sur [http://ardx.org/VIDE03 ardx.org/VIDE03] (''anglais'') |
| | | |
| {{ARDX-TRAILER}} | | {{ARDX-TRAILER}} |