Catégories: Articles en vedette » Électronique pratique
Nombre de fois vus: 67360
Commentaires sur l'article: 7

Connecter et programmer Arduino pour les débutants

 

L'étude des microcontrôleurs 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.


Qu'est-ce qu'un Arduino?

C'est une sorte de constructeur é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 des circuits les plus compliqués et la connexion des cartes peuvent être effectués sans fer à souder, et à l'aide de cavaliers avec des connexions détachables «père» et «mère». De cette façon, les pièces jointes et les cartes d'extension peuvent être connectées, ce qui dans le lexique des Arduinistes est simplement appelé «Shields».

Qu'est-ce que l'Arduino?

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

La planche de base et la plus populaire est considérée Arduino uno. Ces frais ressemblent à une carte de crédit. Assez gros. La plupart des boucliers en vente sont parfaits pour elle. Il y a des prises sur la carte pour connecter des périphériques externes.

Arduino uno

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

Arduino uno

Image de la carte Arduino et décodage des fonctions de chaque broche, brochage Arduino UNO

Le microcontrôleur de cette carte est une longue puce dans le boîtier DIP28, ce qui signifie qu'il a 28 pieds.

La prochaine planche la plus populaire coûte presque deux fois moins cher que la précédente - 2-3 dollars. C'est le conseil Arduino nano. Les cartes réelles sont construites par le même Atmega328, elles sont fonctionnellement similaires à UNO, les différences de taille et la décision de faire correspondre avec USB, plus à ce sujet plus tard. Une autre différence est qu'une fiche, sous forme d'aiguilles, est prévue pour connecter des appareils à la carte de circuit imprimé.

Arduino nano

Le nombre de broches (jambes) de cette carte est le même, mais vous pouvez observer que le microcontrôleur est fabriqué dans un boîtier TQFP32 plus compact, ADC6 et ADC7 sont ajoutés dans le cas, les deux autres jambes "supplémentaires" dupliquent le bus d'alimentation. Ses dimensions sont assez compactes - environ la taille d'un pouce de votre main.

Brochage Aruino nano 

Le troisième tableau le plus populaire est Arduino Pro Mini, il n'a pas de port USB pour se connecter à un ordinateur, je vous dirai comment communiquer un peu plus tard.

Arduino Nano vs Pro Mini Comparaison de taille

Arduino Nano vs Pro Mini Comparaison de taille

Il s'agit de la plus petite carte de tous les cas, sinon elle est similaire aux deux précédentes et Atmega328 en est toujours le cœur. Nous ne considérerons pas d'autres planches, car il s'agit d'un article pour débutants, et la comparaison des planches fait l'objet d'un article séparé.

Brochage Arduino Pro Mini, dans la partie supérieure, le schéma de connexion USB-UART, broche «GRN» - est câblé au circuit de réinitialisation du microcontrôleur, il peut être appelé différemment, pour lequel vous devrez vous renseigner plus tard.

Résumé:

Si UNO est pratique pour le prototypage, alors Nano et Pro Mini conviennent aux versions finales de votre projet, car elles prennent peu de place.

Arduino pour débutants

Comment connecter Arduino à un ordinateur?

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

Dans Arduino Uno, cette ligature est implémentée sur un microcontrôleur avec prise en charge USB - ATmega16U2 (AT16U2). Il s'avère que le microcontrôleur supplémentaire sur la carte est nécessaire pour flasher le microcontrôleur principal.

En 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.

En règle générale, les pilotes sont installés automatiquement lorsque la carte Arduino est connectée. Cependant, lorsque j'ai acheté une copie chinoise de l'Arduino Nano, l'appareil a été reconnu, mais cela n'a pas fonctionné, un autocollant rond avec des données sur la date de sortie a été collé sur le convertisseur, je ne sais pas si cela a été fait exprès, mais après l'avoir décollé, j'ai vu le marquage CH340.

Avant cela, je ne l'ai pas rencontré et je pensais que tous les convertisseurs USB-UART étaient assemblés sur FT232, j'ai dû télécharger des pilotes, ils sont très faciles à trouver à la demande du «pilote Arduino ch340». Après une installation simple - cela a fonctionné!

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


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

L'Arduino Pro Mini est plus petit. Ceci a été réalisé en retirant le connecteur USB pour le firmware et le même convertisseur USB-UART. Par conséquent, il doit être acheté séparément. Le convertisseur le plus simple sur CH340 (le moins cher), CPL2102 et FT232R, à vendre coûte à partir de 1 $.

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

Arduino Pro Mini

Lorsque vous flashez le Pro Mini, juste avant qu'il ne démarre, vous devez cliquer sur RESET, cependant, dans les convertisseurs avec DTR, vous n'avez pas besoin de le faire, le schéma de connexion dans la figure ci-dessous.

Schéma de connexion du firmware

Ils sont rejoints par des bornes spéciales "Mama-Mama" (femelle-femelle).

Connexion Arduino

En fait, toutes les connexions peuvent être faites en utilisant de telles bornes (Dupont), elles sont à la fois des deux côtés avec des prises et des fiches, et d'un côté de la prise et de l'autre fiche.

Bouchon

Comment écrire des programmes pour Arduino?

Pour travailler avec des croquis (le nom du firmware est dans la langue de l'arduino), il existe un environnement intégré spécial pour développer l'Arduino IDE, vous pouvez le télécharger gratuitement sur le site officiel ou à partir de n'importe quelle ressource thématique, généralement il n'y a aucun problème avec son installation.

Programme pour Arduino

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

En haut de la fenêtre, il y a un menu familier où vous pouvez ouvrir le fichier, les 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, les touches que vous verrez dans la figure ci-dessous.

Interface de programme

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


Bases de la programmation IDE Arduino

Au début du code, vous devez déclarer des variables et connecter des bibliothèques supplémentaires, si elles existent, cela se fait comme suit:

#include biblioteka.h; // connecte la bibliothèque avec le nom "Biblioteka.h"

#define peremennaya 1234; // Déclarez une variable avec une valeur de 1234

La commande Définir permet au compilateur de choisir le type de variable, mais vous pouvez la définir manuellement, par exemple, un entier entier ou un flottant à virgule flottante.

int led = 13; // a créé la variable "led" et lui a attribué 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 1, alors la tension sur sa jambe physique sera égale à la tension d'alimentation du microcontrôleur (pour Arduino UNO et Nano - 5 V)

Le signal numérique est enregistré à l'aide de la commande digitalWrite (broche, valeur), par exemple:

digitalWrite (led, haute); // écrit l'unité sur la broche 13 (nous l'avons annoncé ci-dessus). Unités.

Comme vous pouvez le comprendre, l'accès aux ports se fait par numérotation sur la carte, figure correspondante. Voici un exemple similaire au code précédent:

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

Souvent, la fonction de temporisation recherchée est appelée par la commande delay (), dont la valeur est définie en millisecondes, les microsecondes sont obtenues à l'aide de

delayMicroseconds () Retard (1000); // le microcontrôleur attendra 1000 ms (1 seconde)

Les paramètres de port d'entrée et de sortie sont définis dans la fonction void setup {}, avec la commande:

void setup () {

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

}

Boucle vide {}


Comprendre le premier programme Blink

Comme une sorte de «Hello, world» pour les microcontrôleurs, il existe un programme de clignotement LED, analysons son code:

Au début, avec la commande pinMode, nous avons dit au microcontrôleur d'attribuer un port avec une LED à la sortie.Vous avez déjà remarqué que le code ne déclare pas la variable "LED_BUILTIN", le fait est que dans Uno, Nano et d'autres cartes de l'usine, la LED intégrée est connectée à la broche 13 et elle est soudée à la carte. Il peut être utilisé par vous à titre indicatif dans vos projets ou pour la vérification la plus simple de vos programmes clignotants.

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

Est-ce que tout fonctionne et tout est clair? Alors continuez!



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

Le microcontrôleur AVR Atmega328 possède un convertisseur analogique-numérique 10 bits intégré. L'ADC 10 bits vous permet de lire la valeur de tension de 0 à 5 volts, par incréments de 1/1024 de toute la plage d'amplitude du signal (5 V).

Pour le rendre plus clair, considérez la situation, supposez que la valeur de tension à l'entrée analogique est de 2,5 V, alors le microcontrôleur lira la valeur de la broche "512" si la tension est 0 - "0" et si 5 V - (1023). 1023 - parce que le compte passe de 0, c'est-à-dire 0, 1, 2, 3, etc. jusqu'à 1023 - un total de 1024 valeurs.

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

int sensorPin = A0;

int ledPin = 13;

int sensorValue = 0;

void setup () {

pinMode (ledPin, OUTPUT);

}

boucle vide () {

sensorValue = analogRead (sensorPin);

digitalWrite (ledPin, HIGH);

retard (sensorValue);

digitalWrite (ledPin, LOW);

retard (sensorValue);

}

Le schéma de connexion du potentiomètre à Arduino, par analogie, la sortie centrale que vous pouvez connecter à n'importe quelle entrée analogique

Le schéma de connexion du potentiomètre à Arduino, par analogie, la sortie centrale, vous pouvez vous connecter à n'importe quelle entrée analogique.

Déclarez les variables:

  • Ledpin - attribuez indépendamment une broche avec une LED intégrée à la sortie et donnez un nom individuel;

  • sensorPin - entrée analogique, réglée en fonction du marquage sur la carte: A0, A1, A2, etc.;

  • sensorValue - une variable pour stocker une valeur de lecture entière et continuer à travailler avec elle.

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

Nous écrivons l'unité dans ledPin, la LED s'allume et attendons un temps égal à la valeur de sensorValue, c'est-à-dire de 0 à 1023 millisecondes. Éteignez la LED et attendez à nouveau pendant cette période de temps, après quoi le code se répète.

Ainsi, par la position du potentiomètre, nous réglons la fréquence de clignotement de la LED.


Fonction de carte pour Arudino

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

Maintenant, à propos de la syntaxe: map (la valeur que nous traduisons est la valeur d'entrée minimale, la valeur d'entrée maximale, la valeur de sortie minimale, la valeur de sortie maximale).

En code, cela ressemble à ceci:

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

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

Valeurs de la carte de valeurs:

  • 0=0;

  • 1023=180;

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

Et le schéma de connexion.

Schéma de câblage

Conclusions Arduino est un outil très pratique pour apprendre à travailler avec des microcontrôleurs. Et si vous utilisez du Pure C AVR, ou comme on l'appelle parfois «Pure C», vous réduirez considérablement le poids du code et vous placerez davantage dans la mémoire du microcontrôleur, par conséquent, vous obtiendrez une excellente carte de débogage fabriquée en usine avec un firmware USB.

Arduino pour débutants

Opinion de l'auteur:

J'aime l'arduino. Il est dommage que de nombreux programmeurs de microcontrôleurs expérimentés le critiquent de manière déraisonnable, qu'il soit trop simplifié. En principe, seule la langue est simplifiée, mais personne ne vous oblige à l'utiliser, et vous pouvez flasher le microcontrôleur via le connecteur ICSP et remplir le code que vous voulez sans les chargeurs de démarrage dont vous n'avez pas besoin.

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

Pour plus d'informations sur Arduino et les caractéristiques de son utilisation dans divers régimes, consultez le livre électronique -Arduino pour les nuls. Guide pratique illustré.

Voir aussi sur e.imadeself.com:

  • Méthodes de lecture et de gestion des ports d'E / S Arduino
  • Quelle carte Arduino choisir
  • Types et disposition des microcontrôleurs AVR
  • Télécommande du microcontrôleur: télécommande IR, Arduino, ESP8266, 433 ...
  • Connexion de capteurs analogiques à Arduino, lecture de capteurs

  •  
     
    Commentaires:

    # 1 a écrit: Electromag | [citation]

     
     

    Quelle littérature sur l'étude du code de programmation recommandez-vous?

     
    Commentaires:

    # 2 a écrit: Andrey | [citation]

     
     

    ElectromagUlli Sommer. Programmation de la carte microcontrôleur Arduino / Freeduino, par Jeremy Bloom. Nous étudions Arduino. Outils et techniques pour la magie technique, John Boxell. Nous étudions Arduino. 65 projets de bricolage. Livres sur Arduino sur l'ozone: e.imadeself.com/arduino_books.php

     
    Commentaires:

    # 3 a écrit: Victor | [citation]

     
     

    Matériel très intéressant et passionnant, merci!

     
    Commentaires:

    # 4 a écrit: Ural | [citation]

     
     

    Merci pour l'information, la fonction "carte" était très pratique, je me demandais comment me déplacer, commençant tout juste à apprendre les jouets sur Arduino.

     
    Commentaires:

    # 5 a écrit: Dima | [citation]

     
     

    Quelque chose que je ne trouve pas pour les boucliers Arduino à partager sur mil-std-1553b, bien que pour les bus comp - tas, une interface très populaire. Poke où vous pouvez rechercher-acheter.

    p.s. la date de l'article n'est pas affichée - peut-être qu'elle a 10 ans et ne vaut pas la peine d'écrire des commentaires?

     
    Commentaires:

    # 6 a écrit: Eremino | [citation]

     
     

    Comment faire un répéteur de signal d'entrée sur Arduino pour 4 ou n'importe quel nombre de sorties.

    Faites de même avec 4 canaux d'entrée à 16 canaux de sortie. Dans ce cas, vous devez commuter l'entrée sur 4 sorties simultanément sur chaque canal d'entrée.

     
    Commentaires:

    # 7 a écrit: Oleg | [citation]

     
     

    Les gars, dites-moi, où avez-vous appris à programmer? J'ai passé en revue beaucoup d'informations et personne n'a écrit clairement. Ici, toutes les informations ne sont pas pour un débutant, vraiment beaucoup de choses ne sont pas claires, des euphémismes. Beaucoup de mots ont été écrits sur lesquels il n'y a pas un mot, par exemple, l'auteur écrit au début que vous devez annoncer la bibliothèque et entrer #include biblioteka.h; // mais à propos de ce mot, il n'a rien écrit #incluez pourquoi est-il possible de comprendre tout cela. Je manque déjà de patience, personne ne peut expliquer de la manière habituelle, et expliquer donc ce qui se passerait ici, il est nécessaire d'écrire ceci. Bien sûr, c'est zéro, mais j'essaie de lire, je ne vois rien d'incompréhensible, ce qui n'explique pas beaucoup de superflu. Et je peux dire que je ne suis pas un imbécile stupide, je peux réparer presque tous les appareils électroniques, c'est-à-dire que je suis ami avec ma tête, mais je ne le comprends pas parce qu'ils écrivent ceux qui savent, mais ils ont oublié les nuances alors qu'ils s'y plongeaient eux-mêmes.