Contacts

Langue de programmation pour Arduino Uno. Arduino: des exemples de ce qui peut être fait. Opérations d'affectation mixtes

Cet article d'introduction pour ceux qui ont déjà réussi à décompresser avec leur enfant une douzaine de boîtes de couleur des concepteurs, construisant des centaines de conceptions diverses et remplies de pièces de Lego tous les conteneurs disponibles à Chulana. Si vous êtes prêt à passer au niveau suivant: avec électronique, microcontrôleurs, capteurs et appareils intelligents, cela signifie qu'il est temps d'expériences avec Arduino!

Dans cette série d'articles, nous collecterons la chose la plus importante que vous devez apprendre sur Arduino pour commencer à étudier avec vos propres enfants. Même si vous n'avez jamais pris entre les mains du fer à souder et des mots "contrôleur" et "contrôleur" pour vous avez sur une signification similaire, vous pouvez être confiant - vous travaillez toujours! Le monde de l'électronique et de la robotique aujourd'hui est plein de solutions simples et très pratiques permettant de créer pratiquement de créer des projets très intéressants. Notre tutoriel vous aidera à naviguer rapidement et à faire les premières étapes.

Dans la langue du ménage, Arduino est, dans lequel vous pouvez bloquer de nombreux appareils différents et les faire travailler avec le programme écrit en langue Arduino dans un environnement de programmation spécial.

Le plus souvent, le conseil ressemble à ceci:

La figure montre une des cartes Arduino-Arduino Uno. Nous l'étudierons plus dans les leçons suivantes.

Dans les frais, vous pouvez coller des fils et connecter de nombreux éléments différents. Le plus souvent, la connexion est utilisée pour la charge de connexion pour le montage sans soudure. Vous pouvez ajouter des voyants, des capteurs, des boutons, des moteurs, des modules de communication, des relais et de créer des centaines d'options pour des projets intéressants de périphériques intelligents. Arduino conseil est socket intelligentqui va allumer et éteindre tous attachés en fonction de la programmation.




Tous les travaux sur le projet sont divisés en étapes suivantes:

  1. Nous proposons une idée et une conception.
  2. Collecter circuit électrique. Ici, nous utilisons une carte sans morceaux qui simplifie l'installation d'éléments. Bien sûr, les compétences de travailler avec des appareils électroniques et des compétences seront nécessaires.
  3. Connectez-vous à un ordinateur via USB.
  4. Et écrivez-le littéralement des frais en appuyant sur un bouton à l'écran.
  5. Déconnecter de l'ordinateur. Maintenant, l'appareil fonctionnera de manière autonome - lorsque le courant est activé, il sera contrôlé par le programme que nous l'avons enregistré.

Le programme et l'environnement de programmation ressemblent à ceci:

Le programme affiche le programme (à Sleng Arduinshchikov, le texte du programme s'appelle «Sketch»), qui clignotera l'ampoule de lumière connectée à 13 entrées sur le tableau Arduino ONO. Comme vous pouvez le constater, le programme est assez simple et consiste en des instructions compréhensibles pour l'anglais bien informé. Dans la langue programmation arduino. Votre dialecte de langue C ++ est utilisé, mais toutes les fonctionnalités C ++ sont prises en charge.

Il y a une autre version du code d'écriture - Éditeur visuel. Il n'a pas besoin d'écrire quoi que ce soit - vous pouvez simplement déplacer les blocs et ajouter l'algorithme nécessaire. Le programme démarrera dans les frais connectés en un clic sur le bouton de la souris!

En général, tout semble assez clair, n'est-ce pas? Il reste à trier les détails.

Commencement rapide avec Arduino

Pour commencer, comprenons quoi et ce que nous allons faire. Qu'est-ce que Arduino et comment l'utiliser? Si vous connaissez déjà le sujet - vous pouvez sauter en toute sécurité. Si non - faisons une immergente courte ensemble.

Arduino est ...

Arduino n'est pas une marque et non le nom du fournisseur de concepteur. Ceci est un nom commun pour toute la famille de technologies diverses et une plate-forme ouverte, qui comprend à la fois des périphériques matériels (cartes de contrôleur et équipement compatible) et logiciels conçus pour contrôler le matériel. En substance, Arduino est une infrastructure et un environnement dans lequel vous pouvez collecter des composants électroniques et mécaniques à un seul appareil, puis par un ordinateur régulier en deux minutes pour programmer le comportement de ces plus grandes glandes que nécessaire.

Arduino est un pont du monde de l'ordinateur virtuel dans le monde des choses et des appareils réels. En écrivant un programme sur l'ordinateur habituel, nous gérons avec elle non par des objets virtuels, mais également des capteurs, des moteurs, des écrans. Nous changeons le monde autour de nous - simplement une programmation sur un ordinateur à l'aide d'un logiciel libre et de nombreux exemples de bibliothèques prêtes à l'emploi.

La technologie a reçu son nom, comme cela arrive souvent, assez par hasard. La source d'inspiration a servi de barreau, dans laquelle les futurs créateurs d'Arduino ont adoré boire sur un cercle de thé. Il s'appelait la création de cette façon - Arduino, nommée par la principale personnalité historique de la ville d'Ivrea, le roi Arduino. Un roi de quelques pistes lumineuses de l'histoire n'a pas quitté et marchait le perdant, mais grâce à l'équipe de développeurs de la nouvelle plate-forme, il a trouvé une nouvelle popularité et est maintenant connue de millions de personnes dans le monde.

Pourquoi arduino?

Tout le charme d'Arduino réside dans les avantages simples suivants:

  1. Simplicité. Oui, oui - c'est la simplicité (bien que lego et d'autres jouets, sans aucun doute, c'est plus familier, mais nous comparons pas avec eux). Pour les jeunes développeurs électroniques, Arduino "cache" un grand nombre de problèmes techniques divers. De nombreux projets suffisamment complexes peuvent être créés très rapidement, sans une longue immersion dans les détails. Et cela est très important pour un enfant - de ne pas perdre d'intérêt avant le premier résultat reçu par leurs propres mains.
  2. Popularité. Arduino est extrêmement populaire, vous pouvez facilement trouver des réponses à toutes questions sur de nombreux forums ou sites. La communauté Arduino est largement et amicale - il y a relativement peu de vies de snobs-ingénieurs et d'amants entièrement amants et de débutants, avec plaisir à être divisé par leur joie de la part trouvée et reconnue. Ceci, bien sûr, reporte l'impression sur la qualité des Soviétiques, mais en règle générale, même les questions les plus difficiles peuvent être résolues rapidement avec l'aide de forums et de sites.
  3. Disponibilité. Et la technologie elle-même et pratiquement tous les logiciels sont fabriqués sous licences open et vous pouvez utiliser librement les travaux, les diagrammes et dans de nombreux cas, même pour une utilisation commerciale. Cela évite beaucoup de temps et vous permet de déplacer de grandes étapes, en fonction de l'expérience des chercheurs précédents.
  4. Bas prix. Le kit pour la première élection d'électronique et de programmation peut être acheté en moins de 500 roubles. Les cours de robotique à temps plein sont possibles à. Aucune autre technologie ne vous permettra d'entrer dans le monde de la véritable robotique éducative si rapidement et si efficacement.

Où commencer?

Si vous souhaitez vous engager dans une robotique à l'aide d'Arduino, vous aurez besoin d'un tel gentleman:

  1. Avec un câble USB pour se connecter à un ordinateur.
  2. et des fils.
  3. Ensemble de base composants electroniques Et adaptateur de batterie de type Kroon.
  4. Installé sur l'ordinateur mercredi

À l'avenir, si les classes sont vraiment impliquées et si le désir de poursuivre des expériences, la liste des équipements élargira:

  1. Écrans et indicateurs.
  2. Moteurs et, relais et.
  3. Modules de communication.
  4. Une variété de modules supplémentaires et (boucliers)

Si les premières étapes donnent le résultat, au fil du temps, vous apprendrez la moitié des personnes debout dans la file d'attente du courrier (si vous ne les connaissez toujours pas encore), et que les postes de la réunion vous reconnaîtront au visage et courir nerveusement de l'autre côté de la route.

Comment acheter Arduino?

Avant de savoir quelque chose d'utile, vous devez d'abord acheter quelque chose d'utile. Pour des expériences avec électronique, vous aurez besoin de l'électronique elle-même sous la forme d'un concepteur ou d'une planche individuelle. Il est recommandé d'acheter un ensemble national très coûteux avec les composants principaux, puis de commander des capteurs, des moteurs, des contrôleurs et d'autres trésors avec AliExpress.

Voici quelques-unes des options les plus intéressantes et attrayantes pour acheter des planches et des ensembles pour les premières leçons:

Une petite et très bon marché de démarreur, dans laquelle il y a tout ce dont vous avez besoin pour les premiers projets Très haute qualité commençant par le célèbre fabricant Keystudio Ensemble de départ classique Arduino, qui suffit pour des dizaines de projets différents
Ensemble de démarrage avancé Robotlinking C Arduino Uno et Mega2560. Instruction et boîte commode Ensemble simple avec un camion à benne basculante, des voyants, des résistances et des fils pour la connexion Un ensemble inhabituel pour le prototypage rapide avec des connecteurs RJ11 pratiques - même un petit enfant va faire face!

Si vous voulez toujours acheter des frais d'Arduino séparément, voici quelques liens intéressants:

Conseil de qualité Arduino Uno R3 sur CH340G. Le kit sans câble avec un prix minimum d'environ 220 roubles Megapower Uno Board basé sur l'original ATMEGA328 R3, FTDI FT232RL Excellente option de KeyEStudio - UNO R3 MEGA328P ATMEGA16U2 avec bouclier de capteur combiné

Résumant la leçon

Dans cet article initial court, nous avons appris ce que Arduino, pourquoi cette technologie s'appelle cette technologie, car elle ressemble à des projets typiques avec l'utilisation de contrôleurs d'Arduino. Commencez à créer des projets techniques intéressants est très simple - pour cela, il n'est pas nécessaire d'être un email. Il suffit de prendre des frais d'Arduino, collectez le circuit électronique souhaité avec celui-ci (vous pouvez trouver de nombreux exemples prêts à l'emploi sur Internet), connectez le contrôleur à l'ordinateur et téléchargez le programme. Appareil intelligent Prêt!

Dans les leçons suivantes, nous découvrirons comment fonctionne le contrôleur, nous analyserons l'appareil Arduino Uno Board et lancez votre premier projet.

Liens utiles vers des manuels et des sites d'Arduino

Sites officiels Arduino:

  • Site officiel "presque" en russe: http://arduino.ru/

Excellents sites avec une grande quantité d'informations utiles

Quel est le programme

Pour commencer, il convient de comprendre que le programme ne peut pas être lu et écrit comme un livre: de la croûte à peler, de haut en bas, de la ligne par ligne. Tout programme consiste en des blocs séparés. Le début du bloc de code en C / C ++ est désigné par le support bouclé gauche (son extrémité - le support de figure droite).

Les blocs sont différentes espèces Et lequel quand il sera effectué dépendant des conditions extérieures. Dans l'exemple du programme minimum, vous pouvez voir 2 blocs. Dans cet exemple, les blocs sont appelés définition de la fonction. La fonction est juste un bloc de code avec un nom donné que quelqu'un peut alors utiliser de-out.

Dans ce cas, nous avons 2 fonctions avec des noms de configuration et de boucle. Leur présence est nécessairement dans n'importe quel programme de C ++ pour Arduino. Ils ne peuvent rien faire, comme dans notre cas, mais doivent être écrits. Sinon, au stade de la compilation, vous obtiendrez une erreur.

Genre classique: LED clignotant

Nous complétons maintenant notre programme afin qu'il y ait au moins quelque chose. Sur Arduino, la LED est connectée à la 13e broche. Ils peuvent être contrôlés que nous.

vidéosurveillance () (pince (13, sortie);) boucle vide () (denawrite (13, élevée); retard (100); denawrite (13, faible); retard (900);

Compilez, téléchargez le programme. Vous verrez que chaque seconde que le voyant du conseil arrive. Discontionnons pourquoi ce code conduit à un clignotant mensuel.

Chaque expression est un ordre de faire quelque chose. Les expressions dans un bloc sont l'une après l'autre, strictement en ordre sans pause et commutateurs. C'est-à-dire que si nous parlons d'un bloc de code particulier, il peut être lu de haut en bas pour comprendre ce qui est fait.

Maintenant, comprenons dans quel ordre les blocs eux-mêmes sont exécutés, c'est-à-dire Fonctions de configuration et de boucle. Ne pensez pas à ce sujet, nous voulons dire des expressions concrètes, observer simplement pour la commande.

    Une fois que Arduino s'allume, reflash ou appuyez sur le bouton de réinitialisation, "quelque chose" provoque une fonction METTRE EN PLACE. C'est-à-dire qu'il exprime des expressions dedans.

    Une fois l'opération de configuration terminée, «quelque chose» immédiatement provoque la fonction de boucle.

    Dès que la boucle est terminée, "quelque chose" provoque à nouveau la fonction de boucle et donc à l'infini.

S'il y a une expression dans l'ordre, comment ils sont exécutés, cela fonctionnera:

SETUP () (pince (13, sortie); ❶) boucle vide () (denawrite (13, élevée); ❷ ❻ Retard (100); ... DigitalWrite (13, Low (900); ❺)

Rappelez-vous une fois de plus que vous ne devriez pas essayer de percevoir l'ensemble du programme de lecture de haut en bas. Seul le contenu des blocs est lu de haut en bas. Nous pouvons généralement modifier l'ordre des annonces de configuration et de boucle.

Vide boucle () (denawrite (13, élevée); ❷ ❻ Délai (100); ... DigitalWrite (13, faible); ❹ ❽ Délai (900); ❺) () (Pinmode (13, sortie ); ❶)

Le résultat ne changera pas de ceci à aucune IOTA: après la compilation, vous recevrez un fichier binaire absolument équivalent.

Quelles expressions font

Essayons maintenant de comprendre pourquoi le programme écrit entraîne le clignotant du voyant.

Comme vous le savez, les broches Arduino peuvent travailler à la fois des sorties et des entrées. Lorsque nous voulons gérer quelque chose, c'est-à-dire de délivrer un signal, nous devons traduire le contrôle de la broche à l'état de sortie. Dans notre exemple, nous gérons le voyant à la 13e pilea, de sorte que la 13e broche avant utilisation, vous devez effectuer une sortie.

Ceci est fait par expression dans la fonction de configuration:

Pinmode (13, sortie);

Les expressions sont différentes: arithmétique, déclarations, définitions, conditionnelles, etc. Dans ce cas, nous effectuons l'expression fonction d'appel. Rappelles toi? On a leur Les fonctionnalités de configuration et de boucle appelées quelque chose que nous avons appelé "quelque chose". Alors maintenant nous Nous appelons les fonctions déjà écrites quelque part.

Spécifiquement, dans notre configuration, nous appelons une fonction nommée Pinmode. Il définit la broche définie sur le mode spécifié: entrée ou sortie. Quel type de pin et sur quel mode il y a une question est indiqué par nous entre parenthèses, à travers la virgule, immédiatement après le nom de la fonction. Dans notre cas, nous voulons que le 13ème ping fonctionne comme un moyen de sortir. Sortie signifie sortie, entrée - entrée.

Les valeurs de clarification, telles que 13 et la sortie sont appelées arguments de la fonction. Il n'est pas nécessaire que toutes les fonctions disposent de 2 arguments. Combien de points de fonctionnement dépend de l'essence de la fonction, de la façon dont l'auteur l'a écrit. Il peut y avoir des fonctions avec un argument, trois, vingt; Les fonctions peuvent être sans arguments du tout. Ensuite, pour leur appel, le support rond ouvre et ferme immédiatement:

Nointerruptions ();

En fait, vous pouvez remarquer que nos fonctions de configuration et de boucle n'acceptent également aucun argument. Et le mystérieux "quelque chose" les cause exactement avec des supports vides au bon moment.

Revenons à notre code. Donc, puisque nous prévoyons de clignoter pour toujours vers le voyant, le gestionnaire IDU doit être effectué une fois et nous ne voulons pas se souvenir de cela. Pour cela, la fonction de configuration est idéologiquement et destinée à: configurer des frais comme vous devez travailler avec elle.

Passons à la fonction de boucle:

Boucle vide () (denawrite (13, élevé); retard (100); denawrite (13, faible); retard (900);)

Comme mentionné, elle est appelée immédiatement après la configuration. Et cela s'appelle encore et encore dès qu'il se termine. La fonction de boucle s'appelle le cycle de programme de base et est conçu idéologiquement pour effectuer un travail utile. Dans notre cas travail utile - LED clignotant.

Passons par des expressions dans l'ordre. Donc, la première expression est l'appel de la fonction denatérieuse intégrée. Il est conçu pour se nourrir d'une goupille donnée du zéro logique (bas, 0 Volt) ou une unité logique (haut, 5 volts) à la fonction DIVERTWRITE 2 Arguments sont transmis: numéro Pina et valeur logique. En conséquence, la première chose que nous allonions la LED sur la 13e broche, nourrissant 5 volts dessus.

Dès que cela est fait, le processeur procède instantanément à l'expression suivante. Nous avons ce défi la fonctionnalité de retard. La fonction de retard est encore une fois la fonction intégrée qui entraîne l'endormissement du processeur pendant un certain temps. Il ne faut qu'un argument: le temps en millisecondes pour dormir. Dans notre cas, il est 100 ms.

Pendant que nous dormons, tout reste tel qu'il est, c'est-à-dire La LED continue de brûler. Dès que 100 ms expirent, le processeur se réveille et procède immédiatement à l'expression suivante. Dans notre exemple, c'est à nouveau un défi pour la connaissance de la fonction denaprise intégrée. Vrai, cette fois, nous transmettons la valeur de faible. C'est-à-dire que nous installons un zéro logique sur le 13ème pin, c'est-à-dire que nous donnons 0 volts, c'est-à-dire Garyim.

Une fois que le voyant est remboursé, nous passons à l'expression suivante. Et encore une fois c'est l'appel à la fonction de retard. Cette fois, nous nous endormons à 900 ms.

Dès que le rêve est terminé, la fonction de boucle est terminée. À la fin, "quelque chose" le cause immédiatement et tout arrive encore: la LED est placée sur le feu, brûle, sort, attendant, etc.

Si vous traduisez écrit en russe, l'algorithme suivant sera obtenu:

    Doré le voyant

    Nous dormons 100 millisecondes

    LED GASIM

    Nous dormons 900 millisecondes

    Aller à la clause 1

Ainsi, nous avons eu un arduino avec un roulement clignotant tous les 100 + 900 ms \u003d 1000 ms \u003d 1 seconde.

Que peut-on changer

Utilisons uniquement les connaissances acquises, nous ferons plusieurs variantes du programme afin de mieux comprendre le principe.

Vous pouvez connecter une LED externe ou un autre périphérique qui doit "clignoter" à une autre broche. Par exemple, le 5. Comment le programme devrait-il changer dans ce cas? Nous devons partout où ils font appel à la 13e broche remplacent le numéro le 5:

Compiler, télécharger, vérifier.

Qu'est-ce qui doit être fait pour que la LED a soufflé 2 fois par seconde? Réduire le temps de sommeil de manière à ce que, dans la quantité, il s'est avéré de 500 ms:

Void Configuration () (Pinmode (5, sortie);) LOOP vide () (DIGITEWRITE (5, HIGH); Délai (50); DÉCHETOLET (5, LOW); Délai (450););

Comment faire le voyant avec chaque "winking" émincé deux fois? Vous devez attendre deux fois avec une petite pause entre inclusions:

SETUPH VOID () (Pinmode (5, sortie);) Vide de boucle () (denawrite (5, élevée); retard (50); denawrite (5, faible); Délai d'écriture (5, haut); retard (50); denadewrite (5, faible); retard (350);)

Comment le faire pour que, dans l'appareil, il y a 2 LED qui soufflent chaque seconde en alternance? Vous devez communiquer avec deux pins et travailler en boucle puis avec un, puis avec un autre:

vide de configuration () (Pinmode (5, sortie); Pinmode (6, sortie);) Vide de boucle () (denawrite (5, élevée); retard (5, faible); Délai d'écriture (900); Delierwrite (6, élevé); retard (100); denawrite (6, faible); retard (900);)

Comment le faire pour que, dans l'appareil, il y a 2 voyants, ce qui permettrait de passer à une manière de circulation ferroviaire: serait-ce la même chose d'autre? Il vous suffit de ne pas éteindre immédiatement le voyant brûlant et attendez le couple de commutation:

SETUP () (PINAGE (5, SORTIE); PINAGE (6, SORTIE);) VOYAGE LOOP () (DIGITEWRITE (5, HIGH); DIGHTWRITE (6, LOW); Délai (5, bas; ; Denadewrite (6, élevée); retard (1000);)

Vous pouvez consulter d'autres idées par vous-même. Comme vous pouvez le constater, tout est simple!

À propos de zéro et beau code

En C ++, les écarts, les transferts de cordes, les symboles d'onglets n'ont pas de valeur importante pour le compilateur. Là où il y a un espace, il peut y avoir un transfert de ligne et inversement. En fait, 10 lacunes d'une rangée, un transfert de 2 lignes et 5 espaces de plus sont tous équivalents d'un espace.

L'espace vide est un outil de programmeur avec lequel vous pouvez ou créer un programme compréhensible et visuel, ou irréciencieux. Par exemple, rappelons-nous le programme de voyant clignotant:

Void Configuration () (pince (5, sortie);) boucle vide () (denawrite (5, élevée); retard (100); denawrite (5, faible); retard (900);

Nous pouvons le changer comme ceci:

Void Configuration () (pince (5, sortie);) boucle vide () (denawrite (5, élevée); retard (100); denawrite (5, faible); retard (900);

Tout ce que nous avons fait est un peu "travaillé" avec un espace vide. Maintenant, vous pouvez clairement voir la différence entre le code mince et illisible.

Pour suivre la conception de la loi illégale des programmes, qui respectaient sur les forums, lors de la lecture d'autres personnes, vous êtes facilement perçu par vous, suivez plusieurs règles simples:

1. Toujours, au début du nouveau bloc entre (et), augmentez le tiret. Utilisez généralement 2 ou 4 espaces. Choisissez l'une des valeurs et de le coller tout au long.

Mal:

Boucle vide () (denawrite (5, élevé); retard (100); denawrite (5, faible); retard (900);)

D'accord:

Boucle vide () (denawrite (5, élevé); retard (100); denawrite (5, faible); retard (900);)

2. Comme dans la langue naturelle: mettre un espace après des virgules et ne pas mettre auparavant.

Mal:

Denawrite (5, élevé); Denawrite (5, élevé); Denawrite (5, élevé);

D'accord:

Denawrite (5, élevé);

3. Placez le symbole du bloc de démarrage (sur nouvelle chaîne Au niveau actuel de l'indent ou à la fin de la précédente. Et la fin du bloc du bloc) sur une ligne distincte au niveau actuel de retrait:

Mal:

SETUP () (PINAGE (5, SORTIE);) VOYAGE SETUP () (PINAGE (5, SORTIE);) SETUP (PINAGE (5, SORTIE););

D'accord:

SETUP () (PINAGE (5, SORTIE);) VOYAGE SETUP () (PINAGE (5, SORTIE);)

4. Utilisez des chaînes vides pour séparer des blocs sémantiques:

D'accord:

Mieux:

boucle vide () (denadewrite (5, élevée); retard (100); denawrite (5, faible); délai (900); denawrite (6, haut); Délai d'écriture (6, bas); retard ( Délai (900);)

Sur des points avec des virgules

Vous pourriez intéressé: pourquoi à la fin de chaque expression mettait un point avec une virgule? Ce sont des règles C ++. Des règles similaires sont appelées syntaxe de langue. Sur le symbole; Le compilateur comprend où se termine l'expression.

Comme déjà mentionné, les lignes de cordes pour cela - un son vide, il se concentre donc sur ce signe de ponctuation. Cela vous permet d'enregistrer plusieurs expressions à la fois en une seule ligne:

Boucle vide () (denawrite (5, élevé); retard (100); denawrite (5, faible); retard (900);)

Le programme est correct et équivalent à ce que nous avons déjà vu. Cependant, écrire comme ça est un mauvais tonalité. Le code est beaucoup plus difficile à lire. Par conséquent, si vous n'avez pas 100% de bonne raison d'écrire plusieurs expressions d'une ligne, ne le faites pas.

Sur les commentaires

L'une des règles de la programmation de la qualité: "Écrivez le code de manière à ce qu'il soit si compréhensible que je n'aurais pas besoin d'explications." C'est possible, mais pas toujours. Afin de clarifier des moments non évidents dans le code à ses lecteurs: vos collègues ou vous vous-même dans un mois, il y a des commentaires.

Ce design B. code de programmequi sont complètement ignorés par le compilateur et ne sont valables que pour le lecteur. Les commentaires peuvent être multi-lignes ou une seule ligne:

/ * La fonction de configuration est appelée le tout premier, lors de la demande d'Arduino et ceci est un commentaire multiligne * / void setup () ( // Installez la 13ème broche en mode de sortie Pinmode (13, sortie); ) boucle vide () (denawrite (13, élevée); retard (100); // space 100 ms digitalwrite (13, faible); retard (900);

Comme vous pouvez le constater, entre des personnages / * et * / Vous pouvez écrire autant d'ensembles de lignes de commentaire. Et après la séquence / / commentaire, tout est considéré avant la fin de la ligne.

Nous espérons donc que les principes les plus fondamentaux des programmes d'écriture sont devenus clairs. Les connaissances gagnées vous permettent de contrôler programmatiquement la fourniture d'énergie aux broches Arduino à certains régimes temporaires. Ce n'est pas tellement, mais assez pour les premières expériences.

Tu auras besoin de

  • arduino Uno conseil;
  • câble USB (USB A - USB B);
  • ordinateur personnel;
  • diode électro-luminescente;
  • une paire de fils de connexion de 5 à 10 cm de long;
  • s'il y a une planche à pain (pain de pain).
Arduino IDE

Chargez l'environnement de développement Arduino (IDE Arduino) à partir du site officiel de son système d'exploitation (pris en charge par Windows, Mac OS X, Linux). Vous pouvez choisir l'installateur ( Installateur.), peut archiver ( Fichier zip pour l'installation non administrative). Dans le second cas, le programme est simplement démarré dans le dossier, sans installation. Le fichier téléchargé contient en outre l'environnement de développement également des pilotes pour les planches familiales Arduino.

Load Arduino Ide Développement mercredi du site officiel.

2 Connexion Arduinoà l'ordinateur

Connecter les frais Arduino avec cable USB (tapez USB-A - USB-B) à un ordinateur. Le voyant vert sur le tableau doit faire demi-tour.


Câble "USB-A - USB-B" pour connectivité Arduino à l'ordinateur

3 Pilote d'installationpour Arduino.

Installez le pilote pour Arduino. Considérez l'option d'installation sur le système d'exploitation Windows. Pour ce faire, attendez quand le système d'exploitation est proposé pour installer le pilote. Refuser. Appuyez sur les touches Win + pause, Lancer Gestionnaire de périphériques. Trouver la section "Ports (com et lpt)". Voulez-vous voir un port appelé Arduino UNO (COMXX). Cliquez avec le bouton droit sur IT et sélectionnez Rafraîchir le pilote. Spécifier système opérateur Emplacement du conducteur. Il est dans le sous-répertoire conducteurs. Dans le dossier que nous venons de télécharger.

Rappelez-vous le port auquel le tableau Arduino est connecté. Pour connaître le numéro de port, exécutez le gestionnaire de périphériques et localisez la section "Ports (COM et LPT)". De parenthèses après le nom de la carte, le numéro de port sera spécifié. Si les cartes ne figurent pas dans la liste, essayez de le désactiver à partir de l'ordinateur et, en attendant quelques secondes, connectez-vous à nouveau.

Arduino dans Windows Device Manager

4 RéglageArduino IDE

Spécifiez l'environnement de développement pour vos frais. Pour ce faire dans le menu Outils de plafonnement Choisir Arduino Uno..


Sélectionnez le tableau Arduino Uno dans les paramètres

Spécifiez le numéro de port COM auquel la carte Arduino est connectée: Outils de port.


Nous spécifions le port série auquel la carte Arduino est connectée.

5 Exemple ouvertprogrammes

L'environnement de développement contient déjà de nombreux exemples de programmes pour étudier le travail du conseil. Ouvrir l'exemple de "clignotement": Échantillons de fichier 01.Basics clignotent.À propos, le programme d'Arduino s'appelle des "croquis".


Esquisse d'esquisse ouverte pour Arduino

6 Schéma d'assemblageavec LED

Déconnectez Arduino de l'ordinateur. Recueillir le schéma comme indiqué sur la figure. Veuillez noter que la jambe courte du voyant doit être connectée à la sortie GND, longue - avec des cartes Arduino "13" "13". Il est pratique d'utiliser le panneau factice, mais lorsqu'il manquait, connectez les fils avec une torsion.

La broche numérique "13" a une résistance intégrée au tableau. Par conséquent, lors de la connexion du voyant à la carte, la résistance de limitation de courant externe n'est pas nécessaire. Lors de la connexion du voyant à une autre dérivation d'Arduino, l'utilisation de la résistance doit, sinon graver la LED et dans le pire des cas - le port Arduino auquel la LED est connectée!


Arduino LED Connection Schéma de la mémoire Arduino

Vous pouvez maintenant télécharger le programme à la mémoire de la carte. Connectez la carte à l'ordinateur, attendez quelques secondes pendant que la carte est initialisée. appuie sur le bouton TéléchargerEt votre croquis sera enregistré dans la mémoire des frais d'Arduino. Le voyant doit commencer à s'amuser avec une périodicité de 2 secondes (1 seconde brûlures, 1 éteint). Vous trouverez ci-dessous le code de notre premier programme pour Arduino.

void setup () ( // unité d'initialisation Pinmode (13, sortie); // Définissez la broche 13 comme une sortie. } boucle vide () ( // cycle, qui est répété infiniment, tandis que la carte est allumée: denawrite (13, élevée); // soumettre à 13 avec un niveau élevé - nous allumons le voyant de retard (1000); // par 1000 ms \u003d 1 sec. Denawrite (13, faible); // nourrir 13 avec un délai de LED de bas niveau (1000); // pendant 1 seconde. } // Ensuite, le cycle est répété

Lisez les commentaires dans le texte du programme - ils suffisent à gérer notre première expérience. Décrivez d'abord l'unité d'initialisation mettre en place ()Dans lequel vous spécifiez les valeurs initiales des variables et des fonctions des conclusions Arduino. Suivant suit un cycle infini boucle ()qui est répété à nouveau et encore jusqu'à ce que le conseil ait des repas. Dans ce cycle, nous effectuons toutes les actions nécessaires. Dans ce cas, enflamme et led Gasim. Opérateur rETARD () Spécifie la période d'exécution (en millisecondes) de l'opérateur précédent. Opérateur denadewrite () Indique à Arduino, à laquelle la conclusion de la tension de soumission et du niveau de tension. Votre premier croquis est prêt!

Le réseau possède de nombreux sites dédiés au travail avec les frais de famille Arduino. Lire, maître, n'ayez pas peur d'expérimenter et de connaître le nouveau! C'est une profession fascinante et utile qui vous apportera beaucoup de plaisir.

Remarque

Soyez prudent lorsque vous travaillez avec le tableau Arduino est un produit électronique nécessitant une relation minutieuse. Du bas de la planche, il y a des conducteurs nus et si vous mettez un tableau sur une surface conductrice, il est possible de brûler le tableau. Ne touchez pas également le tableau avec des mains mouillées ou mouillées et évitez avec le fonctionnement des broches brasses.

introduction

Freeduino / Arduino est programmé dans un langage de programmation spécial - il est basé sur C / C ++ et vous permet d'utiliser toutes les fonctions. Strictement parlant, une langue arduino séparée n'existe pas, car aucun compilateur Arduino - Les programmes écrits sont convertis (avec des modifications minimales) vers le programme C / C ++, puis compilé par le compilateur AVR-GCC. Donc, en fait, le spécialisé pour microcontrôleurs AVR Option C / C ++.

La différence réside dans le fait que vous obtenez un environnement de développement simple et un ensemble de bibliothèques de base qui simplifient l'accès au microcontrôleur périphérique situé "à bord".

D'accord, il est très pratique de commencer à travailler avec un port série à une vitesse de 9600 bits par seconde, appelant un appel à une ligne:

Série.begin (9600);

Et lorsque vous utilisez «Naked» C / C ++, vous devez faire face à la documentation du microcontrôleur et causer quelque chose de similaire:

Ubrr0h \u003d (((F_CPU / 16 + 9600/2) / 9600 - 1) \u003e\u003e 8;
Ubrr0l \u003d ((F_CPU / 16 + 9600/2) / 9600 - 1);
SBI (UCSR0B, RXEN0);
SBI (UCSR0B, TXEN0);
SBI (UCSR0B, RXCIE0);

Ici brièvement a commenté les principales fonctions et fonctionnalités de la programmation Arduino. Si vous ne connaissez pas la syntaxe C / C ++, nous vous conseillons de vous référer à toute littérature sur ce numéro ou à des sources Internet.

D'autre part, tous les exemples présentés sont très simples et vous n'aurez probablement pas de difficulté à comprendre les textes source et à rédiger nos propres programmes, même sans lecture de la littérature supplémentaire.

Plus la documentation complète (en anglais) est présentée sur le site officiel du projet - http://www.arduino.cc. Il existe également un forum, des liens vers des bibliothèques supplémentaires et leur description.

Par analogie avec la description sur le site officiel du projet Arduino, sous le "port" est compris comme contact du microcontrôleur, dérivé du connecteur sous le nombre approprié. De plus, il existe un port de données série (port COM).

Structure du programme

Dans votre programme, vous devez déclarer deux fonctions de base: Configuration () et boucle ().

La fonction Setup () est appelée une fois, après chaque mise sous tension ou que la carte Freeduino est déchargée. Utilisez-le pour initialiser les variables, définissez les modes de fonctionnement des ports numériques, etc.

La fonction LOOP () séquentiellement exécute à nouveau les commandes décrites dans son corps. Ceux. Après avoir terminé la fonction, cela l'appellera à nouveau.

Nous analyserons un exemple simple:

void setup () // paramètres initiaux
{
BEGINSERIAL (9600); // Réglage de la vitesse du port série à 9600 bits / s
Pinmode (3, entrée); // Réglage du 3ème port pour la saisie de données
}

// Le programme vérifie le 3ème port pour le signal et envoie la réponse à
// Formulaire de message texte sur ordinateur portant série
vide boucle () // corps corporel
{
Si (DigitalRead (3) \u003d\u003d High) // Condition pour l'enquête du 3ème port
Serialwrite ("h"); // Envoi d'un message sous la forme de la lettre "N" sur le port COM
AUTRE.
Serialwrite ("L"); // Envoi d'un message sous la forme de la lettre "L" sur le port COM
Retard (1000); // délai 1 sec.
}

pinmode (port, mode);

La description:

Configure le port spécifié pour entrer ou sortir le signal.

Paramètres:

le port est le numéro de port, le mode dont vous souhaitez définir (la valeur du type entier de 0 à 13).

mode d'entrée ou sortie (sortie).

pinmode (13, sortie); // 13ème sortie sera sortie
Pinmode (12, entrée); // une 12ème - entrée

Noter:

Les entrées analogiques peuvent être utilisées comme entrées / sorties numériques lors de leur accès à des numéros de 14 (entrée analogique 0) à 19 (entrée analogique 5)

denawrite (port, valeur);

La description:

Définit le niveau de tension élevé (élevé) ou faible (bas) dans le port spécifié.

Paramètres:

port: numéro de port

valeur: haut ou bas

denadewrite (13, élevé); // définit la 13e conclusion dans la condition "haute"

valeur \u003d digitalRead;

La description:

Lit la valeur sur le port spécifié

Paramètres:

port: Port interviewé

Valeur de retour: renvoie la valeur actuelle sur le type de port (haut ou bas) Int

int Val;
Val \u003d digitalRead (12); // sortie polie 12

Noter:

Si rien n'est connecté au port de lecture, la fonction DigitalRead () peut renvoyer au hasard les valeurs de haut ou de faible.

Entrée analogique / sortie

valeur \u003d analogrod;

La description:

Lit la valeur du port analogique spécifié. Freeduino contient 6 canaux, convertisseur analogique-numérique de 10 bits chacun. Cela signifie que la tension d'entrée de 0 à 5V est convertie en une valeur entière de 0 à 1023. La résolution de la lecture est la suivante: 5 V / 1024 Valeurs \u003d 0,004883 V / Valeur (4 883 mV). Environ 100 ns requis (0,0001 C) pour lire la valeur de l'entrée analogique, de sorte que la vitesse de lecture maximale est d'environ 10 000 fois par seconde.

Paramètres:

Valeur de retour: renvoie le nombre de type INT dans la plage de 0 à 1023, lisez à partir du port spécifié.

int Val;
Val \u003d analograde (0); // Lire la valeur à l'entrée analogique 0M

Noter:

Les ports analogiques par défaut sont définis sur l'entrée du signal et, contrairement aux ports numériques, ils ne doivent pas être configurés en appelant la fonction PINMODE.

analogueur (port, valeur);

La description:

Affiche une valeur analogique au port. Cette fonctionnalité fonctionne sur les points de: 3, 5, 6, 9, 10 et 11 ports numériques Freeduino.

Peut être utilisé pour changer la luminosité de la DEL, pour contrôler le moteur, etc. Après avoir appelé la fonction analogueur, le port correspondant commence à fonctionner dans le mode de modulation et de modulation d'impulsions jusqu'à ce que l'appel suivant soit la fonction analogueur (ou les fonctions DigitalDead / DigitalWrite sur le même port).

Paramètres:

port: le numéro de l'entrée analogique interrogée

valeur: interne entre 0 et 255. La valeur 0 génère 0 dans le port spécifié; La valeur 255 génère +5 V sur le port spécifié. Pour des valeurs comprises entre 0 et 255, le port commence à alterner rapidement le niveau de tension 0 et +5 V - plus la valeur est élevée, le port le plus fréquent génère le niveau élevé (5 V).

analogwrite (9, 128); // Définissez la valeur de la valeur équivalente à 2,5 V

Noter:

Pas besoin d'appeler la fonction Pinmode pour définir le port de sortie du signal avant d'appeler la fonction analogueur.

La fréquence de génération de signal est d'environ 490 Hz.

temps \u003d millis ();

La description:

Renvoie le nombre de millisecondes depuis l'exécution du programme actuel de Freeduino. Le compteur débordera et réinitialisera environ 9 heures.

Valeur de retour: Renvoie la valeur du non signé long

non signé longtemps; // Annonce du type de temps variable non signé longtemps
Temps \u003d millis (); // transférer le nombre de millisecondes

retard (time_ms);

La description:

Susks un programme à un nombre spécifié de millisecondes.

Paramètres:

tIME_MS - Le temps de retard de temps en millisecondes

retard (1000); // pause 1 seconde

retardmicrosecondes.

retardmicroseconds (time_mx);

La description:

Suspens le programme à un nombre donné de microsecondes.

Paramètres:

tIME_MKS - Délai de programme dans les microsecondes

retardmicrosecondes (500); // Pause 500 microsecondes

pulsein (port, valeur);

La description:

Lit l'impulsion (haut ou faible) C du port numérique et renvoie la durée d'impulsion dans les microsecondes.

Par exemple, si le paramètre "valeur" lorsque la fonction est appelée haute, la pulseine () s'attend à ce que le port recevra un niveau de signal élevé. À partir du moment de son reçu, cela commence le compte à rebours jusqu'à ce que le niveau de signal bas arrive sur le port. La fonction renvoie la longueur d'impulsion ( haut niveau) En microsecondes. Fonctionne avec des impulsions de 10 microsecondes jusqu'à 3 minutes. Veuillez noter que cette fonctionnalité ne retournera pas le résultat tant que l'impulsion n'est pas détectée.

Paramètres:

port: numéro de port à partir de laquelle vous avez lu l'impulsion

valeur: type d'impulsion élevé ou faible

Valeur de retour: retourne la durée d'impulsion dans les microsecondes (type INT)

int Durée; // Annonce de la durée de la durée int
Durée \u003d pulpsine (épingle, élevée); // mesurer la durée du pouls

Transmission de données séquentielles

Freeduino dispose d'un contrôleur intégré pour la transmission de données série, qui peuvent être utilisés à la fois pour la communication entre les périphériques Freeduino / Arduino et pour la communication avec l'ordinateur. Sur l'ordinateur, le composé correspondant est représenté par un port COM USB.

La communication se produit sur les ports numériques 0 et 1, et vous ne pouvez donc pas les utiliser pour des E / S numériques si vous utilisez les fonctions de transmission de données série.

Serial.begin (Speed_Start);

La description:

Définit le taux de transmission des informations de port COM par seconde pour la transmission de données séquentielles. Afin de rester en contact avec un ordinateur, utilisez une de ces vitesses normalisées: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 38400, 57600, ou 115200. Vous pouvez également définir d'autres vitesses lors de la communication avec un autre Microcontrôleur par ports 0 et 1.

Paramètres:

vitesse de départ: débit de données dans les bits par seconde.

Série.begin (9600); // Installez la vitesse de 9600 bits / s

Serial.Vailable

compte \u003d série.Vailable ();

La description:

Les octets reçus sur le port série entrent dans le tampon de microcontrôleur, où votre programme peut-il compter. La fonction renvoie le nombre de tampons d'octets accumulés. Un tampon série peut stocker jusqu'à 128 octets.

Valeur de retour:

Renvoie la valeur de type INT - le nombre d'octets disponibles pour la lecture, dans un tampon série ou 0, si rien n'est disponible.

si (série.Available ()\u003e 0) (// si le tampon a des données
// ici doit recevoir et traiter des données
}

char \u003d sériial.read ();

La description:

Lit l'octet suivant à partir du tampon de port série.

Valeur de retour:

Le premier octet disponible des données entrantes du port série, ou -1 s'il n'y a pas de données entrantes.

entrantbyte \u003d sériial.read (); // lire octet

La description:

Efface le tampon d'entrée de port séquentiel. Les données tamponnées sont perdues et appellent d'autres appels série.Read () ou série.Available () aura un sens pour les données obtenues après avoir appelé Serial.Flush ().

Série.flush (); // Nettoyer le tampon - Démarrer la réception de données "de la feuille pure"

La description:

Sortie de données au port série.

Paramètres:

La fonction comporte plusieurs formulaires d'appel en fonction du type et du format des données de sortie.

Serial.Print (B, DEC) Affiche la chaîne ASCII - la représentation décimale du nombre B.

int b \u003d 79;

Serial.Print (B, HEX) affiche la chaîne ASCII - une représentation hexadécimale du nombre b.

int b \u003d 79;

Serial.Print (B, OCT) Affiche la chaîne ASCII - la représentation octale du nombre B.

int b \u003d 79;
Série.Print (B, Oct); // donnera une ligne "117"

Serial.Print (B, BIN) affiche la ligne ASCII - la représentation binaire du nombre B.

int b \u003d 79;
Série.Print (B, bin); // donnera une ligne dans le port "1001111"

Serial.Print (b, octet) affiche l'octet cadet du numéro b.

int b \u003d 79;
Série.Print (B, octet); // va produire 79 (un octet). Dans le moniteur
// port série Obtenez le symbole "O" -
// code est 79

Serial.Print (STR) Si STR est une chaîne ou une matrice de caractères, distribue le STR au port COM.

char octets \u003d (79, 80, 81); // Array de 3 octets avec des valeurs 79,80,81
Série.Print ("Ici Nos octets:"); // affiche la chaîne "ici nos octets:"
Série.Print (octets); // affiche 3 caractères avec des codes 79,80,81 -
// Ce sont des caractères "OPQ"

Serial.Print (b) Si B a un octet ou un type de caractère, affiche le numéro B.

char b \u003d 79;
Série.Print (b); // donnera un symbole "o"

Serial.Print (B) Si B a un type entier, affiche la représentation décimale du nombre b.

int b \u003d 79;
Série.Print (b); // donnera une ligne "79"

La description:

La fonctionnalité SERIAL.PRINTLN est similaire à la fonction série.Print et a les mêmes options d'appel. La seule différence est qu'après les données, deux caractères sont également affichés - le symbole de retour de chariot (ASCII 13 ou "\\ r") et un nouveau symbole de ligne (ASCII 10 ou "\\ N").

Exemple 1 et l'exemple 2 apportera la même chose au port:

int b \u003d 79;
Série.Print (b, déc); // donnera une ligne "79"
Série.Print ("\\ r \\ n"); // affiche les caractères "\\ r \\ n" - traduction de la ligne
Série.Print (b, hex); // donnera une ligne "4f"
Serial.Print ("\\ r \\ n"); // retire les caractères "\\ r \\ n" - traduction de la chaîne

int b \u003d 79;
Série.println (b, déc); // donnera une ligne "79 \\ r \\ n"
Série.println (b, hex); // donnera la ligne "4f \\ r \\ n"

Dans le moniteur du port série, nous obtenons.

Dans cet article, j'ai résolu une complète collectée guide pas à pas Pour débutants arduino. Nous analyserons ce que l'Arduino est que vous devez commencer à apprendre où télécharger et comment installer et configurer l'environnement de programmation, car cela fonctionne et comment utiliser la langue de programmation et bien plus encore, ce qui est nécessaire pour créer des périphériques complexes à part entière basés sur la base de périphériques complexes. sur la famille de ces microcontrôleurs.

Ici, je vais essayer de donner un minimum compressé pour ce que vous comprendriez les principes de travailler avec Arduino. Pour une immersion plus complète dans le monde des microcontrôleurs programmables, faites attention à d'autres sections et articles de ce site. Je laisserai des références à d'autres documents de ce site pour une étude plus détaillée de certains aspects.

Qu'est-ce que Arduino et qu'est-ce que c'est nécessaire?

Arduino est un concepteur électronique qui permet à toute personne de créer une variété de dispositifs mécaniques électriques. Arduino est composé de logiciels et de matériel. La partie du programme comprend un environnement de développement (programme de rédaction et de débogage du micrologiciel), de nombreuses bibliothèques prêtes à l'emploi et pratiques, langage de programmation simplifié. Le matériel comprend une grande gamme de microcontrôleurs et des modules prêts à l'emploi pour eux. Grâce à cela, travailler avec Arduino est très simple!

Avec l'aide d'Arduino, vous pouvez étudier la programmation, l'ingénierie électrique et la mécanique. Mais ce n'est pas simplement un concepteur de formation. Sur sa base, vous pouvez faire des appareils vraiment utiles.
En commençant par des clignotants simples, des stations météorologiques, des systèmes d'automatisation et la fin avec un système à domicile intelligent, des machines CNC et des aéronefs sans pilote. Les opportunités ne sont pas limitées à votre fantasy, car il existe un grand nombre d'instructions et d'idées de mise en œuvre.

Démarrer l'ensemble Arduino

Afin de commencer à apprendre Arduino, vous devez obtenir un microcontrôleur et des détails supplémentaires. Il est préférable d'acheter un ensemble de départ Arduino, mais vous pouvez choisir tout ce dont vous avez besoin. Je vous conseille de choisir un ensemble, car il est plus facile et souvent moins cher. Voici les liens vers les meilleurs ensembles et sur des détails distincts qui vous utiliseront certainement pour explorer:

Set de base Arduino pour débutants:Acheter
Grand ensemble pour l'apprentissage et les premiers projets:Acheter
Ensemble de capteurs et modules supplémentaires:Acheter
Arduino Uno Basic et Modèle pratique de la ligne:Acheter
Frais de vidage célébré pour une formation et un prototypage pratiques:Acheter
Ensemble de fils avec connecteur pratique:Acheter
Ensemble de DEL:Acheter
Ensemble de résistances:Acheter
Boutons:Acheter
Potentiomètres:Acheter

Environnement de développement arduino ide

Pour écrire, déboguer et télécharger le micrologiciel, vous devez télécharger et installer Arduino Ide. C'est très simple et programme pratique. Sur mon site, j'ai déjà décrit le processus de téléchargement, d'installation et de définition de l'environnement de développement. Par conséquent, ici je laisserai juste des liens vers dernière version Programmes et sur

Version les fenêtres Mac OS X. Linux.
1.8.2

Langage de programmation Arduino

Lorsque vous avez une carte de microcontrôleur sur vos mains et qu'un ordinateur a été installé sur un ordinateur, vous pouvez commencer à écrire vos premiers croquis (micrologiciel). Pour ce faire, vous devez vous familiariser avec le langage de programmation.

La programmation Arduino utilise une version simplifiée de la langue C ++ avec des fonctions prédéfinies. Comme dans d'autres langages de programmation C et tels que, il existe un certain nombre de règles de rédaction de code. Voici les plus élémentaires:

  • Après chaque instruction, vous devez mettre un point avec un point-virgule (;)
  • Avant de déclarer la fonction, vous devez spécifier le type de données renvoyé par la fonction ou annuler si la fonction ne renvoie pas la valeur.
  • Vous pouvez également spécifier le type de données avant de déclarer la variable.
  • Les commentaires sont indiqués: // chiffre et / * bloc * /

Vous pouvez en savoir plus sur les types de données, les fonctionnalités, les variables, les opérateurs et les structures linguistiques de la page dont vous n'avez pas besoin de mémoriser et de mémoriser toutes ces informations. Vous pouvez toujours aller dans le répertoire et voir la syntaxe d'une fonction particulière.

Tous les firmware pour Arduino doivent contenir un minimum de 2 fonctions. Ceci est configuré () et boucle ().

Fonction de configuration

Pour que tout fonctionnait, nous devons écrire un croquis. Faisons-le de sorte que le voyant s'allume après avoir appuyé sur le bouton et après la prochaine pression de gaz. Voici notre première esquisse:

// variables avec des broches de périphériques connectés int Cutterpin \u003d 8; INT LEDPIN \u003d 11; // variables pour stocker l'état du bouton et le boolean LastButton \u003d faible LED; Boolean CurrentButton \u003d faible; Boolean LEDON \u003d faux; Void Configuration () (Pinmode (Cuisson, entrée); Pinmode (LEDPIN, SORTIE);) // Fonction pour supprimer la réduction bolienne (Boolean Current \u003d DigitalRead (Dernière! \u003d Current) (Délai (5); Courant \u003d digitalRead (Cuisson);) Retourner actuellement;) Vide de boucle () (LastButton); Si (LastButton \u003d\u003d LOW && COURANTBUTTON \u003d\u003d HIGH) (LEDON \u003d! LED;) DIRECTUNTONE; DIVINGWRITTON (LEDPIN , Conduit sur);)

// variables avec des appareils connectés des broches

int Cutterpin \u003d 8;

iNT LEDPIN \u003d 11;

// variables pour stocker l'état d'un bouton et DEL

boolean LastButton \u003d bas;

boolean CurrentButton \u003d faible;

boolean LEDON \u003d faux;

void setup () (

pinmode (cuillère, entrée);

pinmode (LEDPIN, SORTIE);

// fonction pour la suppression de broyage

boolean Debounse (dernier Boolean) (

courant booléen \u003d digitalRead (Cuisson);

si (dernier! \u003d courant) (

retard (5);

courant \u003d DigitalRead (Cuisson);

retourner actuellement;

boucle vide () (

actuelButton \u003d Debounse (LastButton);

si (LastButton \u003d\u003d Low && Currentton \u003d\u003d High) (

lEDON \u003d! Conduit sur;

lastButton \u003d actuelButton;

denawrite (LEDPIN, LEDON);

Dans ce croquis, j'ai créé une fonction supplémentaire de Debounse pour supprimer la récréation des contacts. Sur les hochets des contacts sont sur mon site. Assurez-vous de vous familiariser avec ce matériel.

Shim Arduino.

La latitude et la modulation d'impulsions (PWM) est un processus de contrôle de la tension due à un signal. C'est-à-dire à l'aide de PWM, nous pouvons contrôler en douceur la charge. Par exemple, vous pouvez modifier en douceur la luminosité de la LED, mais ce changement de luminosité n'est obtenu pas en réduisant la tension, mais en augmentant les intervalles de signal bas. Le principe d'exploitation PWM est indiqué dans ce schéma:

Lorsque nous servons pwm sur la LED, il commence à brûler et à sortir rapidement. L'œil humain n'est pas capable de le voir, puisque la fréquence est trop élevée. Mais lorsque vous tournez sur la vidéo, vous verrez probablement des moments lorsque le voyant ne brûle pas. Cela se produira, à condition que le taux de trame de la caméra ne soit pas multiplié par la fréquence PWM.

Arduino a un modulateur d'impulsions intégré. Vous pouvez utiliser PWM uniquement sur ces pins prises en charge par un microcontrôleur. Par exemple, Arduino Uno et Nano ont 6 conclusions de PWM: ce sont des broches D3, D5, D6, D9, D10 et D11. Dans d'autres conseils, Pina peut différer. Vous pouvez trouver une description des frais d'intérêt pour vous dans

Pour utiliser PWM à Arduino, il existe une fonction, il faut un numéro de pin sous forme d'arguments et de la valeur PWM de 0 à 255. 0 est de 0% de remplissage avec un signal élevé et 255 est 100%. Permettez-moi d'écrire un croquis simple par exemple. Nous faisons de sorte que le voyant s'éclaircit en douceur, attendit une seconde et également falsifié et si indéfiniment. Voici un exemple d'utilisation de cette fonctionnalité:

// LED connectée à 11 broches int eldpin \u003d 11; Configuration du vide () (Pinmode (LEDPIN, SORTIE);) BOUCLE VOI () (pour (int i \u003d 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i > 0; I--) (analogueur (LEDPIN, I); retard (5);))

// LED connecté à 11 broches

iNT LEDPIN \u003d 11;

void setup () (

pinmode (LEDPIN, SORTIE);

boucle vide () (

pour (int i \u003d 0; je< 255 ; i ++ ) {

analogueur (LEDPIN, I);

retard (5);

retard (1000);

pour (int i \u003d 255; I\u003e 0; I -) (



Avez-vous aimé l'article? Partagez-le