Étape 6: Le MCP
Maintenant un peu sur le logiciel Arduino qui réunit tout le matériel et fait tout ce travail que nous le souhaiterions. Le programme de contrôle du Master 3000 Quiz-O-Tron (clin de œil à TRON) vérifie en permanence l’état des broches d’entrée 4. Quand un changement d’État est détecté puis modifie l’état de la broche de sortie associés (allumer les LEDs) et attend cinq secondes. État de la broche de sortie est puis reset (LED off) et la boucle pour vérifier que l’état de la saisie des goupilles de répétitions. D’un point de vue programmation c’est très simple de traitement. Voici une liste du code de programmation Arduino C qui exécute ces tâches.
/*
Quiz-O-Tron 3000 MCP
Par Roy Rabey
Version 1.0 6 décembre 2010
*//*
Tableaux pour définir les ensembles de goupille de Arduino associés avec les cases de la touche.
Tel que défini ci-dessous le premier bouton de candidat à l’investiture (élément 0 depuis les deux baies) utilise broches 5 comme entrée pour détecter une presse de commutateur et sortie pin 13 à conduire le contrôle de puissance de LED.
*/
int inputPins [4] = {5,4,3,2,a} ; Les numéros des broches commutateur.
int outputPins [4] = {13,12,11,10} ; Les numéros des broches LED.Certaines variables pour contrôler le traitement
int maxPins = 4 ; Nombre max. d’ensembles
unsigned long WinDelayTime = 5000 ; Nombre de millisecondes à lumière LEDvoid winner(int) ; Définition de fonction.
//
Commencer le traitement
//
void setup() {}
/*
Setup() est exécutée une fois lorsque l’Arduino est mis sous tension ou réinitialisation.
*/Initialiser les broches de la LED.
Cela indique l’Arduino à quoi serviront les broches.
pour (int p = 0; p < maxPins; p ++) {}
pinMode (inputPins [p], entrée) ; Faire une broche d’entrée.
pinMode (outputPins [p], sortie) ; Faire une broche de sortie.
}
}void loop() {}
/*
La fonction loop() est exécutée lorsque la fonction setup() est terminée.
Comme son nom l’indique les boucles de fonction loop() forever ou jusqu'à ce que l’Arduino est réinitialisé.
*/int val = élevé ; Utilisé pour déterminer si État une entrée de pin a changé.
pour (int p = 0; p < maxPins; p ++) {}
Lire l’état de chaque broche d’entrée.
Val = digitalRead(inputPins[p]) ; Lit la valeur de l’axe d’entrée.Si (val == faible) {}
Si une épingle tombe en bas puis quelqu'un appuyé sur un bouton.
Winner(p) ; Appelez la fonction winner() avec gagner ensemble broche.
}
}
}void gagnant (int p) {}
La broche de sortie haute pour alimenter au circuit de LED du bouton la valeur.
digitalWrite (outputPins [p], HIGH) ; Allumer les LEDsAttendre WinDelayTime millisecondes
Delay(WinDelayTime) ;Définir l’axe de sortie faible pour tuer les alimentation LED circuit du bouton.
digitalWrite (outputPins [p], faible) ; Désactiver les LEDs
}
(Notez que j’ai compris ce code dans les deux le format de fichier IDE Arduino et comme un fichier de texte ci-dessous pour plus de commodité).
Une des choses gentilles sur faire électronique avec des microcontrôleurs est que certaines fonctionnalités projet est implémenté dans le logiciel ; cela le rend très facile à changer. Par exemple, si je voulais faire clignoter les LED sur les boîtes de gros bouton pendant 10 secondes je viens changer la valeur de la variable « WinDelayTime » puis compiler/Télécharger le nouveau logiciel à l’Arduino et j’en ai fini. C’est beaucoup plus facile que d’avoir à recalculer des valeurs pour les composants électroniques utilisés pour faire des calendrier et ensuite remplacer le matériel associé. Alors que ce projet est une application assez simple de Arduino, vous pouvez faire des choses étonnantes avec l’Arduino. Et si vous êtes intéressé à apprendre l’électronique il y a beaucoup de projets axés sur l’Arduino qui peut vous aider. Je n’aurais pas pu générer ce projet dans le temps que je disposais sans la plateforme Arduino.
Si vous êtes intéressé à en apprendre que davantage sur cette plate-forme de développement microcontrôleur Découvrez le projet Arduino à http://www.arduino.cc.