Arduino All-in-One Getting Started Guide (4 / 5 étapes)

Étape 4: Le projet de programmation

Maintenant que nous avons terminé câblage vers le haut de notre projet, il est temps d’écrire du code. Je suis notamment tout le code ci-dessous, mais nous parlera de la théorie première un peu.

Le code que j’ai fournis compile à 1560 octets. Les poignées de l’Arduino programmes jusqu'à 14336 octets en taille. Ce petit projet reprend de plus de 10 % de la capacité de l’Arduino, mais ce n’est vraiment pas code optimal. C’est un tutoriel, donc j’ai essayé d’être clair et plutôt efficace. Je ne serais pas du tout surpris de trouver qu'il pourrait être réécrit dans le demi-espace ou moins.

Chaque Arduino « croquis » dispose de deux zones obligatoires : le programme d’installation et de la boucle. Le programme d’installation s’exécute une fois après le démarrage du programme. Cela vous permet de configurer l’état initial du Conseil : les broches sont entrées, qui sont sorties et sorties commencent si haute ou basse. La boucle est la section du programme executived à plusieurs reprises dès l’installation terminée. Il n’y a aucun « fin » ou « quitter » à un programme Arduino--il n’y a nulle part pour sortir à ! Si vous avez l’expérience de programmation, vous reconnaîtrez immédiatement le langage utilisé pour programmer l’Arduino est notre bon vieux copain C. Si ce n’est pas le cas, vous pouvez ramasser les bases juste en allant sur mon code et les autres exemples dans le kit de développement. Nombreux didacticiels C sont également disponibles sur le web.

Vous pouvez copier et coller le code dans votre environnement de développement Arduino, puis vérifier et téléchargez-le. Si tout est bon, vous devriez obtenir des lumières blinky et être capable de faire varier la vitesse en appuyant sur le bouton.

Maintenant une section par section de ventilation de l’esquisse :

1) tout d’abord, nous commençons par définir quelques variables. Une grande partie de cette zone est de la compréhension humaine et puisse être ignorée par souci d’efficacité. Par exemple, j’ai défini une variable appelée « ledPinRed » et égal au 13 (j’ai utilisé trois couleurs de LED--le rouge un est relié à la broche numérique 13). J’aurais pu utiliser « 13 » directement dans le programme, mais qui le rend beaucoup plus difficile à comprendre. Les commentaires en regard des variables note ce que chacun est pour.

2) le programme d’installation. Ici j’ai mis l’axe auquel le bouton-poussoir est attaché comme une broche d’entrée. L’Arduino cherchera à recevoir des informations (signaux haute ou basse) il. J’ai mis les connexions de LED à être sorties où le Conseil fixera la tension haute ou basse (5V ou 0V) selon qu’il conviendra. Enfin, je me suis tourné sur mon vert conduit et fait en sorte que les autres ont été mis hors service.

3) getButton : une fonction (juste un conteneur pour le code pour tout les non-programmeurs lisez ceci) qui peut être appelée depuis la boucle principale pour savoir si nous avons appuyé sur le bouton. Il conserve une trace de l’état actuel de la touche et l’état antérieur de la touche, la dernière fois nous regarda. Cela nous permet de répondre uniquement aux individuels sur les touches : maintenez le bouton enfoncé ne compte que comme une simple pression sur. C’est important quand les lumières changent très rapidement qu’il y ait très difficile à contrôler.

4) changeLights : une autre fonction. Celui-ci est appelé chaque fois que nous devons passer d’une LED à l’autre. Celui qui est sur obtient éteint et celle qui suit dans l’ordre obtient. Il met également à jour la variable « stromgeführten » donc nous pouvons garder une trace de LED est actuellement actif.

5) boucle de : la boucle principale. Ici, nous faisons tout d’abord un appel à vérifier sur le bouton. Si nous trouvons le bouton n’a pas été enfoncé, mais il est maintenant, nous ajoutons à la variable « currentSpeed ». Si nous allons très vite, nous réinitialisons currentSpeed à 1--une boucle autour de sorte que nous pouvons revenir à des vitesses lentes. Après cela...

... Eh bien, nous avons atteint une ligne laide qui détermine s’il est temps de changer à la prochaine LED. Millis() est une fonction intégrée de Arduino qui garde une trace de combien de temps la Commission gère le programme en cours. Tout ce que nous faisons ici est de découvrir si suffisamment de temps s’est écoulé que nous devrions changer au prochain feu. Dans l’affirmative, nous appelons la fonction « changeLights » pour y arriver.

Enfin, voici le code (AVERTISSEMENT : il perd un peu de mise en forme lorsque posté ici, n’est pas aussi jolie qu’elle pourrait l’être) :

/*

  • Arduino tutoriel de kevin

*

  • Ce logiciel est conçu pour être utilisé avec mon Arduino All-in-One Getting Started Guide
  • plus de chez

*
*/

Notez que ces variables sont toutes GLOBAL dans la portée, donc ils vont travailler à l’intérieur de nos appels de fonction
int ledPinRed = 13 ; Mettre en place des sorties numériques pour LEDs
int ledPinYellow = 12 ;
int ledPinGreen = 11 ;
int switchPin = 2 ; Configuré pour lire l’état de l’interrupteur d’entrée numérique 2
int stromgeführten = 1 ; Vert = 1, jaune = 2, rouge = 3
int currentSpeed = 1 ; Détermine à quelle vitesse nous passer entre les feux.
int buttonWas = 0 ; L’état de l’interrupteur (poussé = 1, ne pas poussé = 0) la dernière fois nous nous sommes penchés
int buttonIs = 0 ; État actuel de l’interrupteur
unsigned long timer = 0 ; Une minuterie pour garder une trace de là où nous sommes.

void setup() / / exécute une seule fois, au démarrage du programme (« sketch »)
{
pinMode (switchPin, entrée) ; Raconte l’Arduino pour traiter le switchPin en entrée
pinMode (ledPinRed, sortie) ; Raconte l’Arduino que la broche de la LED rouge est pour la sortie
pinMode (ledPinYellow, sortie) ;
pinMode (ledPinGreen, sortie) ;
digitalWrite (ledPinGreen, HIGH) ; LED vert s’allume au démarrage
digitalWrite (ledPinRed, basse) ; LED rouge s’éteint au démarrage
digitalWrite (ledPinYellow, basse) ; LED jaune s’éteint au démarrage
}

void getButton() {/ / nous allons voir ce que le bouton est fait, allons-nous ?
buttonWas = buttonIs ; Définir l’état ancien du bouton à l’état actuel étant donné que nous créons un nouvel état actuel.
buttonIs = digitalRead(switchPin) ; Lire l’état du bouton
}

void changeLights() {/ / éteignez l’actuellement allumage de la diode et sur celle qui suit.
Timer=Millis() ; réinitialiser notre horloge à l’heure actuelle
{if(currentLED==1)}
digitalWrite (ledPinGreen, basse) ;
digitalWrite (ledPinYellow, HIGH) ;
}
{if(currentLED==2)}
digitalWrite (ledPinYellow, basse) ;
digitalWrite (ledPinRed, HIGH) ;
}
{if(currentLED==3)}
digitalWrite (ledPinGreen, HIGH) ;
digitalWrite (ledPinRed, basse) ;
}
stromgeführten ++ ; Add-on pour stromgeführten
Si (stromgeführten == 4) {stromgeführten = 1;}
}

void loop() / / il s’agit de notre boucle « principale ». Programmes d’Arduino ne quitter le menu--nulle part à la sortie !
{
getButton() ;
if((buttonIs==1) & &(buttonWas==0)) {}
currentSpeed ++ ; Ajouter un à délai actuellement parce que le bouton a été activé.
if(currentSpeed==15) {currentSpeed = 1;} / / boucle autour--cela nous attribue à une rotation lente.
}
Si (millis() > =timer+(1000/currentSpeed)) {/ / temps de changer les lumières !
changeLights() ;
}
}

Articles Liés

All-in-One Pi framboise Getting Started Guide

All-in-One Pi framboise Getting Started Guide

Raspberry Pi, l'un de l'invention plus ingénieuse pour les législateurs et les pirates. Avant que nous commencions dans les détails nitty gritty de l'obtenir le programme d'installation, nous avons tout d'abord faut s'interroger sur la question que l
LinkIt One : Getting Started

LinkIt One : Getting Started

Le LinkIt One est un Conseil de développement, est un travail conjoint créé par Seeed Studio et MediaTek. Le jury est similaire à l'Arduino, mais est livré avec des fonctionnalités ajoutées. Le jury est livré avec Bluetooth, Wi-Fi, GPS et GSM. Dans c
Linkit One Getting Started With GPS

Linkit One Getting Started With GPS

Dans ce instructable je vais vous montrer comment débuter avec le GPS un Linkit, il communiquera avec les satellites GPS pour vous donner l'emplacement en latitude et longitude.Étape 1: Liste des piècesLinkit OneAntenne GPSCable micro USBEtape 2: Con
Zybot - Getting Started Guide et le Code Source

Zybot - Getting Started Guide et le Code Source

Le Zybot est tout à fait le projet. Il exige beaucoup d'étapes, Instructables multiples et beaucoup de matériel. Je recommande fortement de lire chaque Instructable pour s'assurer que vous savez ce que vous obtenez vous-même dans avant de commencer.C
Maison savonnerie Getting Started Guide

Maison savonnerie Getting Started Guide

C'était comme un nouveau monde, quand j'ai commencé à apprendre de fabrication de savon naturelle fait maison. J'ai passé des mois juste fait des recherches et essayer de comprendre tous les détails avant que j'ai vraiment plongé dans la fabrication
GETTING STARTED WITH ARDUINO #5

GETTING STARTED WITH ARDUINO #5

Salut, Désolé pour le retard de ce tutoriel. Ici dans ce tutoriel je vais vous apprendre comment deux conduits en utilisant Arduino. c'est le principe de base des systèmes de feux tricolores. Où lumière change d'une couleur à une autre couleur après
Getting Started with LinkIt One - LED

Getting Started with LinkIt One - LED

J'ai récemment eu une LinkIt une planche que c'est une excellente alternative pour un Arduino avec un tas de fonctionnalités emballé dans un boîtier minuscule. Il a un bord de WIFI, GPS, Bluetooth, GSM, Micro SD card slot et une prise jack 3,5 mm pou
IoT graphiques à l’aide d’outils Google : Getting Started

IoT graphiques à l’aide d’outils Google : Getting Started

La révolution du capteur relié à internet est iciIl devient plus facile chaque jour pour connecter votre projet Arduino, Raspberry Pi,ESP8266, Edisonou Photon à internet et envoyer des données de mesure capteur vers une base de données de nuages comm
Communication série - Arduino et Linkit One

Communication série - Arduino et Linkit One

Dans ce instructable je vais vous montrer comment établir une communication série entre l'arduino et le One Linkit. Cela vous aiderait à faire un projet plus complexe, avec ces deux conseils.Étape 1: composantsVoici une liste de tous les composants n
Mondes meilleur petit déjeuner All-In-One

Mondes meilleur petit déjeuner All-In-One

Après mûre réflexion, j'ai décidé de mettre le petit déjeuner all-in-one BEST EVER sur instructables ! Et après avoir beaucoup expérimenté avec cuisson (je peux cuire seulement les œufs!) J'ai décidé que j'ai trouvé la meilleure recette pour un petit
Getting Started with Intel® Edison Breakout Mini Board

Getting Started with Intel® Edison Breakout Mini Board

Intel propose 2 plates-formes matérielles différentes de travailler avec Intel® Edison development board.Le module core d'Intel® Edison est appelé Module Intel® Edison Compute, tandis que les cartes de 2 extension sont appelés Intel® Edison Arduino e
All in One PC / Computer - DIY

All in One PC / Computer - DIY

My DIY All in one PCAu cours des dernières années, j'utilisais un portable Dell Inspiron comme mon ordinateur tous les jours. Cependant lentement, il montrait son âge et composants semblent être défaillant un à la fois. Tout d'abord, le clavier a ces
Ubuntu : Getting Started (11.04)

Ubuntu : Getting Started (11.04)

Ubuntu est un système d'exploitation linux basé sur Debian.  C'est ma distribution préférée personnelle de linux.  Ubuntu est un excellent système d'exploitation, il peut créer quelques problèmes pour les deux nouvelles et avancées des Linuxiens.  Ce
Getting Started with Analog.IO et Imp électrique

Getting Started with Analog.IO et Imp électrique

Analog.IO est un nouveau site dédié au partage de flux de données de l'internet des choses périphériques connectés. Analog.IO vous permet d'afficher vos données grâce à un navigateur web où que vous soyez dans le monde. Vous contrôlez les données qui