Programmes arduino nano v 3.0. Blog › Expérience d'apprentissage d'Arduino. Un autre poste. Matériel

informations générales

L'Arduino Nano est un appareil miniature entièrement fonctionnel basé sur le microcontrôleur ATmega328 (Arduino Nano 3.0) ou ATmega168 (Arduino Nano 2.x) adapté pour une utilisation avec des planches à pain. En termes de fonctionnalité, l'appareil est similaire à l'Arduino Duemilanove, mais en diffère par sa taille, l'absence de connecteur d'alimentation et un câble USB de type différent (Mini-B). L'Arduino Nano est développé et fabriqué par Gravitech.

Schéma et projet original

Lien

L'Arduino Nano offre un certain nombre d'options pour communiquer avec un ordinateur, un autre Arduino ou d'autres microcontrôleurs. L'ATmega168 et l'ATmega328 ont un émetteur-récepteur UART qui permet une communication série via les broches numériques 0 (RX) et 1 (TX). La puce FTDI FT232RL assure la communication entre l'émetteur-récepteur et le port USB de l'ordinateur, et lorsqu'elle est connectée à un PC, permet à Arduino d'être défini comme port COM virtuel(Les pilotes FTDI sont inclus dans le package logiciel Arduino). Le progiciel Arduino comprend également programme spécial, qui vous permet de lire et d'envoyer des données textuelles simples à l'Arduino. Lors du transfert de données vers un ordinateur via USB, les LED RX et TX sur la carte clignotent. (La communication série via les broches 0 et 1 n'allume pas ces LED.)

L'ATmega168 et l'ATmega328 de l'Arduino Nano sont livrés avec un chargeur de démarrage flashé qui vous permet de télécharger de nouveaux programmes sur le microcontrôleur sans avoir besoin d'un programmeur externe. L'interaction avec celui-ci est effectuée selon le protocole original STK500 ( , ).

Réinitialisation (logicielle) automatique

Pour éviter d'avoir à appuyer sur le bouton de réinitialisation à chaque fois avant de télécharger un programme, l'Arduino Nano est conçu de manière à pouvoir être réinitialisé par programme à partir d'un ordinateur connecté. L'une des broches de contrôle de flux de données (DTR) du FT232RL est connectée à la broche RESET de l'ATmega168 ou de l'ATmega328 via un condensateur de 100 nF. Lorsque la ligne DTR passe à zéro, la broche RESET passe également au niveau bas pendant une période suffisamment longue pour réinitialiser le microcontrôleur. Cette fonctionnalité est utilisée afin de pouvoir flasher le microcontrôleur en un seul clic dans l'environnement de programmation Arduino. Cette architecture vous permet de réduire le délai d'attente du chargeur de démarrage, car le processus de clignotement est toujours synchronisé avec la décroissance du signal sur la ligne DTR. Cette architecture vous permet de réduire le délai d'attente du chargeur de démarrage, car le processus de clignotement est toujours synchronisé avec la décroissance du signal sur la ligne DTR.

Cependant, ce système peut entraîner d'autres conséquences. À connecter Arduino Nano aux ordinateurs exécutant Mac OS X ou Linux, son microcontrôleur se réinitialise à chaque fois que le logiciel est connecté à la carte. Après une réinitialisation, l'Arduino Nano active le chargeur de démarrage pendant environ une demi-seconde. Même si le chargeur de démarrage est programmé pour ignorer les données superflues (c'est-à-dire toutes les données qui ne sont pas liées au processus de flashage d'un nouveau programme), il peut intercepter les premiers octets de données du paquet envoyé à la carte immédiatement après l'établissement de la connexion. . Par conséquent, si le programme exécuté sur Arduino prévoit de recevoir des paramètres ou d'autres données de l'ordinateur au premier démarrage, assurez-vous que Logiciel, avec lequel Arduino interagit, envoie une seconde après l'établissement de la connexion.

La plate-forme Nano, construite sur le microcontrôleur ATmega328 (Arduino Nano 3.0) ou ATmega168 (Arduino Nano 2.x), est de petite taille et peut être utilisée en laboratoire.

Carte Arduino Nano

L'Arduino Nano peut être alimenté via la connexion USB Mini-B, ou à partir d'une alimentation externe non régulée 6-20V (broche 30) ou régulée 5V (broche 27). La source avec la tension la plus élevée est automatiquement sélectionnée.

Les caractéristiques cartes arduino Nano

microcontrôleur

ATmega168 ou ATmega328

Tension de travail

5V

7-12V

Tension d'entrée (limite)

6-20V

Entrées/sorties numériques

14 (dont 6 peuvent être utilisées comme sorties PWM)

Entrées analogiques

Courant continu via entrée/sortie

40mA

CC pour sortie 3.3V

50 mA

Mémoire flash

16 Ko (ATmega168) ou 32 Ko (ATmega328) avec 2 Ko utilisés pour le bootloader

RAM

1 Ko (ATmega168) ou 2 Ko (ATmega328)

informations générales

L'Arduino Nano est un appareil miniature entièrement fonctionnel basé sur le microcontrôleur ATmega328 (Arduino Nano 3.0) ou ATmega168 (Arduino Nano 2.x) adapté pour une utilisation avec des planches à pain. En termes de fonctionnalité, l'appareil est similaire à l'Arduino Duemilanove, mais en diffère par sa taille, l'absence de connecteur d'alimentation et un câble USB de type différent (Mini-B). L'Arduino Nano est développé et fabriqué par Gravitech.

Schéma et projet original

En plus de celles énumérées au tableau, il existe plusieurs autres conclusions:

  • AREF. Tension de référence pour les entrées analogiques. Peut être utilisé avec la fonction.
  • réinitialiser. Formation niveau faible(LOW) sur cette broche réinitialisera le microcontrôleur. Généralement, cette broche est utilisée pour actionner le bouton de réinitialisation sur les cartes d'extension.

Lien

L'Arduino Nano offre un certain nombre d'options pour communiquer avec un ordinateur, un autre Arduino ou d'autres microcontrôleurs. L'ATmega168 et l'ATmega328 ont un émetteur-récepteur UART qui permet une communication série via les broches numériques 0 (RX) et 1 (TX). La puce FTDI FT232RL permet à l'émetteur-récepteur de communiquer avec le port USB de l'ordinateur et, lorsqu'il est connecté à un PC, permet à l'Arduino d'être défini comme un port COM virtuel (les pilotes FTDI sont inclus dans le progiciel Arduino). Le progiciel Arduino comprend également un programme spécial qui vous permet de lire et d'envoyer des données textuelles simples à l'Arduino. Lors du transfert de données vers un ordinateur via USB, les LED RX et TX sur la carte clignotent. (La communication série via les broches 0 et 1 n'allume pas ces LED.)

Réinitialisation (logicielle) automatique

Pour éviter d'avoir à appuyer sur le bouton de réinitialisation à chaque fois avant de télécharger un programme, l'Arduino Nano est conçu de manière à pouvoir être réinitialisé par programme à partir d'un ordinateur connecté. L'une des broches de contrôle de flux de données (DTR) du FT232RL est connectée à la broche RESET de l'ATmega168 ou de l'ATmega328 via un condensateur de 100 nF. Lorsque la ligne DTR passe à zéro, la broche RESET passe également au niveau bas pendant une période suffisamment longue pour réinitialiser le microcontrôleur. Cette fonctionnalité est utilisée afin de pouvoir flasher le microcontrôleur en un seul clic dans l'environnement de programmation Arduino. Cette architecture vous permet de réduire le délai d'attente du chargeur de démarrage, car le processus de clignotement est toujours synchronisé avec la décroissance du signal sur la ligne DTR. Cette architecture vous permet de réduire le délai d'attente du chargeur de démarrage, car le processus de clignotement est toujours synchronisé avec la décroissance du signal sur la ligne DTR.

Cependant, ce système peut entraîner d'autres conséquences. Lors de la connexion de l'Arduino Nano à des ordinateurs exécutant Mac OS X ou Linux, son microcontrôleur se réinitialise à chaque fois que le logiciel est connecté à la carte. Après une réinitialisation, l'Arduino Nano active le chargeur de démarrage pendant environ une demi-seconde. Même si le chargeur de démarrage est programmé pour ignorer les données superflues (c'est-à-dire toutes les données qui ne sont pas liées au processus de flashage d'un nouveau programme), il peut intercepter les premiers octets de données du paquet envoyé à la carte immédiatement après l'établissement de la connexion. . Par conséquent, si le programme exécuté sur l'Arduino est destiné à recevoir des paramètres ou d'autres données de l'ordinateur au premier démarrage, assurez-vous que le logiciel avec lequel l'Arduino interagit envoie une seconde après l'établissement de la connexion.

Les principales versions des cartes Arduino sont représentées par les modèles suivants :

informations générales

La plate-forme Nano, construite sur le microcontrôleur ATmega328 (Arduino Nano 3.0) ou ATmega168 (Arduino Nano 2.x), est de petite taille et peut être utilisée en laboratoire. Il a des fonctionnalités similaires à l'Arduino Duemilanove, mais diffère dans l'assemblage. La différence réside dans l'absence de connecteur d'alimentation DC et fonctionne via un câble USB Mini-B. Nano est développé et commercialisé par Gravitech.

Diagrammes schématiques et données initiales

Lien

Plusieurs appareils sont installés sur la plate-forme Arduino Nano pour communiquer avec un ordinateur, d'autres appareils Arduino ou des microcontrôleurs. L'ATmega168 et l'ATmega328 prennent en charge une interface série UART TTL (5V) via les broches 0 (RX) et 1 (TX). Une puce FTDI FT232RL installée sur la carte achemine cette interface via USB, et Pilotes FTDI(inclus dans le programme Arduino) fournissent un port COM virtuel au programme sur l'ordinateur. Le moniteur série Arduino vous permet d'envoyer et de recevoir des données texte lorsqu'il est connecté à la plate-forme. Les LED RX et TX sur la plate-forme clignotent lorsque les données sont transmises via la puce FTDI ou Connexion USB(mais pas lors de l'utilisation de la communication série via les broches 0 et 1).

Avec la bibliothèque SoftwareSerial, il est possible de créer un transfert de données série via l'une des broches numériques du Nano.

ATmega168 et ATmega328 prennent en charge les interfaces I2C (TWI) et SPI. L'Arduino inclut la bibliothèque Wire pour une utilisation facile du bus I2C. Plus d'informations dans la documentation. Pour utiliser l'interface SPI, reportez-vous aux fiches techniques des microcontrôleurs ATmega168 et ATmega328.

Programmation

La plate-forme est programmée à l'aide du logiciel Arduino. Dans le menu Outils > Carte sélectionnez "Arduino Diecimila, Duemilanove ou Nano w/ ATmega168" ou "Arduino Duemilanove ou Nano w/ ATmega328" (selon le microcontrôleur installé). Des informations détaillées peuvent être trouvées dans le manuel et les instructions.

Les microcontrôleurs ATmega168 et ATmega328 sont livrés avec un chargeur de démarrage préchargé qui facilite l'écriture de nouveaux programmes sans utiliser de programmeurs externes. La communication est effectuée par le protocole original STK500.

Il est possible de ne pas utiliser le bootloader et de programmer le microcontrôleur via les sorties du bloc ICSP (programmation en circuit). Des informations détaillées se trouvent dans ce manuel.

Redémarrage automatique (logiciel)

Nano est conçu de telle manière qu'avant d'écrire un nouveau code, le programme lui-même redémarre, et non en appuyant sur un bouton de la plate-forme. L'une des lignes de contrôle de flux de données (DTR) FT232RL est connectée à la broche de réinitialisation des microcontrôleurs ATmega168 ou ATmega328 via un condensateur de 100 nF. Activation de cette ligne, c'est-à-dire un signal de niveau bas, réinitialise le microcontrôleur. Le programme Arduino, en utilisant cette fonction, télécharge le code d'un simple clic sur le bouton Télécharger dans l'environnement de programmation lui-même. La signalisation de bas niveau sur la ligne DTR est coordonnée avec le début de l'écriture du code, ce qui réduit le délai d'attente du chargeur de démarrage.

La fonction a une autre application. Le Nano redémarre chaque fois qu'il est connecté au programme Arduino sur un ordinateur Mac X ou Linux (via USB). La demi-seconde suivante après le redémarrage, le chargeur de démarrage fonctionne. Lors de la programmation, les premiers octets du code sont retardés pour éviter que la plateforme ne reçoive des données incorrectes (tout sauf le code du nouveau programme). Si vous effectuez un débogage ponctuel d'une esquisse écrite sur la plate-forme ou si vous entrez d'autres données lors de la première exécution, vous devez vous assurer que le programme sur l'ordinateur attend une seconde avant de transférer les données.


La source:

Au milieu de 2013, j'ai acheté une planche Arduino Nano version 3.0. Il est clair que la carte est construite sur une plate-forme similaire à un arduino uno à part entière, mais il y a quelques nuances. Essayons de les comprendre dans cet article.

Plate-forme Arduino Nano 3.0 construit sur le microcontrôleur ATmega328, a une petite taille et peut être utilisé dans différents projets. Nano est développé et commercialisé par Gravitech. Ci-dessous les spécifications :

Microcontrôleur - ATmega328
Tension de fonctionnement - 5 V
Tension d'entrée (recommandée) - 7-12 V
Tension d'entrée (limite) - 6-20 V
E/S numériques - 14 (dont 6 peuvent être utilisées comme sorties PWM)
Entrées analogiques - 8
Courant continu par entrée/sortie - 40 mA
Mémoire flash - 32 Ko (dont 2 Ko utilisés pour le bootloader)
RAM - 2 Ko
EEPROM - 1 Ko
Fréquence d'horloge - 16 MHz
Dimensions - 1,85 cm x 4,3 cm

L'Arduino Nano est alimenté par le connecteur USB Mini-B, ainsi que par une alimentation externe non régulée 6-20V (broche 30) ou régulée 5V (broche 27). La source avec la tension la plus élevée est automatiquement sélectionnée.

Les 14 broches numériques (à l'aide des fonctions pinMode(), digitalWrite() et digitalRead()) peuvent être configurées comme entrée ou sortie. Les sorties fonctionnent à 5 V. Chaque sortie a une résistance pull-up de 20-50 kΩ (désactivée par défaut) et peut transporter jusqu'à 40 mA.

Il existe plusieurs façons de communiquer avec un ordinateur ou d'autres appareils et microcontrôleurs. L'ATmega328 prend en charge l'interface série UART TTL (5V) via les broches 0 (RX) et 1 (TX). La puce FTDI FT232RL achemine cette interface via USB et les pilotes FTDI fournissent un port COM virtuel au programme Arduino sur l'ordinateur. Les LED RX et TX sur la plate-forme clignotent lorsque les données sont transmises via la puce FTDI ou la connexion USB uniquement.


La plate-forme est programmée à travers Logiciel Arduino, dont la dernière version peut être téléchargée sur le site officiel.

Mais avant cela, il faut que le périphérique soit détecté sur votre ordinateur. C'est là que j'ai eu des ennuis. Lors de la connexion d'Arduino via un câble USB à un ordinateur, dans le système (Windows 7), la plate-forme était définie comme un périphérique UART. Dans le même temps, les pilotes n'ont pas été installés automatiquement (les pilotes peuvent être téléchargés sur le site Web du fabricant de la puce FTDI). J'ai dû le faire manuellement. Pour ce faire, sélectionnez un appareil non identifié dans le gestionnaire d'appareils. Dans les propriétés, sélectionnez l'élément installer ou mettre à jour le pilote, puis sélectionnez le modèle de convertisseur série USB dans la liste des pilotes déjà installés du fabricant FTDI. Après l'installation du pilote, un composite est apparu périphérique USB, et il ne reste plus qu'à installer le pilote sur Ports COM et LTP. De la même manière, j'ai choisi un pilote du même fabricant, et après cela, mon Arduino est devenu disponible pour télécharger des croquis.

Pour vérifier les performances, ouvrez l'application pour Arduino. Dans l'onglet service (Outils), dans le tableau de menu (tableau), sélectionnez Arduino Nano avec ATmega328. Copiez maintenant ce croquis dans votre programme et cliquez sur le bouton de téléchargement.

/* Faire clignoter la LED SOS. Croquis de clignotement LED standard légèrement modifié. Simule un signal SOS en code Morse, répétant alternativement trois clignotements courts, trois longs, puis à nouveau trois courts. Plus de détails ici http://www.craft-tech.ru */ // L'esquisse est allumée lorsque l'alimentation est appliquée ou lorsque le bouton de réinitialisation est enfoncé void setup() ( // fonctionne avec la broche 13. pinMode(13 , OUTPUT); ) // la fonction de boucle exécute l'esquisse dans un cercle void loop() ( digitalWrite (13, HIGH); // applique une tension à la 13e broche du retard LED (100); // attend 1 dixième de un deuxième digitalWrite(13, LOW); // coupe la tension à 13 pieds delay(100); digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW); delay(100); digitalWrite(13 , HIGH); delay(100); digitalWrite(13, LOW); delay (200); // attendre 2 dixièmes de seconde digitalWrite(13, HIGH); // activer la tension delay(500); // attendre une demi-seconde digitalWrite(13, LOW); // désactiver le retard de tension(100); digitalWrite(13 , HIGH); delay(500); digitalWrite(13, LOW); delay(100); digitalWrite(13, HIGH ); delay(500); digitalWrite(13, LOW); delay(200); digitalWrite(13, HIGH ); // et encore clignotements courts delay(100); digitalWrite(13, LOW); delay(100); digitalWrite (13, HAUTE); retard(100); digitalWrite(13, BAS); retard(100); digitalWrite(13, ÉLEVÉ); retard(100); digitalWrite(13, BAS); retard (6000); // attendez 6 secondes et tout se répète à nouveau)

Une fois l'esquisse compilée et téléchargée sur l'Arduino, la LED de la carte commencera à clignoter, répétant le signal SOS du code Morse. Cela signifie que la configuration a réussi.

Voici à quoi ressemble l'Arduino nano :

Il existe plusieurs versions de cartes nano. Il existe la version 2.X et la version 3.0. Ces versions diffèrent par le microcontrôleur lui-même. La version plus jeune de cet arduino utilise la puce ATmega168. Cette puce a moins de mémoire flash, de mémoire non volatile, ainsi qu'une vitesse d'horloge inférieure. Étant donné que le prix des différentes versions de l'Arduino nano est pratiquement le même, nous ne considérerons pas les plus jeunes d'entre eux.

Arduino nanov 3.0

Cette version est équipée d'un microcontrôleur ATmega328. Contrairement à son homologue plus jeune, il possède deux fois plus de mémoire non volatile et flash. Et bénéficie d'une fréquence d'horloge de 16 MHz.

Acheter Arduino nano v 3.0

  • La qualité est pratiquement la même que les planches originales fabriquées en Italie.
  • Le prix est beaucoup plus bas. italien arduino nano coûte environ 10 $, et en Chine, ce microcontrôleur coûtera 2 à 2,5 $
  • Dans les magasins russes, la majoration est de 100 à 500 %. En même temps, très souvent, sous le couvert de la planche d'origine, ils peuvent vendre des chinois, et même de très mauvaise qualité.
  • Sur aliexpress, vous pouvez facilement trouver des vendeurs fiables avec de bonnes critiques.
  • Vous pouvez utiliser des coupons de réduction et des services de cashback.

Les caractéristiques

  • Microcontrôleur : ATmega328
  • Tension d'alimentation limite : 5-20 V
  • Tension d'alimentation recommandée : 7-12 V
  • E/S numériques : 14
  • PWM : 6 broches numériques peuvent être utilisées comme broches PWM
  • Sorties analogiques : 8
  • Courant maximum : 40 mAh d'une sortie et 500 mAh de toutes les sorties.
  • Mémoire flash : 32 ko
  • SRAM : 2 Ko
  • EEPROM : 1 ko
  • Fréquence d'horloge : 16 MHz

Connexion de l'alimentation à l'Arduino nano

Ce microcontrôleur peut être alimenté via un port mini-USB à partir d'un ordinateur, d'une banque d'alimentation ou d'un adaptateur connecté à une prise de courant.De plus, la broche + 5V n'est pas seulement une sortie, mais également une entrée. Vous pouvez lui appliquer du courant et tout cela ne fonctionnera qu'à condition que la tension du courant fourni exactement égal à cinq volts!
Vous pouvez toujours postuler DC avec une tension de 6 à 20 volts sur la broche VIN. Ce sont les limites ! Lorsqu'une tension de 20 volts est appliquée, le régulateur de tension sera très chaud sur la carte. La tension recommandée pour l'alimentation via la broche VIN est de 7 à 12 volts.

Brochage Arduino Nano v 3.0


Comme déjà mentionné ci-dessus, la carte dispose de 14 broches numériques. Ils sont étiquetés sur le tableau avec un "D" en tête (numérique). Ils peuvent être à la fois en entrée et en sortie. La tension de fonctionnement de ces broches est de 5 V. Chacune d'entre elles possède une résistance de pull-up et une tension inférieure à 5 volts appliquée à l'une de ces broches sera toujours considérée comme 5 volts (un logique).

Les broches analogiques de la carte sont marquées d'un "A" en tête. Ces broches sont des entrées et n'ont pas de résistances pull-up. Ils mesurent la tension qui leur est appliquée et renvoient une valeur comprise entre 0 et 1024 lors de l'utilisation de la fonction analogRead(). Ces broches mesurent la tension avec une précision de 0,005 V.

Modulation de largeur d'impulsion (PWM) Arduino nano

Si vous regardez attentivement le tableau, vous pouvez voir une icône tilde (~) à côté de certaines broches numériques. Cette icône signifie que cette broche peut être utilisée comme sortie PWM. Certaines cartes arduino n'ont pas cette icône car les fabricants ne trouvent pas toujours une place pour ce symbole sur la carte. L'Arduino nano a 6 broches PWM, ce sont les broches D3, D5, D6, D9, D10 et D11. Pour utiliser PWM, l'Arduino a une fonction spéciale analogWrite().

Autres épingles :

  • rx0 et tx1 sont utilisés pour transférer des données sur l'interface série.
  • Les broches D10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK) sont conçues pour la communication SPI.
  • Il y a aussi une LED intégrée dans la carte à la broche D13.
  • A4 (SDA) et A5 (SCL) peuvent être utilisés pour communiquer avec d'autres appareils via le bus I2C. Vous pouvez en savoir plus sur cette interface sur Wikipedia. En environnement de développement EDI Arduino il y a une bibliothèque intégrée "wire.h" pour un travail plus facile avec I2C.

caractéristiques physiques

L'Arduino Nano mesure 42 mm de long et 19 mm de large. Cependant, le connecteur USB dépasse un peu. circuit imprimé. L'Arduino Nano ne pèse qu'environ 12 grammes. La planche a 4 trous pour la possibilité de la fixer en surface. La distance entre les fils est de 2,54 mm.

Schéma de principe de l'Arduino Nano