Ligne 1 : |
Ligne 1 : |
| {{ARDX-NAV}} | | {{ARDX-NAV}} |
| | | |
− | {{traduction}}
| + | == Ce que nous faisons == |
| + | '''.: Presser le bouton :.''' |
| | | |
− | == Ce que faisons nous ==
| + | '''.: Les boutons poussoirs :.''' |
− | .: Presser le bouton :. | |
− | | |
− | .: Le s boutons poussoirs :.
| |
| | | |
| {{bloc-etroit|text=Jusqu'à maintenant, nous nous sommes entièrement concentrés sur la commande des sorties. Il est désormais temps qu'Arduino entende, regarde et sente. | | {{bloc-etroit|text=Jusqu'à maintenant, nous nous sommes entièrement concentrés sur la commande des sorties. Il est désormais temps qu'Arduino entende, regarde et sente. |
Ligne 75 : |
Ligne 73 : |
| | | |
| {{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 === |
Ligne 83 : |
Ligne 82 : |
| | | |
| == Le code == | | == Le code == |
− | xxx
| + | Pas besoin de taper tout le code, vous pouvez charger le programme d'exemple depuis: |
| + | |
| + | '''Fichier > Exemples > 2.Digital > Button''' |
| + | |
| + | Un fantastique exemple du site Arduino.cc |
| | | |
− | <nowiki>/* code */</nowiki> | + | <nowiki>/* |
| + | * Button |
| + | * by DojoDave <http://www.0j0.org> |
| + | * |
| + | * Allume et éteind une LED connectée sur la pin 13 |
| + | * lorsque l'on presse un bouton poussoir attaché à la pin 7. |
| + | * http://www.arduino.cc/en/Tutorial/Button |
| + | */ |
| + | int ledPin = 13; // La broche choisie pour la LED |
| + | int inputPin = 2; // La broche d'entrée choisie pour le bouton poussoir |
| + | int val = 0; // variable pour lire le statut de la broche |
| + | |
| + | void setup() { |
| + | pinMode(ledPin, OUTPUT); // déclarer la LED comme sortie |
| + | pinMode(inputPin, INPUT);// déclarer le bouton poussoir comme entrée |
| + | } |
| + | |
| + | void loop(){ |
| + | val = digitalRead(inputPin); // Lire la valeur d'entrée |
| + | if (val == HIGH) { |
| + | // vérifier si l'entrée est HIGH (haut) |
| + | digitalWrite(ledPin, LOW); // Eteindre la LED |
| + | } |
| + | else { |
| + | digitalWrite(ledPin, HIGH); // Allumer la LED |
| + | } |
| + | }</nowiki> |
| | | |
| == Cela ne fonctionne pas? == | | == Cela ne fonctionne pas? == |
| Voici 3 choses à essayer. | | Voici 3 choses à essayer. |
− | === xxx 1 === | + | === La LED ne s'allume pas! === |
− | yyyy
| + | Le bouton poussoir est carré. Il est donc très facile de mal le placer. |
| | | |
− | === xxx 2 ===
| + | Tournez le de 90 degrés et voyez si cela fonctionne mieux. |
− | yyyy
| |
| | | |
− | === xxx 3 === | + | === Le contrôle de luminosité ne fonctionne pas === |
− | yyyy
| + | C'est une simple erreur que nous faisons souvent. |
| + | |
| + | Quand nous passons d'un mode allumé/éteint en mode « dimmer », il faut utiliser la pin 9. |
| + | |
| + | === PAs impressionné? === |
| + | Ne vous inquiétez pas, tous ces circuits sont simplifiés au maximum pour faciliter la prise en main des composants. |
| + | |
| + | Mais une fois combinés, la seule limite sera celle de votre imagination. |
| | | |
| == Faire encore mieux == | | == Faire encore mieux == |
− | === zzz 1 === | + | === Un bouton "allumer" et un autre "éteindre" === |
− | zzzz
| + | L'exemple initial est peut-être un peu décevant (Ai-je vraiment besoin d'un Arduino pour faire cela ?), alors rendons le un peu plus compliqué. |
| + | |
| + | Soit utiliser un bouton pour allumer la LED et un autre pour l'éteindre. |
| + | |
| + | Changez le code comme suit : |
| + | |
| + | <nowiki>int ledPin = 13; // La broche/pin pour la LED |
| + | int inputPin1 = 3; // bouton 1 |
| + | int inputPin2 = 2; // bouton 2 |
| + | |
| + | void setup(){ |
| + | pinMode(ledPin, OUTPUT); // LED = sortie |
| + | pinMode(inputPin1, INPUT); // Bouton 1 = entrée |
| + | pinMode(inputPin2, INPUT); // Bouton 2 = entrée |
| + | } |
| + | |
| + | void loop(){ |
| + | if (digitalRead(inputPin1) == LOW) { |
| + | digitalWrite(ledPin, LOW); // Eteindre LED |
| + | } |
| + | else { |
| + | digitalWrite(ledPin, HIGH); // Allumer LED |
| + | } |
| + | }</nowiki> |
| + | |
| + | Chargez le programme sur la carte et allumez/éteignez la LED avec les boutons. |
| + | |
| + | === Contrôler la luminosité == |
| + | Maintenant, utilisons les boutons pour contrôler un signal analogique. Pour y arriver, vous devez connecter la LED |
| + | de la broche 13 à la broche 9 (PWM) mais aussi changer |
| + | le code comme suit : |
| + | |
| + | <nowiki>int ledPin = 13;</nowiki> |
| + | |
| + | vers... |
| + | |
| + | <nowiki>int ledPin = 9;</nowiki> |
| + | |
| + | Et ensuite modifier la fonction {{fname|loop()}} pour y lire. |
| + | |
| + | <nowiki>int value = 0; |
| + | |
| + | void loop(){ |
| + | if (digitalRead(inputPin1) == LOW){ |
| + | value--; |
| + | } |
| + | else |
| + | if (digitalRead(inputPin2) == LOW){ |
| + | value++; |
| + | } |
| + | |
| + | value = constrain(value, 0, 255); |
| + | analogWrite(ledPin, value); |
| + | delay(10); |
| + | }</nowiki> |
| + | |
| + | === Changer le vitesse d'extinction === |
| + | Il y a seulement une ligne de code à changer si vous voulez que la LED s'éteigne plus ou moins rapidement : |
| + | |
| + | <nowiki>delay(10);</nowiki> |
| + | |
| + | vers... |
| + | |
| + | <nowiki>delay(nouvelle_valeur);</nowiki> |
| + | |
| + | Utiliser un nombre plus petit pour {{fname|nouvelle_valeur}} afin d'éteindre plus rapidement ou un nombre plus grand pour une extinction plus lente. |
| | | |
| == Plus, plus et encore plus == | | == Plus, plus et encore plus == |