Publicité
Ceci est la prochaine partie de notre série d'apprentissage Arduino, et cette fois nous? Je vais apprendre et utiliser Tableaux pour faire une petite décoration d'arbre de Noël avec diverses séquences clignotantes. Ce serait un projet idéal pour garder les enfants occupés si vous souhaitez leur enseigner la soudure de base - il suffit de monter les LED sur un morceau de carte, et vous pouvez obtenir l'alimentation d'une batterie 9v standard.
C'est aussi une leçon clé dans la programmation Arduino pour débutants, bien que si vous ne prévoyez pas réellement de l'utiliser comme ornement, je vous suggère fortement de le mettre en place de toute façon.
Remarque: Il s'agit d'un tutoriel de niveau très débutant et nous avons certainement gagné? t ouvrir une nouvelle voie - il? s? juste un appareil pour enseigner les concepts d'utilisation Tableaux et Pour les boucles pour faire face à un grand nombre de LED (ou d'autres périphériques de sortie).
Si vous ne l'avez pas? Déjà, le moment serait venu de suivre les autres articles de la série:
- Qu'est-ce que l'Arduino et que pouvez-vous faire avec Qu'est-ce que l'Arduino et que pouvez-vous en faire?L'Arduino est un remarquable petit appareil électronique, mais si vous n'en avez jamais utilisé auparavant, quels sont-ils exactement et que pouvez-vous en faire? Lire la suite ?
- Qu'est-ce qu'un kit de démarrage Arduino et que contient-il? Qu'est-ce qui est inclus dans un kit de démarrage Arduino? [MakeUseOf explique]J'ai déjà présenté le matériel open-source Arduino ici sur MakeUseOf, mais vous allez avoir besoin de plus que le véritable Arduino pour en construire quelque chose et commencer réellement. Les "kits de démarrage" Arduino sont ... Lire la suite
- Plus de composants sympas à acheter avec votre kit de démarrage 8 composants plus cool pour vos projets ArduinoDonc, vous songez à obtenir un kit de démarrage Arduino, mais vous vous demandez si certaines LED et résistances de base suffiront à vous tenir occupé pour le week-end? Probablement pas. Voici encore 8 ... Lire la suite
- Prise en main de votre kit de démarrage Arduino? Installation des pilotes et configuration de la carte et du port Prise en main de votre kit de démarrage Arduino - Installation des pilotes et configuration de la carte et du portDonc, vous vous êtes acheté un kit de démarrage Arduino et peut-être d'autres composants sympas au hasard - et maintenant? Comment commencez-vous réellement à programmer cette chose Arduino? Comment le configurez-vous... Lire la suite
- Fritzing, un outil gratuit pour dessiner des schémas de circuits Fritzing - L'outil ultime pour esquisser des projets électroniques [Cross Platform]Bien qu'il ressemble à un alcopop, Fritzing est en fait un incroyable logiciel gratuit que vous pouvez utiliser pour créer schémas de circuits et de composants à utiliser avec des cartes électroniques à prototypage rapide telles que le fantastique open-source Arduino ... Lire la suite
- Un examen plus approfondi de la structure d'une application Arduino et de l'exemple de programme Blink Premiers pas avec l'Arduino: un examen plus approfondi du circuit imprimé et de la structure d'un programmeLa dernière fois, je vous ai laissé avoir configuré votre Arduino pour fonctionner avec Mac ou Windows et avoir téléchargé une application de test simple qui a fait clignoter la LED intégrée. Aujourd'hui, je vais expliquer le code ... Lire la suite
Pour ce projet, vous? ll faudra au moins 8 ou 9 LED en rouge ou vert, un résistance pour chacun d'eux, un planche à pain et quelques fils de branchement. Le kit de démarrage d'Ooomlout, que j'ai récemment acheté moi-même et qui est illustré dans ce tutoriel, offre un excellent rapport qualité-prix et a plus de LED et de résistances que vous? Nous en aurons toujours besoin, ainsi que d'une planche à pain et d'un boîtier Arduino pour garder les choses en ordre.
Ici? s la dernière chose:
Et une vidéo de celui-ci en action.
Ici? s une vue du câblage de Fritzing. Il? s très basique - il suffit de connecter le fil positif des LED aux broches 2-> peu importe (jusqu'à la broche 13), et connectez les jambes négatives à la masse en ligne avec une résistance. La valeur que je? ve utilisé ici est de 560 Ohms. Cette? s pour le câblage.
Côté logiciel, réfléchissez à la façon dont vous pourriez écrire sur toutes ces LED dans le code. Vous pouvez vous y prendre comme ceci:
int led1 = 2; // première LED sur la broche 2. int led2 = 3; // seconde sur la broche 3. // etc etc void loop () {digitalWrite (led1, HIGH); retard (100); digitalWrite (led1, LOW); retard (100); digitalWrite (led2, HIGH); // etc. }
Vous devriez être en mesure de voir qu'avec 9 LED, cela deviendra rapidement fatigant. La réponse réside dans Tableaux, si vous le pouvez? t souviens de notre Programmation 101 sur les types de données de base Les bases de la programmation informatique 101 - Variables et types de donnéesAprès avoir présenté et parlé un peu de la programmation orientée objet avant et où son homonyme vient, je pensais qu'il était temps de passer par les bases absolues de la programmation dans un langage non spécifique façon. Ce... Lire la suite - ne sont essentiellement que des listes.
La syntaxe ressemble à ceci (placez-la comme première ligne dans votre code):
int leds [] = {2,3,4,5,6,7,8,9,10};
Les crochets indiquent que les? Leds? va être une variable Array. Les accolades entourent la liste des numéros de broches que notre tableau contiendra.
Maintenant, pour utiliser un tableau, nous devons l'adresser par le numéro d'index. le l'index commence à 0, et ira donc toujours jusqu'à 1 de moins que le nombre total de choses à l'intérieur (donc avec 9 éléments, le dernier aurait un indice de 8).
Vous l'écrivez comme ceci:
leds [0]
Qui dans notre cas, irait chercher le chiffre 2, parce que ça? s quoi? s à l'index 0 dans notre tableau.
Vous suivez jusqu'ici? Génial. Rien que ça? t assez pour nous cependant - nous avons également besoin d'un moyen d'itérer sur chaque élément de notre réseau de LED Pour cela, nous utiliserons un pour boucle. La syntaxe pour le faire est la suivante:
pour (variable initiale; condition dans laquelle nous répétons encore; changer en variable à chaque itération)
Par exemple:
pour (int i = 0; i <9; i ++)
Qui dit
- démarrer cette boucle avec une variable, je, qui a une valeur de zéro
- continuer à boucler uniquement pendant que je suis moins de 9? (donc: 0,1,2,3,4,5,6,7,8)
- chaque fois, ajouter 1 à i (i ++ est un moyen court de dire i = i + 1)
Donc, fondamentalement, la boucle va être répétée autant de fois que nous avons de LED, et à chaque fois? s répété nous aurons une variable, je, que nous pouvons utiliser comme bon nous semble.
Nous? Je vais utiliser cette structure deux fois pour commencer. Une fois à l'intérieur de la fonction de configuration pour faire passer toutes nos broches en mode de sortie, comme ceci:
void setup () {for (int i = 0; i <9; i ++) {pinMode (leds [i], OUTPUT); } }
Pouvez-vous voir ce que nous y avons fait? Au lieu d'écrire 9 lignes de code pour déclarer chaque broche individuelle en sortie, nous créons une boucle «pour» qui se répète 9 fois, en définissant à chaque fois une autre broche.
Maintenant, vous devriez être en mesure de voir comment nous pourrions faire exactement la même chose dans la boucle de programme principale pour allumer chaque LED en séquence:
void loop () {for (int i = 0; i <9; i ++) {digitalWrite (leds [i], HIGH); retard (100); digitalWrite (leds [i], LOW); } }
Essayez ça. Vous pouvez téléchargez ici le code complet du projet d'aujourd'hui si tu? Je préfère ne pas taper à nouveau (bien que je vous encourage à le faire, car cela aide le processus d'apprentissage).
D'accord, nous avons donc maintenant une séquence d'éclairage assez ennuyeuse. Laisser? s en programmer un autre. Juste pour le plaisir, laisse? s le rendre complètement aléatoire. Remplacez le code de la boucle principale par ceci:
boucle vide () { int randomLed = random (0,8); digitalWrite (leds [randomLed], HIGH); retard (50); randomLed = random (0,8); digitalWrite (leds [randomLed], LOW); }
Au lieu d'utiliser une boucle «pour» pour itérer sur chaque LED, nous choisissons un nombre aléatoire de 0 à 9 à la place et le clignotons.
Je vais le laisser là pour aujourd'hui car vous devriez maintenant être armé de suffisamment de connaissances pour programmer toutes les nouvelles séquences et expérimenter les boucles. Pour prouver à quel point tout cela est facile, j'ai mis ma femme au défi de penser à une séquence qu'elle? je voudrais voir, et puis obtenu?elle pour la programmer elle-même, étant donné seulement le code et les leçons que vous? ve eu jusqu'à présent. Elle est venue avec ça, alors voyez si vous pouvez faire correspondre ça pour les devoirs!
Questions, suggestions, problèmes - veuillez nous contacter dans les commentaires.
James est titulaire d'un BSc en intelligence artificielle et est certifié CompTIA A + et Network +. Il est le développeur principal de MakeUseOf et passe son temps libre à jouer au paintball VR et aux jeux de société. Il construit des PC depuis qu'il est enfant.