Programmation Arduino pour débutants. Arduino pour débutants : instructions étape par étape. Programmation et projets Arduino : par où commencer

Dans cet article, j'ai décidé de rédiger un guide complet, étape par étape, pour les débutants Arduino. Nous examinerons ce qu'est Arduino, ce dont vous avez besoin pour commencer à apprendre, où télécharger et comment installer et configurer l'environnement de programmation, comment il fonctionne et comment utiliser le langage de programmation, et bien plus encore, ce qui est nécessaire pour créer un environnement de programmation à part entière. des dispositifs complexes basés sur la famille de ces microcontrôleurs.

Ici, je vais essayer de donner un minimum condensé afin que vous compreniez les principes du travail avec Arduino. Pour une immersion plus complète dans le monde des microcontrôleurs programmables, faites attention aux autres rubriques et articles de ce site. Je laisserai des liens vers d'autres documents sur ce site pour une étude plus détaillée de certains aspects.

Qu'est-ce qu'Arduino et à quoi ça sert ?

Arduino est un kit de construction électronique qui permet à quiconque de créer une variété d'appareils électromécaniques. Arduino se compose de logiciels et de matériel. La partie logicielle comprend un environnement de développement (un programme d'écriture et de débogage du firmware), de nombreuses bibliothèques prêtes à l'emploi et pratiques et un langage de programmation simplifié. Le matériel comprend une large gamme de microcontrôleurs et de modules prêts à l'emploi pour ceux-ci. Grâce à cela, travailler avec Arduino est très simple !

Avec l'aide d'Arduino, vous pouvez apprendre la programmation, l'électrotechnique et la mécanique. Mais il ne s’agit pas seulement d’un constructeur pédagogique. Sur cette base, vous pouvez créer des appareils vraiment utiles.
En commençant par de simples feux clignotants, des stations météorologiques, des systèmes d'automatisation et en terminant par des systèmes de maison intelligente, des machines CNC et des véhicules aériens sans pilote. Les possibilités ne sont même pas limitées par votre imagination, car il existe un grand nombre d'instructions et d'idées de mise en œuvre.

Kit de démarrage Arduino

Afin de commencer à apprendre Arduino, vous devez acquérir la carte microcontrôleur elle-même et des pièces supplémentaires. Il est préférable d'acheter un kit de démarrage Arduino, mais vous pouvez choisir vous-même tout ce dont vous avez besoin. Je recommande de choisir un ensemble car c'est plus simple et souvent moins cher. Voici des liens vers les meilleurs ensembles et pièces individuelles que vous devrez certainement étudier :

Kit Arduino de base pour débutants :Acheter
Grand ensemble pour la formation et les premiers projets :Acheter
Ensemble de capteurs et modules supplémentaires :Acheter
Arduino Uno est le modèle le plus basique et le plus pratique de la gamme :Acheter
Platine d'essai sans soudure pour un apprentissage et un prototypage faciles :Acheter
Jeu de fils avec connecteurs pratiques :Acheter
Ensemble de LED :Acheter
Kit de résistances :Acheter
Boutons:Acheter
Potentiomètres :Acheter

Environnement de développement Arduino IDE

Pour écrire, déboguer et télécharger le firmware, vous devez télécharger et installer l'IDE Arduino. C'est un programme très simple et pratique. Sur mon site Web, j'ai déjà décrit le processus de téléchargement, d'installation et de configuration de l'environnement de développement. Par conséquent, je laisserai ici simplement des liens vers la dernière version du programme et vers

Version Fenêtres Mac OS X Linux
1.8.2

Langage de programmation Arduino

Lorsque vous avez entre les mains une carte microcontrôleur et un environnement de développement installé sur votre ordinateur, vous pouvez commencer à écrire vos premiers croquis (firmware). Pour ce faire, vous devez vous familiariser avec le langage de programmation.

La programmation Arduino utilise une version simplifiée du langage C++ avec des fonctions prédéfinies. Comme dans d’autres langages de programmation de type C, il existe un certain nombre de règles pour écrire du code. Voici les plus basiques :

  • Chaque instruction doit être suivie d'un point-virgule (;)
  • Avant de déclarer une fonction, vous devez spécifier le type de données renvoyé par la fonction, ou void si la fonction ne renvoie pas de valeur.
  • Il est également nécessaire d'indiquer le type de données avant de déclarer une variable.
  • Les commentaires sont désignés : // Inline et /* block */

Vous pouvez en savoir plus sur les types de données, les fonctions, les variables, les opérateurs et les constructions de langage sur la page Vous n'avez pas besoin de mémoriser et de mémoriser toutes ces informations. Vous pouvez toujours consulter l'ouvrage de référence et consulter la syntaxe d'une fonction particulière.

Tout firmware Arduino doit contenir au moins 2 fonctions. Ce sont setup() et loop().

fonction de configuration

Pour que tout fonctionne, nous devons rédiger un croquis. Allumons la LED après avoir appuyé sur le bouton et éteignons-la après la prochaine pression. Voici notre premier croquis :

// variables avec les broches des appareils connectés int switchPin = 8; int ledPin = 11 ; // variables pour stocker l'état du bouton et de la LED boolean lastButton = LOW; booléen currentButton = LOW ; booléen ledOn = faux ; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // fonction anti-rebond booléenne debounse(boolean last) ( boolean current = digitalRead(switchPin); if(last != current) ( delay ( 5); current = digitalRead(switchPin); ) return current ) void loop() ( currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) ( ledOn = !ledOn; ) lastButton = currentButton ; digitalWrite (ledPin, ledOn);

// variables avec les broches des appareils connectés

int switchPin = 8 ;

int ledPin = 11 ;

// variables pour stocker l'état du bouton et de la LED

booléen lastButton = LOW ;

booléen currentButton = LOW ;

booléen ledOn = faux ;

configuration vide() (

pinMode(switchPin, INPUT);

pinMode(ledPin, SORTIE);

// fonction anti-rebond

booléen debounse (booléen dernier) (

courant booléen = digitalRead (switchPin);

if (dernier != courant ) (

retard(5);

courant = digitalRead (switchPin);

courant de retour ;

boucle vide() (

currentButton = debounse(lastButton);

if (lastButton == LOW && currentButton == HIGH ) (

ledOn = ! LED allumée ;

lastButton = currentButton ;

digitalWrite(ledPin, ledOn);

Dans ce croquis, j'ai créé une fonction anti-rebond supplémentaire pour supprimer le rebond de contact. Il y a des informations sur le rebond des contacts sur mon site Web. Assurez-vous de consulter ce matériel.

PWM Arduino

La modulation de largeur d'impulsion (PWM) est le processus de contrôle de la tension à l'aide du rapport cyclique d'un signal. Autrement dit, en utilisant PWM, nous pouvons contrôler la charge en douceur. Par exemple, vous pouvez modifier en douceur la luminosité d'une LED, mais ce changement de luminosité n'est pas obtenu en diminuant la tension, mais en augmentant les intervalles du signal faible. Le principe de fonctionnement du PWM est illustré dans ce schéma :

Lorsque nous appliquons du PWM à une LED, elle commence à s'allumer et à s'éteindre rapidement. L’œil humain ne peut pas le voir car la fréquence est trop élevée. Mais lors de l'enregistrement d'une vidéo, vous verrez très probablement des moments où la LED n'est pas allumée. Cela se produira à condition que la fréquence d'images de la caméra ne soit pas un multiple de la fréquence PWM.

Arduino dispose d'un modulateur de largeur d'impulsion intégré. Vous pouvez utiliser PWM uniquement sur les broches prises en charge par le microcontrôleur. Par exemple, Arduino Uno et Nano ont 6 broches PWM : ce sont les broches D3, D5, D6, D9, D10 et D11. Les broches peuvent différer sur d'autres cartes. Vous pouvez trouver une description du forum qui vous intéresse

Pour utiliser PWM dans Arduino, il existe une fonction. Elle prend comme arguments le numéro de broche et la valeur PWM de 0 à 255. 0 correspond à 0 % de remplissage avec un signal élevé et 255 correspond à 100 %. Écrivons un croquis simple à titre d'exemple. Faisons en sorte que la LED s'allume doucement, attendons une seconde et s'éteigne tout aussi doucement, et ainsi de suite à l'infini. Voici un exemple d'utilisation de cette fonction :

// La LED est connectée à la broche 11 int ledPin = 11; void setup() ( pinMode(ledPin, OUTPUT); ) void loop() ( for (int i = 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i >0 ; i--) ( analogWrite(ledPin, i); delay(5); ) )

// LED connectée à la broche 11

int ledPin = 11 ;

configuration vide() (

pinMode(ledPin, SORTIE);

boucle vide() (

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

analogWrite(ledPin, je);

retard(5);

retard (1000);

pour (int je = 255; je > 0; je -- ) (

Beaucoup ont probablement entendu parler d'une plate-forme aussi merveilleuse, mais en raison d'une mauvaise connaissance de l'électronique ou de la programmation, beaucoup décideront de contourner Arduino. Oui, la plateforme est assez complexe, mais vous pouvez le comprendre, l'essentiel est le désir. Pendant longtemps, je n'ai pas osé étudier cette plateforme, mais un beau jour, j'ai réalisé qu'elle pouvait me faciliter la vie...
Il y a beaucoup d'informations sur Arduino sur Internet, mais sans pratique, aucune théorie n'aidera, j'ai donc décidé d'acheter ce kit, mais permettez-moi d'anticiper qu'il est encore moins cher d'acheter tous les composants vous-même, pas avec un kit, mais avec des archives avec instructions et programmes (croquis postés ci-dessous).
Pourquoi ai-je pris cet ensemble, car il y a beaucoup de choix en Chine ? Auparavant, Arduino était comme quelque chose de transcendantal et d'incompréhensible pour moi, et je l'ai choisi uniquement en raison du nombre de leçons, c'est pourquoi j'ai choisi cet ensemble, d'ailleurs, j'en ai déjà examiné un similaire.

Je l'ai acheté directement chez Tao :

L'ensemble était livré dans un coffret en plastique scellé avec du scotch, apparemment pour que rien ne puisse être sorti de la boîte (j'avais déjà déchiré le scotch) :


Qu'y a-t-il dans la boîte ?

Équipement:



- 1x carte arduino uno, peut-être même l'originale
- 1x afficheur LCD 16 caractères sur 2 lignes avec carte i2c


- 15x LED : 5 pièces. rouge, 5 pièces. bleu et 5 pcs. couleur orange


- 3x photorésistance
- 1x récepteur IR
- 1x capteur de flamme
- 2 capteurs de vibrations
- 1x capteur de température
- 4 boutons
- 2 piézoéléments


- affichage LED numérique à 1 chiffre
- affichage LED numérique à 4 chiffres
- Matrice LED 8x8


- 8x résistance constante à 220 Ohm
- 5x résistance constante à 1 kOhm
- 5x résistance constante à 10 kOhm


- 1x résistance variable (potentiomètre) 50 kOhm


- 1x grand espace d'aménagement


- 1x câble DuPont femelle-mâle 30 fils multicolores


- 30 fils de connexion pour la planche à pain mâle-mâle


- 1x câble USB


- 1x carte RFID
- 1x carte RFID
- 1x RFID pour les clés


- 1x télécommande IR
- 1x module micro
- 1x pavé poussoir modèle 4x4
- 1x relais
- 1x module horloge
- 1x module pilote pour moteur
- 1x module capteur de température et d'humidité
- 1x module joystick
- 1x module LED RVB
- 1x module capteur d'humidité
- 1x câble d'alimentation pour couronne


- 1x servomoteur
- 1x moteur avec réducteur


- 1x registre à décalage 74НС595N
Voilà à quoi ressemble le tout assemblé :



Quand j'ai reçu l'ensemble, j'ai immédiatement commencé à chercher des instructions, mais je n'ai rien trouvé à l'intérieur de la boîte, je pensais que les chinois m'avaient trompé et j'étais sur le point de discuter avec lui, mais j'ai lu la description du lot et il y avait un lien avec toutes les instructions et programmes : (mot de passe:22cd)
Mais il vaut mieux ne pas utiliser de programmes chinois, il est donc préférable de télécharger le programme de programmation Arduino depuis le site officiel :
Mais j'ai rassemblé des instructions, des programmes, des croquis trouvés sur Internet et mes croquis, qui m'ont été utiles pour maîtriser l'arduino.

Commencer

Je vous recommande de lire d'abord le livre pdf en russe : Guide to Mastering Arduino - 2012, qui se trouve sur le mien. Il y a beaucoup d’informations utiles écrites dans un langage clair, mais il n’y a que quelques leçons.
Dans les archives Modkit_Desktop_WIN32_Kickstarter_v2.zip il existe un programme pour la programmation visuelle.
Dans les archives Arduino - Chinois.rar Il existe des instructions chinoises, des croquis chinois, des bibliothèques, mais il y a beaucoup d'erreurs.
Dans les archives Arduino - programme.rar Il existe un programme Arduino avec des bibliothèques qui m'ont été utiles pour maîtriser Arduino.
Dans les archives arduino-master - de nombreuses leçons.zip Il existe de nombreuses leçons, diagrammes, bibliothèques avec de bonnes descriptions en anglais. De plus, la plupart de ces archives ont été « récupérées » par les Chinois.
Dans les archives Mes croquis.rar Il y a mes projets, même s'il y en a 34, je n'ai pas fait tous les cours de chinois, j'en ai corrigé certains et j'ai fait le tout dernier projet tout seul. Les numéros de mes croquis ne correspondent pas aux numéros des leçons révisées, mais tous mes croquis sont signés en translittération et je pense que tout le monde comprendra.
Commençons !
Leçon n°1 – LED clignotante
Pour ce tutoriel, nous aurons besoin de ces pièces :


- 2 fils (je n'indiquerai pas plus loin le nombre de fils),
- DIRIGÉ,
- une résistance de 220 Ohms,
- planche à pain et carte arduino uno
Connecter:


Et on obtient :
Leçon n°2 - Connecter 8 LED - feux de position
Pour cette leçon, vous aurez besoin de :
- 8 LED,
- 8 résistances à 220 Ohm,

Je l'ai connecté un peu mal, j'ai mis 1 résistance à la masse et je l'ai connecté à toutes les LED :




Résultat:
Leçon n°3 - Changer la luminosité des LED à l'aide d'une résistance variable
Nous avons besoin de :
- DIRIGÉ,
- résistance variable,
- une résistance de 220 Ohms,
- fils, planche à pain et arduino


Cette fois, j'ai décidé de ne pas connecter de résistance à la LED, mais si vous la connectez "en permanence", alors vous devez mettre une résistance sur la LED, sinon la LED grillera rapidement.




Résultat:
Leçon n°4 - feux de circulation composés de 6 LED
Nécessaire:
- 6 LED,
- Résistance de 220 Ohms
- fils, planche à pain et arduino


Cela s'est passé comme ceci :




Résultat:
Leçon n°5 - connecter une LED RVB
Vous aurez besoin de :
-Module RVB
- fils, planche à pain et arduino


Cela s'est passé comme ceci :




Résultat:
Leçon n°6 - connexion de l'élément piézoélectrique
Détails:
- élément piézoélectrique
- fils, planche à pain et arduino


Cela s'est passé comme ceci :


Résultat:

Avec de la musique :

Leçon n°8 - allumer la LED depuis le bouton
Détails:
- bouton
- DIRIGÉ
- résistances 220 Ohm et 10 kOhm
- fils, planche à pain et arduino


Cela s'est passé comme ceci :


Résultat:
Leçon n°8.1 - marche/arrêt. LED du bouton
Détails:
- DIRIGÉ
- 2 boutons
- Résistance de 220 Ohms
- 2 résistances à 10 kOhm
- fils, planche à pain et arduino


Ça s'est passé comme ça




Résultat:
Leçon n°8.2 - changer la luminosité de la LED depuis le bouton
Le schéma de connexion est identique à la leçon 8.1, seul le croquis est différent et le résultat est :
Leçon n°9 - servomoteur
Détails:
- servomoteur
- fils, planche à pain et arduino


Cela s'est passé comme ceci :


Résultat:
Leçon n°10 - connexion du registre à décalage 74HC595
Détails:
- 8 LED
- registre à décalage 74HC595
- 8 résistances à 220 Ohm
- fils, planche à pain et arduino


Cela s'est passé comme ceci :

Leçon n°11 - changer la luminosité d'une LED à l'aide d'une photorésistance
Détails:
- photorésistance
- DIRIGÉ
- Résistance de 220 Ohm et 10 kOhm
- fils, planche à pain et arduino


Cela s'est passé comme ceci :


Résultat:
Leçon n°12 – voltmètre
Détails:
- batterie
- Résistance de 10 kOhms
- fils, planche à pain et arduino
Cela s'est passé comme ceci :




Leçon n°13 – mesurer la température
Détails:
- capteur de température
- fils, planche à pain et arduino
Cela s'est passé comme ceci :


Le résultat est affiché dans le « moniteur protra » :


Si vous chauffez le capteur avec un briquet, la température change :

Leçon n°13.1 - changement de température - affichage visuel
Détails:
- capteur de température
- 3 LED
- Résistance de 220 Ohms
- fils, planche à pain et arduino
Cela s'est passé comme ceci :


Résultat:
Leçon n°14 – connecter un écran LED numérique
Détails:
- 6 résistances 220 Ohm
- affichage LED numérique
- fils, planche à pain et arduino
Cela s'est passé comme ceci :


Le résultat du croquis chinois :

Le résultat de mon croquis modifié :

Leçon n°14 - connexion d'un afficheur LED numérique à 4 chiffres
Détails:
- Panneau LED à 4 chiffres
- fils, planche à pain et arduino
Cela s'est passé comme ceci :


Le résultat est un chronomètre :
Leçon n°15 - connecter une matrice LED 8x8
Détails:
- Matrice LED 8x8
- fils et arduino
Cela s'est passé comme ceci :




Le résultat de mon croquis :
Leçon n°16 - connecter un capteur d'humidité
Détails:
- capteur d'humidité
- LED (j'ai connecté le module RGB à 1 LED)
- fils et arduino
Cela s'est passé comme ceci :


Résultat:
Leçon n°17 ​​- mesurer la température et l'humidité
Détails:
- capteur d'humidité et de température
- fils et arduino
Cela s'est passé comme ceci :


Le résultat est affiché dans le « moniteur protra » :
Leçon n°18 - connexion du module relais
Détails:
-module relais
- DIRIGÉ
- Résistance de 220 Ohms
- fils, planche à pain et arduino
Cela s'est passé comme ceci :


Résultat:
Leçon n°19 - connecter un écran LCD 16x2
Détails:
- Écran LCD1602
- fils et arduino
Cela s'est passé comme ceci :


Résultat:

Leçon n°20 - connecter le moteur
Détails:
- module pilote pour le moteur
- moteur avec réducteur
- fils et arduino
Cela s'est passé comme ceci :


Résultat:
Leçon n°21 - Allumer/éteindre les LED à l'aide de la télécommande
Détails:
-Télécommande IR
- Récepteur IR
- 6 LED
- 6 résistances 220Ohm
- fils, planche à pain et arduino


Cela s'est passé comme ceci :


Résultat:
Leçon n°22 - Connecter un joystick
Détails:
- manette de jeu
- fils et arduino
Le résultat est affiché dans le « moniteur protra » :
Leçon n°23 - Connecter un clavier 4x4
Détails:
- clavier
- fils et arduino
Le résultat est affiché dans le « moniteur protra » :
Leçon n°24 – Connexion RFID
Détails:
-Module RFID
- fils et arduino
Cela s'est passé comme ceci :


Le résultat est affiché dans le « moniteur protra » - lecture du dump de la carte :


Le résultat est affiché dans le « moniteur protra » - lecture du porte-clés :


Le résultat est affiché dans le « moniteur protra » - J'ai essayé de lire l'UEC, une carte bancaire avec payWave et une carte de transport :

Je n’ai reçu que 24 leçons ; je n’ai pas couvert le reste dans la révision, même si je les ai collectées et vérifiées moi-même ;

Pour consolider le résultat, j'ai décidé d'assembler un thermomètre numérique et d'écrire un programme, même si au début je voulais assembler un compteur d'humidité et de température, mais à cause d'une mauvaise connexion, j'ai « tué » ce module, il ne me restait donc plus qu'à le faire une mesure de température.

Devoirs - thermomètre numérique
Détails:
- capteur de température
- Écran LCD
- fils, planche à pain et arduino
Cela s'est passé comme ceci :


Le plus difficile reste de combiner 2 croquis et pour que tout fonctionne, on obtient ce croquis :

Thermomètre numérique

#inclure #inclure Écran LCD LiquidCrystal_I2C (0x27,16,2); int potPin = 0 ; // broche où le capteur est connecté float dat = 0; // variable pour la température void setup() ( lcd.init(); lcd.backlight(); lcd.begin(16, 2); lcd.print("S"); delay(300); lcd.print(" p"); delay(300); lcd.print("e"); delay(300); lcd.print("c"); delay(300); lcd.print("i"); delay(300) ; lcd.print("a"); lcd.print("l"); lcd.print("l"); // attendre 0,5 seconde print("y"); 0,5 seconde lcd.print("f"); // attendez 1 seconde lcd.print("o"); // attendez 1 seconde lcd.print("r"); print("t") ; délai (300); lcd.print("t"); lcd.print(": "/"); ; lcd.print("y"); (300); lcd.print("r") ; lcd.print("u"); //efface le délai d'écran (1000);


lcd.setCursor(0, 0); lcd.print("Spécialement pour"); lcd.setCursor(0, 1); lcd..clear(); //efface le délai d'écran (300);
Résultat:

lcd.setCursor(0, 0); lcd.print("Spécialement pour"); lcd.setCursor(0, 1); lcd..clear(); //efface le délai d'écran (300);


lcd.setCursor(0, 0); lcd.print("Spécialement pour"); lcd.setCursor(0, 1); lcd..clear(); ) void loop() ( lcd.init(); // initialise l'écran lcd.clear(); // efface l'écran // lit et calcule la température dat = (5.0 * analogRead(potPin) * 100.0) / 1024.0; lcd.backlight(); lcd.setCursor(0, 0); // définit le curseur dans la 0ème // colonne (commence à 0) lcd.print("Temperatura"); print(dat); // affiche la température actuelle lcd.print(""C"); delay(5*500); // délai avant de répéter les mesures)

Légèrement jeté un coup d'œil
Nous devons maintenant vérifier l'erreur :

+

Comme vous pouvez le constater, l'erreur est très faible, même s'il est possible que la station météorologique et mes deux thermomètres mentent.
Pourquoi ai-je commencé tout ça ?
Je souhaite automatiser le brassage, alors que c'est encore un projet lointain.

-

Il y en a beaucoup, avec l'aide d'Arduino, vous pouvez créer de nombreux projets pour presque tous les objectifs.
Il y a beaucoup d'erreurs dans les instructions chinoises, par exemple une leçon d'un projet, un croquis d'un projet complètement différent et un schéma d'un troisième.

Conclusion:

J'ai aimé Arduino, je vais essayer d'inventer quelque chose de plus intéressant et complexe, et je recommande à tous les débutants d'acheter Arduino non pas comme un ensemble, mais comme des modules séparés.

C'est tout, j'espère que ma critique ne vous a pas semblé trop ennuyeuse.

Merci de votre attention !

Je prévois d'acheter +308 Ajouter aux favoris J'ai aimé la critique +199 +551

Ce simulateur fonctionne mieux sur le navigateur Chrome
Regardons de plus près Arduino.

Arduino n'est pas un gros ordinateur pouvant être connecté à des circuits externes. Arduino Uno utilise Atmega 328P
C'est la plus grosse puce du tableau. Cette puce exécute des programmes stockés dans sa mémoire. Vous pouvez télécharger le programme via USB à l'aide de l'IDE Arduino. Le port USB alimente également l’arduino.

Il y a un connecteur d'alimentation séparé. La carte possède deux broches étiquetées 5 V et 3,3 V, qui sont nécessaires pour alimenter divers appareils. Vous trouverez également des broches marquées GND, ce sont les broches de masse (la masse est 0V). La plateforme Arduino dispose également de 14 broches numériques, numérotées de 0 à 13, qui se connectent à des nœuds externes et ont deux états, haut ou bas (activé ou désactivé). Ces contacts peuvent fonctionner comme sorties ou comme entrées, c'est-à-dire ils peuvent soit transmettre certaines données et contrôler des appareils externes, soit recevoir des données d'appareils. Les broches suivantes de la carte sont étiquetées A0-A5. Ce sont des entrées analogiques pouvant recevoir des données de divers capteurs. Ceci est particulièrement pratique lorsque vous devez mesurer une certaine plage, telle que la température. Les entrées analogiques ont des fonctions supplémentaires qui peuvent être activées séparément.

Comment utiliser une carte de développement.

La maquette est nécessaire pour connecter temporairement les pièces, vérifier le fonctionnement de l'appareil, avant de tout souder ensemble.
Tous les exemples suivants sont assemblés sur une maquette afin que vous puissiez rapidement apporter des modifications au circuit et réutiliser des pièces sans vous soucier de la soudure.

La planche à pain comporte des rangées de trous dans lesquels vous pouvez insérer des pièces et des fils. Certains de ces trous sont connectés électriquement les uns aux autres.

Les deux rangées du haut et du bas sont reliées en rangées sur toute la planche. Ces lignes sont utilisées pour alimenter le circuit. Il peut s'agir de 5 V ou de 3,3 V, mais dans tous les cas, la première chose à faire est de connecter 5 V et GND à la planche à pain, comme indiqué sur l'image. Parfois, ces connexions de rangées peuvent être rompues au milieu du tableau, alors si vous en avez besoin, vous pouvez les connecter comme indiqué sur l'image.








Les trous restants, situés au milieu du plateau, sont regroupés en groupes de cinq trous. Ils sont utilisés pour connecter des pièces de circuit.


La première chose que nous connecterons à notre microcontrôleur est une LED. Le schéma de connexion électrique est présenté sur l'image.

Pourquoi une résistance est-elle nécessaire dans un circuit ? Dans ce cas, cela limite le courant qui traverse la LED. Chaque LED est conçue pour un certain courant, et si ce courant est plus élevé, la LED tombera en panne. Vous pouvez découvrir quelle doit être la valeur de la résistance en utilisant la loi d'Ohm. Pour ceux qui ne le savent pas ou qui ont oublié, la loi d’Ohm dit qu’il existe une relation linéaire entre le courant et la tension. Autrement dit, plus nous appliquons de tension à la résistance, plus le courant la traversera.
V=I*R
V- tension aux bornes de la résistance
je- courant traversant la résistance
R.- une résistance qu'il faut trouver.
Tout d’abord, nous devons connaître la tension aux bornes de la résistance. La plupart des LED de 3 mm ou 5 mm que vous utiliserez ont une tension de fonctionnement de 3 V. Cela signifie que nous devons éteindre 5-3 = 2V au niveau de la résistance.

Nous calculerons ensuite le courant traversant la résistance.
La plupart des LED de 3 mm et 5 mm brillent à pleine luminosité à 20 mA. Un courant supérieur à cela peut les désactiver, tandis qu’un courant de moindre intensité réduira leur luminosité sans causer de dommages.

Nous voulons donc connecter la LED au circuit 5V pour qu'elle transporte un courant de 20mA. Puisque toutes les pièces sont incluses dans un seul circuit, la résistance aura également un courant de 20 mA.
Nous obtenons
2 V = 20 mA * R
2V = 0,02A * R
R = 100 ohms

100 Ohms est la résistance minimale, il est préférable d'en utiliser un peu plus, car les LED ont des caractéristiques variables.
Dans cet exemple, une résistance de 220 ohms est utilisée. Uniquement parce que l'auteur en a beaucoup : clin d'oeil : .

Insérez la LED dans les trous au milieu de la carte afin que son long fil soit connecté à l'un des fils de la résistance. Connectez la deuxième extrémité de la résistance à 5 V et connectez le deuxième fil de la LED à GND. La LED devrait s'allumer.

Veuillez noter qu'il existe une différence dans la façon dont vous connectez la LED. Le courant circule du terminal le plus long vers le terminal le plus court. Dans le diagramme, vous pouvez imaginer que le courant circule dans la direction où le triangle est dirigé. Essayez de retourner la LED et vous verrez qu’elle ne s’allumera pas.

Mais la façon dont vous connectez la résistance ne fait aucune différence. Vous pouvez le retourner ou essayer de le connecter à une autre broche de la LED, cela n'affectera pas le fonctionnement du circuit. Cela limitera toujours le courant traversant la LED.

Anatomie du croquis Arduino.

Les programmes pour Arduino sont appelés sketch. Ils se composent de deux fonctions principales. Fonction installation et fonction boucle
Dans cette fonction, vous définirez tous les paramètres de base. Quelles broches fonctionneront comme entrée ou sortie, quelles bibliothèques connecter, initialiser les variables. Fonction Installation() ne s'exécute qu'une seule fois pendant l'esquisse, lorsque l'exécution du programme démarre.
c'est la fonction principale qui est exécutée après installation(). En fait, c'est le programme lui-même. Cette fonction fonctionnera indéfiniment jusqu'à ce que vous coupiez l'alimentation.

LED clignotante Arduino



Dans cet exemple, nous allons connecter un circuit LED à l'une des broches numériques de l'Arduino et l'allumer et l'éteindre à l'aide d'un programme, et vous apprendrez également plusieurs fonctions utiles.

Cette fonction est utilisée dans installation() fait partie du programme et sert à initialiser les broches que vous utiliserez en entrée (SAISIR) ou sortir (SORTIR). Vous ne pourrez pas lire ou écrire des données à partir de la broche tant que vous ne l'aurez pas réglée respectivement sur mode broche. Cette fonction a deux arguments : numéro de broche est le numéro PIN que vous utiliserez.

Mode-définit le fonctionnement de la broche. A l'entrée (SAISIR) ou sortir (SORTIR). Pour allumer la LED, nous devons donner un signal DEPUIS Arduino. Pour ce faire, nous configurons la broche de sortie.
- cette fonction est utilisée pour définir l'état (État) pina (numéro de broche). Il existe deux états principaux (en fait 3 d'entre eux), l'un est HAUT, il y aura du 5V sur le pin, c'est autre chose Faible et la broche sera 0v. Cela signifie que pour allumer la LED, nous devons régler la broche connectée à la LED à un niveau élevé. HAUT.

Retard. Sert à retarder le fonctionnement du programme pendant une période spécifiée en msec.
Vous trouverez ci-dessous le code qui fait clignoter la LED.
//LED Blink int ledPin = 7;//Broche Arduino à laquelle la LED est connectée void setup() ( pinMode(ledPin, OUTPUT);// définition de la broche comme OUTPUT) void loop() ( digitalWrite(ledPin, HIGH) ;// allumer le délai LED (1000);// délai 1000 ms (1 sec) digitalWrite (ledPin, LOW);// éteindre le délai LED (1000); // attendre 1 sec)

Quelques précisions sur le code.
Les lignes commençant par "//" sont des commentaires et sont ignorées par Arduino.
Toutes les commandes se terminent par un point-virgule ; si vous les oubliez, vous recevrez un message d'erreur.

ledPin est une variable. Les variables sont utilisées dans les programmes pour stocker des valeurs. Dans cet exemple, la variable ledPin la valeur est attribuée à 7, c'est le numéro de broche Arduino. Lorsque le programme Arduino rencontre une ligne avec une variable ledPin, il utilisera la valeur que nous avons spécifiée plus tôt.
Alors enregistre pinMode (ledPin, SORTIE) similaire à l'enregistrement pinMode (7, SORTIE).
Mais dans le premier cas, il vous suffit de changer la variable et elle changera à chaque ligne où elle est utilisée, et dans le second cas, pour changer la variable, vous devrez apporter des modifications manuellement dans chaque commande.

La première ligne indique le type de la variable. Lors de la programmation Arduino, il est important de toujours déclarer le type de variables. Pour l'instant, il vous suffit de savoir que INT annonce des nombres négatifs et positifs.
Ci-dessous, une simulation du croquis. Cliquez sur Démarrer pour voir le circuit en action.

Comme prévu, la LED s'éteint et se rallume au bout d'une seconde. Essayez de modifier le délai pour voir comment cela fonctionne.

Contrôle de plusieurs LED.

Dans cet exemple, vous apprendrez à contrôler plusieurs LED. Pour ce faire, installez 3 LED supplémentaires sur la carte et connectez-les aux résistances et aux broches Arduino comme indiqué ci-dessous.

Afin d'allumer et d'éteindre les LED une par une, vous devez écrire un programme similaire à celui-ci :
//Multi LED Clignotement int led1Pin = 4; int led2Pin = 5 ; int led3Pin = 6 ; int led4Pin = 7 ; void setup() ( //définir les broches comme OUTPUT pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); pinMode(led4Pin, OUTPUT); ) void loop() ( digitalWrite(led1Pin, HIGH );//allumer le délai LED (1000);//délai 1 sec digitalWrite(led1Pin, LOW);//éteindre le délai LED (1000);//délai 1 sec //faire de même pour les 3 autres LED digitalWrite (led2Pin, HIGH);//allumer le délai LED (1000);//retarder 1 sec digitalWrite(led2Pin, LOW);//éteindre le délai LED (1000);//retarder 1 sec digitalWrite(led3Pin, HIGH) );//allumer le délai LED (1000);//retarder 1 sec digitalWrite(led3Pin, LOW);//éteindre le délai LED (1000);//retarder 1 sec digitalWrite(led4Pin, HIGH);//allumer le délai LED (1000);//retard 1 sec digitalWrite(led4Pin, LOW);//éteindre le délai LED (1000);//retard 1 sec)

Ce programme fonctionnera très bien, mais ce n'est pas la solution la plus rationnelle. Le code doit être modifié. Pour que le programme fonctionne encore et encore, nous utiliserons une construction appelée .
Les boucles sont utiles lorsque vous devez répéter plusieurs fois la même action. Dans le code ci-dessus on répète les lignes

DigitalWrite (led4Pin, ÉLEVÉ); retard (1000); écriture numérique (led4Pin, FAIBLE); retard (1000);
code de croquis complet en pièce jointe (téléchargements : 1201)

Réglage de la luminosité des LED

Parfois, vous devrez modifier la luminosité des LED dans le programme. Cela peut être fait en utilisant la commande analogWrite() . Cette commande allume et éteint la LED si rapidement que l'œil ne peut pas voir le scintillement. Si la LED est allumée la moitié du temps et éteinte la moitié du temps, il apparaîtra visuellement qu’elle brille à la moitié de sa luminosité. C'est ce qu'on appelle la modulation de largeur d'impulsion (PWM ou PWM en anglais). La cale est assez souvent utilisée, car elle permet de contrôler un composant « analogique » à l'aide d'un code numérique. Toutes les broches Arduino ne conviennent pas à ces fins. Seuls les terminaux à proximité desquels une telle désignation est dessinée " ~ ". Vous le verrez à côté des broches 3,5,6,9,10,11.
Connectez une de vos LED à l'une des broches PWM (pour l'auteur, il s'agit de la broche 9). Exécutez maintenant le croquis clignotant de la LED, mais modifiez d'abord la commande écriture numérique() sur analogWrite(). analogWrite() a deux arguments : le premier est le numéro de broche, et le second est la valeur PWM (0-255), par rapport aux LED, ce sera leur luminosité, et pour les moteurs électriques, la vitesse de rotation. Vous trouverez ci-dessous un exemple de code pour différentes luminosités de LED.
//Changer la luminosité de la LED int ledPin = 9;//une LED est connectée à cette broche void setup() ( pinMode(ledPin, OUTPUT);// initialisation de la broche à la sortie ) void loop() ( analogWrite( ledPin, 255);//retard de pleine luminosité (255/255 = 1) (1000);//pause 1 sec digitalWrite(ledPin, LOW);//éteindre le délai LED (1000);//pause 1 sec analogWrite( ledPin, 191);//luminosité par 3/4 (191/255 ~ = 0,75) délai (1000);//pause 1 sec digitalWrite(ledPin, LOW);//éteindre le délai LED (1000);// pause 1 seconde analogWrite (ledPin, 127); // demi-luminosité (127/255 ~ = 0,5) délai (1000); // pause 1 seconde digitalWrite (ledPin, LOW); // éteindre le délai LED (1000);/ /pause 1 sec analogWrite(ledPin, 63); //quart de luminosité (63/255 ~ = 0,25) délai (1000);//pause 1 sec digitalWrite(ledPin, LOW);//éteint le délai LED (1000) ;//pause 1 seconde)

Essayez de changer la valeur PWM dans la commande analogWrite() pour voir comment cela affecte la luminosité.
Ensuite, vous apprendrez à régler la luminosité en douceur de pleine à zéro. Vous pouvez bien sûr copier un morceau de code 255 fois
analogWrite (ledPin, luminosité); delay(5);//luminosité à court délai = luminosité + 1 ;
Mais vous comprenez que cela ne sera pas pratique. La meilleure façon de procéder est d’utiliser la boucle FOR que nous avons utilisée précédemment.
L'exemple suivant utilise deux boucles, une pour diminuer la luminosité de 255 à 0
pour (int luminosité=0;luminosité=0;luminosité--)( analogWrite(ledPin,luminosité); delay(5); )
retard(5) utilisé pour ralentir la vitesse de fondu d'entrée et de sortie 5*256=1280ms=1,28sec)
La première ligne utilise " luminosité-" pour faire diminuer la valeur de luminosité de 1 à chaque fois que la boucle est répétée. Notez que la boucle fonctionnera jusqu'à ce que luminosité >=0.Remplacement du panneau > sur le signe >= nous avons inclus 0 dans la plage de luminosité. Ce croquis est modélisé ci-dessous. //changer en douceur la luminosité int ledPin = 9;//une LED est connectée à cette broche void setup() ( pinMode(ledPin, OUTPUT);// initialisation de la broche de sortie) void loop() ( //augmenter en douceur la luminosité luminosité (0 à 255) pour (int luminosité=0;luminosité=0;luminosité--)( analogWrite(ledPin,brightness); delay(5); ) delay(1000);//attendre 1 seconde //réduire en douceur la luminosité (255 à 0) pour (int luminosité=255;luminosité>=0;luminosité--)( analogWrite(ledPin,brightness); delay(5); ) delay(1000);//wait 1 sec ) )
Ce n'est pas très visible, mais l'idée est claire.

LED RVB et Arduino

Une LED RVB est en fait composée de trois LED de couleurs différentes dans un seul boîtier.

En allumant différentes LED avec des luminosités différentes, vous pouvez les combiner pour créer différentes couleurs. Pour Arduino, où le nombre de niveaux de luminosité est de 256, vous obtiendrez 256^3=16581375 couleurs possibles. En réalité, bien sûr, ils seront moins nombreux.
La LED que nous utiliserons est la cathode commune. Ceux. les trois LED sont structurellement connectées par des cathodes à une seule borne. Nous allons connecter cette broche à la broche GND. Les broches restantes, via des résistances de limitation, doivent être connectées aux broches PWM. L'auteur a utilisé les broches 9 à 11. De cette façon, il sera possible de contrôler chaque LED séparément. Le premier croquis montre comment allumer chaque LED individuellement.



//LED RVB - test //connexions des broches int red = 9 ; int vert = 10 ; int bleu = 11 ; void setup())( pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); ) void loop())( //allumer/éteindre la LED rouge digitalWrite(red, HIGH); delay(500) ; digitalWrite(red, LOW); //allumer/éteindre la LED verte digitalWrite(green, HIGH); //allumer/éteindre la LED bleue digitalWrite(bleue, ÉLEVÉ ); digitalWrite (bleu, FAIBLE );

L'exemple suivant utilise les commandes analogWrite() et pour obtenir différentes valeurs de luminosité aléatoires pour les LED. Vous verrez différentes couleurs changer de manière aléatoire.
//LED RVB - couleurs aléatoires //connexions des broches int red = 9 ; int vert = 10 ; int bleu = 11 ; void setup())( pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); ) void loop())( //choisissez une couleur aléatoire analogWrite(red, random(256)); analogWrite( bleu, random(256)); analogWrite(green, random(256)); //attendez une seconde)

Aléatoire(256)-renvoie un nombre aléatoire compris entre 0 et 255.
Dans le fichier joint se trouve un croquis qui démontrera des transitions de couleurs douces du rouge au vert, puis au bleu, au rouge, au vert, etc. (téléchargements : 331)
L'exemple d'esquisse fonctionne, mais il y a beaucoup de code en double. Vous pouvez simplifier le code en écrivant votre propre fonction d'assistance qui passera en douceur d'une couleur à l'autre.
Voici à quoi cela ressemblera : (téléchargements : 367)
Examinons la définition de la fonction pièce par pièce. La fonction s'appelle fader et a deux arguments. Chaque argument est séparé par une virgule et a un type déclaré sur la première ligne de la définition de la fonction : fader vide (int color1, int color2). Vous voyez que les deux arguments sont déclarés comme int, et on leur donne des noms couleur1 Et couleur2 comme variables de condition pour définir une fonction. Vide signifie que la fonction ne renvoie aucune valeur, elle exécute simplement des commandes. Si vous deviez écrire une fonction renvoyant le résultat d’une multiplication, elle ressemblerait à ceci :
multiplicateur int (numéro int1, numéro int2)( produit int = numéro1*numéro2; produit de retour; )
Remarquez comment nous avons déclaré le type int comme type de retour à la place
vide.
À l'intérieur de la fonction, il y a des commandes que vous avez déjà utilisées dans le croquis précédent, seuls les numéros de broches ont été remplacés par couleur1 Et couleur2. La fonction s'appelle fader, ses arguments sont calculés comme couleur1 = rouge Et couleur2 = vert. L'archive contient une esquisse complète utilisant des fonctions (téléchargements : 275)

Bouton

Le croquis suivant utilisera un bouton avec des contacts normalement ouverts, sans verrouillage.


Cela signifie que tant que le bouton n'est pas enfoncé, aucun courant ne le traverse et qu'après avoir été relâché, le bouton revient à sa position d'origine.
En plus du bouton, le circuit utilise une résistance. Dans ce cas, il ne limite pas le courant, mais « tire » le bouton sur 0V (GND). Ceux. Jusqu'à ce que le bouton soit enfoncé, la broche Arduino à laquelle il est connecté deviendra faible. La résistance utilisée dans le circuit est de 10 kOhm.


//détermine quand le bouton est enfoncé int buttonPin = 7; void setup())( pinMode(buttonPin, INPUT);//initialiser la broche à l'entrée Serial.begin(9600);//initialiser le port série) void loop())( if (digitalRead(buttonPin)==HIGH )(//si le bouton est enfoncé Serial.println("pressed"); // affiche l'inscription "pressed" ) else ( Serial.println("unpressed");// sinon "unpressed" ) )
Il y a plusieurs nouvelles commandes dans cette esquisse.
-Cette commande prend les valeurs hautes et basses de la sortie que nous testons. Cette sortie doit d'abord être configurée comme entrée dans setup().
; //où boutonPin est le numéro de broche auquel le bouton est connecté.
Le port série permet à l'Arduino d'envoyer des messages à l'ordinateur pendant que le contrôleur lui-même exécute le programme. Ceci est utile pour déboguer un programme et envoyer des messages à d'autres appareils ou applications. Pour activer le transfert de données via un port série (également appelé UART ou USART), vous devez l'initialiser dans setup()

Série.begin() n'a qu'un seul argument : c'est la vitesse de transfert des données entre l'Arduino et l'ordinateur.
Le croquis utilise une commande pour afficher un message à l'écran dans l'IDE Arduino (Outils >> Serial Monitor).
- la conception permet de contrôler l'avancement de l'exécution du programme en combinant plusieurs contrôles en un seul endroit.
Si digitalRead renvoie HIGH, alors le mot « enfoncé » s'affiche sur le moniteur. Sinon (sinon), le mot « relâché » s'affiche sur le moniteur. Vous pouvez maintenant essayer d'allumer et d'éteindre la LED en appuyant sur un bouton.
//détection de pression sur un bouton avec sortie LED int buttonPin = 7; int ledPin = 8 ; void setup())( pinMode(buttonPin, INPUT);//cette fois, nous définirons la broche du bouton comme INPUT pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())( if (digitalRead(buttonPin )= =ÉLEVÉ)( digitalWrite(ledPin,HIGH); Serial.println("pressed"); ) else ( digitalWrite(ledPin,LOW); Serial.println("non pressé"); ) )

Entrée analogique.

analogiqueLecture vous permet de lire les données de l'une des broches analogiques Arduino et affiche une valeur comprise entre 0 (0 V) et 1023 (5 V). Si la tension à l'entrée analogique est de 2,5 V, alors 2,5 / 5 * 1023 = 512 sera imprimé
analogiqueLecture n'a qu'un seul argument - Il s'agit du numéro d'entrée analogique (A0-A5). Le croquis suivant montre le code de lecture de la tension du potentiomètre. Pour ce faire, connectez une résistance variable, les bornes extérieures aux broches 5V et GND et la borne centrale à l'entrée A0.

Exécutez le code suivant et voyez sur le moniteur série comment les valeurs changent en fonction de la rotation du bouton de résistance.
//entrée analogique int potPin = A0;//la broche centrale du potentiomètre est connectée à cette configuration vide de broche())( //la broche analogique est incluse comme entrée par défaut, donc l'initialisation n'est pas nécessaire Serial.begin(9600 ); ) void loop())( int potVal = analogRead(potPin);//potVal est un nombre compris entre 0 et 1023 Serial.println(potVal)
L'esquisse suivante combine l'esquisse du clic sur le bouton et l'esquisse du contrôle de la luminosité des LED. La LED s'allumera à partir du bouton et la luminosité sera contrôlée par un potentiomètre.
//détection d'appui sur un bouton avec sortie LED et intensité variable int buttonPin = 7; int ledPin = 9 ; int potPin = A0; void setup())( pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())( if (digitalRead(buttonPin)==HIGH)(//si le bouton est enfoncé int analogVal = analogRead(potPin); int scaledVal = map(analogVal, 0, 1023, 0, 255); analogWrite(ledPin, scaledVal);//allumer la LED avec l'intensité définie par le pot Serial.println("pressed"); ( digitalWrite(ledPin, LOW);//s'éteint si le bouton n'est pas enfoncé Serial.println("unpressed"); ) )

L’étude des microcontrôleurs vous semble-t-elle compliquée et incompréhensible ? Avant l'apparition d'Arudino, ce n'était vraiment pas facile et nécessitait un certain ensemble de programmeurs et d'autres équipements.

C'est une sorte de concepteur électronique. L'objectif initial du projet est de permettre aux gens d'apprendre facilement à programmer des appareils électroniques, tout en consacrant un minimum de temps à la partie électronique.

L'assemblage de circuits complexes et la connexion des cartes peuvent être réalisés sans fer à souder, mais à l'aide de cavaliers avec connexions mâles et femelles détachables. De cette façon, les éléments montés et les cartes d'extension peuvent être connectés, qui dans le lexique Arduino sont simplement appelés « Boucliers ».

Quelle est la première carte Arduino à acheter pour un débutant ?

Elle est considérée comme la planche de base et la plus populaire. Ce tableau a la taille d'une carte de crédit. Assez grand. La plupart des boucliers en vente s'y adaptent parfaitement. La carte dispose de prises pour connecter des appareils externes.

Dans les magasins nationaux en 2017, son prix est d'environ 4 à 5 dollars. Sur les modèles modernes, son cœur est Atmega328.

Image de la carte Arduino et explication des fonctions de chaque broche, brochage Arduino UNO

Le microcontrôleur de cette carte est une longue puce dans un boîtier DIP28, ce qui signifie qu'il possède 28 pattes.

La deuxième planche la plus populaire coûte presque deux fois plus que la précédente - 2 à 3 dollars. Il s'agit de frais. Les cartes actuelles sont construites sur le même Atmega328, elles sont fonctionnellement similaires à UNO, les différences résident dans la taille et la solution de coordination avec USB, nous y reviendrons plus tard. Une autre différence est que des fiches en forme de broche sont fournies pour connecter les appareils à la carte.

Le nombre de broches (pattes) de cette carte est le même, mais vous pouvez voir que le microcontrôleur est réalisé dans un boîtier TQFP32 plus compact, ADC6 et ADC7 sont ajoutés au boîtier, les deux autres pattes « supplémentaires » dupliquent le bus d'alimentation . Sa taille est assez compacte – environ la taille de votre pouce.

La troisième carte la plus populaire est qu'elle ne dispose pas de port USB pour se connecter à un ordinateur ; je vous expliquerai un peu plus tard comment se fait la connexion ;

Il s'agit de la plus petite carte de toutes testées, sinon elle est similaire aux deux précédentes, et son cœur est toujours l'Atmega328. Nous ne considérerons pas d'autres tableaux, car il s'agit d'un article destiné aux débutants, et la comparaison des tableaux est un sujet pour un article séparé.

En haut se trouve un schéma de connexion USB-UART, la broche « GRN » est connectée au circuit de réinitialisation du microcontrôleur, elle peut être appelée par autre chose, vous découvrirez pourquoi cela est nécessaire plus tard.

Alors que UNO est idéal pour le prototypage, Nano et Pro Mini sont parfaits pour terminer votre projet car ils prennent peu de place.

Comment connecter Arduino à un ordinateur ?

Arduino Uno et Nano se connectent à l'ordinateur via USB. Cependant, il n'existe pas de support matériel pour le port USB ; une solution de circuit de conversion de niveau, généralement appelée USB vers série ou USB-UART (rs-232), est utilisée ici. Dans le même temps, un chargeur de démarrage Arduino spécial est flashé dans le microcontrôleur, ce qui permet de flasher via ces bus.

L'Arduino Uno implémente cette connexion sur un microcontrôleur avec support USB - ATmega16U2 (AT16U2). Il s'avère qu'un microcontrôleur supplémentaire sur la carte est nécessaire pour flasher le firmware du microcontrôleur principal.

Dans Arduino Nano, cela est implémenté par la puce FT232R ou son analogique CH340. Ce n'est pas un microcontrôleur - c'est un convertisseur de niveau, ce qui facilite l'assemblage de l'Arduino Nano à partir de zéro de vos propres mains.

Généralement, les pilotes sont installés automatiquement lorsque vous connectez la carte Arduino. Cependant, lorsque j'ai acheté une copie chinoise de l'Arduino Nano, l'appareil a été identifié, mais il n'a pas fonctionné, il y avait un autocollant rond sur le convertisseur avec des informations sur la date de sortie, je ne sais pas si cela a été fait exprès , mais quand je l'ai décollé, j'ai vu le marquage CH340.

Je n'avais jamais rencontré cela auparavant et pensais que tous les convertisseurs USB-UART étaient assemblés sur FT232, j'ai dû télécharger les pilotes, ils sont très faciles à trouver en recherchant « Pilotes Arduino ch340 ». Après une simple installation, tout a fonctionné !

Le microcontrôleur peut également être alimenté via le même port USB, c'est-à-dire si vous le connectez à un adaptateur depuis un téléphone mobile, votre système fonctionnera.

Que dois-je faire si ma carte n'a pas d'USB ?

La carte Arduino Pro Mini a des dimensions plus petites. Ceci a été réalisé en supprimant le connecteur USB pour le firmware et le même convertisseur USB-UART. Il faut donc l’acheter séparément. Le convertisseur le plus simple basé sur CH340 (le moins cher), CPL2102 et FT232R, coûte à partir de 1 dollar.

Lors de l'achat, faites attention à la tension pour laquelle cet adaptateur est conçu. Pro mini est disponible en versions 3,3 et 5 V ; les convertisseurs disposent souvent d'un cavalier pour commuter la tension d'alimentation.

Lors du flashage du firmware Pro Mini, immédiatement avant de le démarrer, vous devez appuyer sur RESET, cependant, dans les convertisseurs avec DTR, cela n'est pas nécessaire, le schéma de connexion est dans la figure ci-dessous.

Ils sont connectés à des bornes spéciales « Mama-Mama » (femelle-femelle).

En fait, toutes les connexions peuvent être effectuées à l'aide de telles bornes (Dupont), elles sont livrées des deux côtés avec des prises et des fiches, et d'un côté il y a une prise et de l'autre il y a une fiche.

Comment écrire des programmes pour Arduino ?

Pour travailler avec des croquis (le nom du firmware dans le langage des ingénieurs Arduino), il existe un environnement de développement intégré spécial pour Arduino IDE, vous pouvez le télécharger gratuitement depuis le site officiel ou depuis n'importe quelle ressource thématique, il n'y a généralement aucun problème ; avec installation.

Voici à quoi ressemble l'interface du programme. Vous pouvez écrire des programmes dans un langage C AVR simplifié spécialement développé pour Arduino, essentiellement un ensemble de bibliothèques appelées Wiring, ainsi qu'en C AVR pur. Dont l'utilisation simplifie le code et accélère son fonctionnement.

En haut de la fenêtre se trouve un menu familier dans lequel vous pouvez ouvrir un fichier, des paramètres, sélectionner la carte avec laquelle vous travaillez (Uno, Nano et bien d'autres) et également ouvrir des projets avec des exemples de code prêts à l'emploi. Vous trouverez ci-dessous un ensemble de boutons pour travailler avec le firmware ; vous verrez l'affectation des touches dans la figure ci-dessous.

En bas de la fenêtre se trouve une zone d'affichage des informations sur le projet, l'état du code, du firmware et la présence d'erreurs.

Bases de la programmation Arduino IDE

Au début du code, vous devez déclarer des variables et inclure des bibliothèques supplémentaires, le cas échéant, cela se fait comme suit :

#include biblioteka.h; // connecte la bibliothèque appelée « Biblioteka.h »

#définir changenaya 1234 ; // Déclare une variable avec la valeur 1234

La commande Define permet au compilateur de choisir lui-même le type de variable, mais vous pouvez le définir manuellement, par exemple un entier entier ou un flottant à virgule flottante.

int led = 13 ; // crée la variable « led » et lui attribue la valeur « 13 »

Le programme peut déterminer l'état de la broche comme 1 ou 0. 1 est une unité logique, si la broche 13 est égale à 1, alors la tension sur sa branche physique sera égale à la tension d'alimentation du microcontrôleur (pour Arduino UNO et Nano-5 V)

Un signal numérique est écrit à l'aide de la commande digitalWrite (pin, value), par exemple :

digitalWrite (led, élevé); // écrivez-en un dans le journal de la broche 13 (nous l'avons déclaré ci-dessus). Unités.

Comme vous pouvez le comprendre, les ports sont accessibles selon la numérotation sur la carte, correspondant au numéro. Voici un exemple similaire au code précédent :

digitalWrite (13, élevé); // définit la broche 13 sur un

Une fonction de temporisation fréquemment utilisée est appelée par la commande delay(), dont la valeur est spécifiée en millisecondes, les microsecondes sont obtenues en utilisant

delayMicroseconds() Délai(1000); //le microcontrôleur attendra 1000 ms (1 seconde)

Les paramètres des ports d'entrée et de sortie sont spécifiés dans la fonction void setup() avec la commande :

pinMode(NOMERPORTA, SORTIE/ENTRÉE); // arguments - nom de variable ou numéro de port, entrée ou sortie parmi lesquels choisir

Comprendre le premier programme Blink

En guise de « Hello, world » pour les microcontrôleurs, il existe un programme pour faire clignoter une LED, regardons son code :

Au début, avec la commande pinMode, nous avons demandé au microcontrôleur d'attribuer le port avec la LED à la sortie. Vous avez déjà remarqué que dans le code il n'y a pas de déclaration de la variable "LED_BUILTIN", le fait est que dans Uno, Nano et autres cartes, une LED intégrée est connectée à la broche 13 de l'usine et elle est soudée sur le conseil. Il peut être utilisé par vous pour l'affichage dans vos projets ou pour de simples tests de vos programmes flashés.

Ensuite, nous définissons la broche à laquelle la LED est soudée sur un (5 V), la ligne suivante fait attendre le MK 1 seconde, puis met la broche LED_BUILTIN à zéro, attend une seconde et le programme se répète en cercle, donc lorsque LED_BUILTIN est égal à 1 - la LED (et toute autre charge connectée au port) est allumée, lorsqu'à 0 elle est éteinte.

Nous lisons la valeur du port analogique et utilisons les données lues

Le microcontrôleur AVR Atmega328 dispose d'un convertisseur analogique-numérique 10 bits intégré. L'ADC 10 bits vous permet de lire des valeurs de tension de 0 à 5 volts, par pas de 1/1024 de l'amplitude totale du signal (5 V).

Pour que ce soit plus clair, considérons la situation, disons que la valeur de tension à l'entrée analogique est de 2,5 V, ce qui signifie que le microcontrôleur lira la valeur de la broche « 512 », si la tension est de 0 à « 0 », et si 5 V- (1023). 1023 - parce que le comptage commence à 0, c'est-à-dire 0, 1, 2, 3, etc. jusqu'à 1023 - 1024 valeurs au total.

Voici à quoi cela ressemble dans le code, en utilisant le croquis standard « analogInput » comme exemple

int sensorPin = A0 ;

int ledPin = 13 ;

int valeur du capteur = 0 ;

pinMode(ledPin, SORTIE);

sensorValue = analogRead (sensorPin);

digitalWrite(ledPin, ÉLEVÉ);

délai (sensorValue);

digitalWrite(ledPin, FAIBLE);

délai (sensorValue);

Nous déclarons les variables :

    Ledpin - nous attribuons indépendamment une broche avec une LED intégrée à la sortie et lui donnons un nom individuel ;

    sensorPin - entrée analogique, réglée selon les marquages ​​sur la carte : A0, A1, A2, etc. ;

    sensorValue - une variable pour stocker la valeur entière lue et continuer à travailler avec elle.

Le code fonctionne comme ceci : sensorValue enregistre la valeur analogique lue depuis sensorPin (commande analogRead). - ici se termine le travail avec le signal analogique, alors tout est comme dans l'exemple précédent.

Nous en écrivons un sur ledPin, la LED s'allume et attend un temps égal à la valeur sensorValue, c'est-à-dire de 0 à 1023 millisecondes. Nous éteignons la LED et attendons à nouveau cette période, après quoi le code se répète.

Ainsi, en positionnant le potentiomètre on règle la fréquence de clignotement de la LED.

Fonction de carte pour Arudino

Toutes les fonctions pour les actionneurs (je n'en connais pas) ne prennent pas en charge "1023" comme argument, par exemple, le servo est limité par l'angle de rotation, c'est-à-dire par demi-tour (180 degrés) (demi-tour) du servomoteur l'argument de fonction maximum est "180"

Parlons maintenant de la syntaxe : map (la valeur que nous traduisons, la valeur d'entrée minimale, la valeur d'entrée maximale, la valeur de sortie minimale, la valeur de sortie maximale).

Dans le code, cela ressemble à ceci :

(map(analogRead(pot), 0, 1023, 0, 180));

Nous lisons la valeur du potentiomètre (analogRead(pot)) de 0 à 1023, et en sortie nous obtenons des nombres de 0 à 180

Valeurs de la carte de valeurs :

En pratique, nous appliquons cela au fonctionnement du code du même servo variateur, jetez un œil au code de l'IDE Arduino, si vous lisez attentivement les sections précédentes, alors cela ne nécessite aucune explication.

Et le schéma de connexion.

Conclusions Arduino est un outil très pratique pour apprendre à travailler avec des microcontrôleurs. Et si vous utilisez du C AVR pur, ou comme on l'appelle parfois « Pure C », vous réduirez considérablement le poids du code, et une plus grande partie de celui-ci tiendra dans la mémoire du microcontrôleur, vous obtiendrez ainsi une excellente usine- carte de débogage faite avec la possibilité de flasher le firmware via USB.

J'aime Arduino. Il est dommage que de nombreux programmeurs de microcontrôleurs expérimentés lui reprochent sans fondement d'être trop simplifié. En principe, seul le langage est simplifié, mais personne ne vous oblige à l'utiliser, de plus vous pouvez flasher le microcontrôleur via le connecteur ICSP et y télécharger le code souhaité, sans aucun chargeur de démarrage inutile.

Pour ceux qui veulent jouer avec l'électronique, comme un concepteur avancé, c'est parfait, et pour les programmeurs expérimentés, en tant que carte qui ne nécessite pas d'assemblage, elle sera également utile !

Pour plus d'informations sur Arduino et les fonctionnalités de son utilisation dans divers circuits, consultez l'e-book - .

Arduino est très populaire parmi tous les passionnés de design. Ceux qui n’en ont jamais entendu parler devraient également y être initiés.

Qu’est-ce qu’Arduino ?

Comment pouvez-vous décrire brièvement Arduino ? Les meilleurs mots seraient : Arduino est un outil qui peut être utilisé pour créer divers appareils électroniques. Il s’agit essentiellement d’une véritable plate-forme informatique matérielle à usage général. Il peut être utilisé aussi bien pour construire des circuits simples que pour mettre en œuvre des projets assez complexes.

Le concepteur s'appuie sur son matériel, qui est une carte d'entrées-sorties. Pour programmer la carte, des langages basés sur C/C++ sont utilisés. Ils sont appelés respectivement Traitement/Câblage. Du groupe C, ils ont hérité d'une extrême simplicité, grâce à laquelle ils peuvent être maîtrisés très rapidement par n'importe qui, et la mise en pratique des connaissances n'est pas un problème assez important. Pour que vous compreniez la facilité de travail, on dit souvent qu'Arduino est destiné aux concepteurs assistants débutants. Même les enfants peuvent comprendre les cartes Arduino.

Que peut-on récupérer dessus ?

Les applications d'Arduino sont assez diverses ; il peut être utilisé aussi bien pour les exemples les plus simples, qui seront recommandés à la fin de l'article, que pour des mécanismes assez complexes, notamment des manipulateurs, des robots ou des machines de production. Certains artisans parviennent à utiliser de tels systèmes pour fabriquer des tablettes, des téléphones, des systèmes de surveillance et de sécurité domestique, des systèmes de maison intelligente ou simplement des ordinateurs. Les projets Arduino pour débutants, avec lesquels même ceux qui n'ont aucune expérience peuvent se lancer, se trouvent à la fin de l'article. Ils peuvent même être utilisés pour créer des systèmes de réalité virtuelle primitifs. Tout cela grâce au matériel et aux capacités assez polyvalents offerts par la programmation Arduino.

Où puis-je acheter les composants ?

Les composants fabriqués en Italie sont considérés comme originaux. Mais le prix de ces kits n’est pas bas. Par conséquent, un certain nombre d'entreprises, voire de particuliers, fabriquent des méthodes artisanales d'appareils et de composants compatibles Arduino, appelés en plaisantant clones de production. Lors de l'achat de tels clones, on ne peut pas dire avec certitude qu'ils fonctionneront, mais le désir d'économiser de l'argent fait des ravages.

Les composants peuvent être achetés soit dans le cadre de kits, soit séparément. Il existe même des kits pré-préparés pour assembler des voitures, des hélicoptères dotés de différents types de commandes ou des navires. Un ensemble comme celui illustré ci-dessus, fabriqué en Chine, coûte 49 $.

En savoir plus sur l'équipement

La carte Arduino est un simple microcontrôleur AVR, qui a été flashé avec un chargeur de démarrage et possède le port USB-UART minimum requis. Il existe d’autres éléments importants, mais dans le cadre de l’article, il serait préférable de se concentrer uniquement sur ces deux éléments.

Tout d’abord, à propos du microcontrôleur, un mécanisme construit sur un seul circuit dans lequel se trouve le programme développé. Le programme peut être influencé en appuyant sur des boutons, en recevant des signaux des composants de la création (résistances, transistors, capteurs, etc.), etc. De plus, les capteurs peuvent être très différents dans leur fonction : éclairage, accélération, température, distance, pression, obstacles, etc. Des pièces simples peuvent être utilisées comme dispositifs d'affichage, depuis les LED et les tweeters jusqu'aux dispositifs complexes, tels que les écrans graphiques. Les qualités considérées sont les moteurs, les vannes, les relais, les servos, les électro-aimants et bien d'autres, dont la liste prendrait très, très longtemps. Le MK travaille directement avec certaines de ces listes, à l'aide de fils de connexion. Certains mécanismes nécessitent des adaptateurs. Mais une fois que vous aurez commencé à concevoir, il vous sera difficile de vous en détacher. Parlons maintenant de la programmation Arduino.

En savoir plus sur le processus de programmation du tableau

Un programme déjà prêt à fonctionner sur un microcontrôleur est appelé firmware. Il peut y avoir soit un projet, soit des projets Arduino, il serait donc conseillé de stocker chaque firmware dans un dossier séparé pour accélérer le processus de recherche des fichiers nécessaires. Il est flashé sur le cristal MK à l'aide d'appareils spécialisés : des programmeurs. Et ici, Arduino a un avantage : il n'a pas besoin de programmeur. Tout est fait pour que la programmation Arduino pour les débutants ne soit pas difficile. Le code écrit peut être chargé dans le MK via un câble USB. Cet avantage n'est pas obtenu par un programmeur prédéfini, mais par un micrologiciel spécial - un chargeur de démarrage. Le chargeur de démarrage est un programme spécial qui démarre immédiatement après la connexion et écoute s'il y a des commandes, s'il faut flasher le cristal, s'il y a des projets Arduino ou non. Il y a plusieurs avantages très intéressants à utiliser un bootloader :

  1. Utiliser un seul canal de communication, ce qui ne nécessite pas de coûts de temps supplémentaires. Ainsi, les projets Arduino ne nécessitent pas de connecter de nombreux fils différents et il y aura confusion lors de leur utilisation. Un câble USB suffit pour un fonctionnement réussi.
  2. Protection contre les mains tordues. Il est assez simple de mettre le microcontrôleur à l'état de brique à l'aide d'un micrologiciel direct, vous n'avez pas besoin de travailler dur. Lorsque vous travaillez avec un chargeur de démarrage, vous ne pourrez pas accéder aux paramètres potentiellement dangereux (avec l'aide d'un programme de développement, bien sûr, sinon tout peut être cassé). Par conséquent, Arduino pour débutants est conçu non seulement du point de vue qu'il est compréhensible et pratique, il vous permettra également d'éviter des dépenses financières indésirables associées à l'inexpérience de la personne qui travaille avec eux.

Des projets pour démarrer

Lorsqu'on a acquis un kit, un fer à souder, de la colophane et de la soudure, il ne faut pas sculpter d'emblée des structures très complexes. Bien sûr, vous pouvez les réaliser, mais les chances de succès avec Arduino pour les débutants sont assez faibles avec des projets complexes. Pour vous entraîner et améliorer vos compétences, vous pouvez essayer de mettre en œuvre quelques idées plus simples qui vous aideront à comprendre l'interaction et le fonctionnement d'Arduino. Comme premières étapes pour travailler avec Arduino pour les débutants, nous pouvons vous conseiller de considérer :

  1. Créez-en un qui fonctionnera grâce à Arduino.
  2. Connexion d'un bouton séparé à Arduino. Dans ce cas, vous pouvez vous assurer que le bouton peut régler la lueur de la LED à partir du point n°1.
  3. Connexion potentiomètre.
  4. Commande de servomoteur.
  5. Connexion et travail avec une LED tricolore.
  6. Connexion de l'élément piézoélectrique.
  7. Connexion d'une photorésistance.
  8. Connexion d'un capteur de mouvement et signaux sur son fonctionnement.
  9. Raccordement d'un capteur d'humidité ou de température.

Des projets pour l'avenir

Il est peu probable que vous soyez intéressé par Arduino pour connecter des LED individuelles. Très probablement, vous êtes attiré par la possibilité de créer votre propre voiture ou votre propre plaque tournante volante. Ces projets sont difficiles à mettre en œuvre et demanderont beaucoup de temps et de persévérance, mais une fois terminés, vous obtiendrez ce que vous voulez : une précieuse expérience de conception Arduino pour les débutants.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :