Bibliothèque AVR pour travailler avec le bus I2C et avec l'horloge temps réel PCF8583.

Cet article vous montrera comment utiliser un module d'interface I2C pour contrôler un écran LCD (2x16 / 20x4) à l'aide d'un Arduino. Ce module permet de réduire le nombre de broches du contrôleur utilisées, au lieu d'une connexion 8 ou 4 bits, seules 2 broches (SDA et SCL) sont nécessaires.

Spécifications techniques

Prise en charge de l'affichage : LCD 16 × 02/20 × 04
En option : réglage du contraste
Tension d'alimentation. 5B
Interface : I2C
Dimensions : 54 mm x 19 mm x 15 mm

Informations générales du module d'interface I2C

Étant donné que le nombre de broches sur les contrôleurs Arduino est limité et souvent utilisé divers capteurs et ils manquent de modules, il est nécessaire de les enregistrer, pour ces cas ce module a été développé, avec son aide, il est possible de mettre en œuvre la transmission sur deux contacts (SDA et SCL).

Maintenant un peu sur le module lui-même, il est construit sur le microcircuit PCF8574T. Les résistances R8 (4.7kOhm) et R9 (4.7kOhm) sont nécessaires pour tirer les lignes SDA et SCL, idéalement, lors de la connexion de deux appareils ou plus via le bus I2C, vous devez utiliser le pull-up sur un seul appareil, plus tard je écrira pourquoi. Il y a trois cavaliers sur la carte (le schéma montre que les lignes A0, A1, A2 sont tirées vers le haut pour alimenter les résistances R4, R5, R6), elles sont nécessaires pour changer l'adressage de l'appareil, il y a 8 options dans le total. La modification de l'adressage nous donne la possibilité de connecter jusqu'à huit appareils via le bus IC2 avec le microcircuit PCF8574T, les options d'adresse sont indiquées sur la figure (par défaut, l'adresse de l'appareil est 0x27). Le module est également équipé d'un potentiomètre R11 avec son aide vous pouvez changer le contraste de l'écran LCD.

Pour la connexion, le module dispose de trois groupes de contacts :

Premier groupe :
SCL : horloge série
SDA : ligne de données (Serial Dft)
VCC : "+" puissance
GND : "-" puissance

Deuxième groupe :
VSS : "-" alimentation
VDD : alimentation "+"
VO : Pin de contrôle du contraste
RS : sélection de registre
RW : lecture/écriture (mode d'écriture lorsqu'il est connecté à la terre)
E : Activer (stroboscope à atténuation)
DB0-DB3 : bits de poids faible de l'interface
DB4-DB7 : bits les plus significatifs de l'interface
A: puissance de rétroéclairage "+"
K : "-" puissance du rétroéclairage

Troisième groupe : (cavalier installé par défaut)
VCC :
A de l'écran LCD :

Connexion à Arduino

Détails requis :
Arduino UNO R3 x 1pc
Écran LCD 1602A (2 × 16, 5V, bleu) x 1 pc.
Module d'interface I2C, IIC, TWI pour LCD x 1 pc.
Fil DuPont, 2,54 mm, 20 cm, F-M (femelle à mâle) x 1
cable USB 2.0 A-B x 1pc

Lien:
Tout d'abord, nous soudons le module I2C à l'écran LCD, puis vous devez connecter l'écran à l'Arduino UNO. Pour ce faire, nous utiliserons le câblage DuPont, nous nous connectons selon le tableau ci-dessous.

Pour plus de clarté, je vais donner un autre schéma.

Pour cette expérimentation, vous devez télécharger et installer la librairie "LiquidCrystal_I2C". Ensuite, copiez et collez cet exemple de code dans la fenêtre Arduino IDE et téléchargez-le sur le contrôleur.

/ * Testé le IDE Arduino 1.6.11 Date d'essai 15/09/2016. * / #comprendre #comprendre LiquidCrystal_I2C lcd (0x27,16,2) ; // Définir l'adresse et la taille de l'affichage vide setup () (lcd.init (); // Initialiser lcd lcd.backlight (); // Activer le rétro-éclairage lcd.setCursor (0,0); // Définir le curseur au début de la ligne 1 lcd .print ("Bonjour, monde"); // Affiche le texte lcd.setCursor (0,1); // Place le curseur au début de la ligne 2 lcd.print ("www. robotchip.ru"); // Affiche le texte) boucle vide () ()

Télécharger le programme

Si vous avez tout fait correctement, mais qu'il n'y a pas de symboles sur l'écran, essayez d'augmenter le contraste avec le potentiomètre.


Liens
Télécharger la bibliothèque LiquidCrystal_I2C
Documentation de la puce PCF8574T
LCD1602A Documentation

Acheter sur Aliexpress

J'avais besoin de faire une horloge basée sur un microcircuit avec une interface I 2 C. Microcircuit RTC, soi-disant. "horloge temps réel" PCF8583.

À l'intérieur du microcircuit se trouvent: horloge, réveil, minuterie, calendrier (courbe) et 240 octets de RAM, où vous pouvez écrire toutes les informations que vous souhaitez. La RAM est une chose très utile, contrairement à la mémoire flash, la RAM n'a aucune restriction sur le nombre de cycles de réécriture, et vous pouvez enregistrer des données, des paramètres, aussi souvent que vous le souhaitez.

Mais il y avait un problème - je ne voulais vraiment pas écrire le code, et j'ai décidé de trouver le code prêt à l'emploi sur Internet. Comme il s'est avéré plus tard, pour trouver "sur votre propre tête". J'ai téléchargé un exemple de travail avec I 2 C, je l'ai corrigé, j'ai flashé le microcontrôleur. Cela n'a pas fonctionné. J'ai commencé à choisir le code, à la recherche de la raison de l'inopérabilité ... et j'ai été horrifié !! Dans certains cas, l'enregistrement a été effectué sur l'ensemble du port à la fois, et non sur des bits spécifiques. Ainsi, si vous accrochez autre chose sur le port, par exemple un écran, cela ne fonctionnera probablement pas. De plus, la lecture des données via le bus était mal implémentée (sans générer la condition de fin de réception, ou simplement sans NACK). Mais c'est la moitié du problème. Le problème principal est différent. Souvent, l'auteur du code met un "1" logique dans le port, et comme nous le savons, le bus I 2 C est contrôlé en "tirant" les broches SDA et SCL sur le fil commun. Et le "1" logique sur le bus, à son tour, est formé en tirant sur l'alimentation positive avec des résistances de 4,7 kilo-ohms. Ainsi, si vous définissez la logique "1" à la sortie du microcontrôleur et que le dispositif esclave "attire" cette sortie vers le fil commun, vous obtenez "bang bang" court-circuit... Je n'aimais vraiment pas ça, et j'ai décidé de réinventer mon vélo pour écrire ma propre bibliothèque, ou plutôt 2 bibliothèques : une pour travailler avec le bus I 2 C, et l'autre directement pour travailler avec l'horloge temps réel PCF8583. Soit dit en passant, le code est écrit.

Afin de connecter la bibliothèque I 2 C au projet, vous devez l'enregistrer via include, comme dans l'image, et également copier la bibliothèque dans le dossier du projet.

Après cela, vous devez ouvrir le fichier "i2c.h", et spécifier les jambes du microcontrôleur, qui agira comme le bus I 2 C. Par défaut, le bus est configuré pour les jambes PC0 (SCL) et PC1 ( SDJ). Et le réglage se fait ici :

Ça y est, nous avons connecté la librairie I2C, mis en place les pattes, la librairie est prête à fonctionner. Exemple d'utilisation :

I2c_init (); // Initialiser le bus I2C i2c_start_cond (); // démarrage du bus i2c_send_byte (0xA0) ; // adresse du périphérique qui se bloque sur le bus i2c_send_byte (0x10) ; // octet de données que nous écrivons sur le périphérique i2c_send_byte (0x10) ; // un octet de données de plus, que nous écrivons sur le périphérique i2c_stop_cond (); // arrête les pneus

Après la condition d'arrêt, nous pouvons vérifier si tout est en ordre avec le bus I 2 C. Pour ce faire, nous devons lire la variable "i2c_frame_error". Si tout va bien, il contiendra 0. Si l'une des broches du bus n'est pas "tirée" vers l'alimentation et que le "1" logique n'est pas établi sur le bus, la bibliothèque génère une erreur et écrit le numéro 1 à la variable "i2c_frame_error". Lire la variable " i2c_frame_error " est nécessaire après la condition d'arrêt. La figure ci-dessous illustre le fonctionnement du contrôle des erreurs :

Commençons maintenant à connecter la bibliothèque d'horloge temps réel PCF8583. Pour ce faire, vous devez faire de même. Copiez le fichier "PCF8583.h" dans le dossier du projet, et ajoutez-le à inclure, comme sur la photo :

Prêt. La bibliothèque d'horloge temps réel PCF8583 est connectée. Il ne nécessite aucun réglage, vous pouvez donc commencer immédiatement à lire l'heure et la date du microcircuit. J'attire votre attention sur le fait que la librairie PCF8583 fonctionne avec la librairie I2C, donc si on veut travailler avec PCF8583, alors il faut connecter les deux librairies !

Un exemple d'utilisation de la bibliothèque (heure et date d'écriture et de lecture) :

// Initialise le bus I2C i2c_init (); // Préparer l'heure et la date pour l'écriture sur la puce PCF8583 PCF_hour = 23; // 23 heures PCF_min = 59; // 59 minutes PCF_jour = 31; // 31ème nombre PCF_mois = 12; // 12 mois - décembre PCF_année = 0; // année (0 - pas une année bissextile) PCF_weekday = 6; // 6ème jour de la semaine (dimanche) // Ecrit l'heure et la date sur la puce PCF8583 PCF_write_hh_mm_ss (); // Lecture de l'heure et de la date de la puce PCF8583 PCF_read_hh_mm_ss (); Un exemple de travail avec la RAM (écriture et lecture) : // Préparer 5 octets pour l'écriture sur la puce PCF8583 PCF_data_ram_1 = 255; // octet 1 PCF_data_ram_2 = 255; // octet 2 PCF_data_ram_3 = 255; // octet 3 PCF_data_ram_4 = 255; // octet 4 PCF_data_ram_5 = 255; // octet 5 // Ecrit 5 octets sur la puce PCF8583 PCF_write_ram (); // Lecture de 5 octets depuis PCF8583 PCF_read_ram ();

La lecture à partir d'un microcircuit est encore plus facile - il suffit d'appeler la fonctionPCF_ lire_ hum_ mm_ ss() après cela, l'heure et la date apparaîtront dans les variables, d'où vous venez de les prendre. Pour lire la RAM, respectivement, nous utilisons la fonctionPCF_ lire_ RAM() après quoi on prend les données en variablesPCF_ Les données_ RAM_ N

Voici une liste des variables où et ce qui est stocké :

// heure et date PCF_heure = 0; // heure, heures (de 0 à 23, protection contre les débordements en écriture et en lecture) PCF_min = 0; // heure, minutes (de 0 à 59, protection contre les débordements en écriture et en lecture) PCF_sec = 0; // heure, secondes (lecture seule, remise à 00 lors de l'écriture) PCF_day = 0; // jour (de 1 à 31, protection contre les débordements en écriture et en lecture) PCF_weekday = 0 // jour de la semaine (0-lundi; 6-dimanche, protection contre les débordements en écriture et en lecture) PCF_month = 0; // mois (de 1 à 12, protection contre les débordements en écriture et en lecture) PCF_year = 0; // année (0 année bissextile ; 1,2,3 années non bissextiles, protection contre les débordements lors de l'écriture et de la lecture) // RAM PCF_data_ram_1; // Données (RAM PCF8583), octet 1 PCF_data_ram_2; // Données (RAM PCF8583), octet 2 PCF_data_ram_3; // Données (RAM PCF8583), octet 3 PCF_data_ram_4; // Données (RAM PCF8583), octet 4 PCF_data_ram_5; // Données (RAM PCF8583), octet 5

Maintenant, je vais vous parler de la protection contre les débordements. Disons que nous avons oublié de connecter le microcircuit. Lisons les données du microcircuit et lisons l'octet 11111111, ou le nombre 255. Le fait est que le bus I 2 C est basé sur 2 résistances pull-up, ils nous en donnent donc des "un" logiques si le microcircuit n'est pas connecté. Pour se prémunir contre de tels cas, dans la bibliothèque PCF8583 j'ai fait une protection contre les débordements, qui fait en sorte que l'horloge ne vous affiche pas 62 heures et 81 minutes... La présence d'un débordement peut être tracée en lisant la variable "PCF_overflow". S'il contient 0, il n'y a pas eu d'erreurs de débordement. S'il en contient 1 ou plus, il y a des erreurs de débordement. Vous devez lire la variable "PCF_overflow" après la fonction de lecture de la date et de l'heurePCF_ lire_ hum_ mm_ ss()

Pour plus de clarté, le projet AVR Studio 6 pour ATmega32 est joint. Vous pouvez recompiler pour n'importe quel AVR. Dans le projet, j'ai également connecté un écran pour le contrôle visuel. A la mise sous tension, le microcontrôleur règle 23 heures 59 minutes, le dimanche 31 décembre. Et dans une minute, cela devient 00 heures 00 minutes, le lundi 1er janvier.

Maintenant je vais vous dire pourquoi j'ai parlé du calendrier "courbe" de ce microcircuit. Le fait est que le microcircuit ne sait pas comment stocker l'année civile en cours, mais ne stocke que le drapeau de l'année bissextile. En bref :
0 - année bissextile
1 - pas une année bissextile
2 - pas une année bissextile
3 - pas une année bissextile

Et ainsi de suite sur le cycle 0-1-2-3-0-1-2-3-0...

En général, pour faire un calendrier normal, vous devez implémenter un calcul logiciel et enregistrer l'année, par exemple, dans le même RAM PCF8583, mais ce n'est pas pratique. Et surtout, avec un circuit hors tension, hélas, personne n'écrasera la mémoire...

Je joins également un petit reportage vidéo à la fin de l'article. En programmation, je peux dire débutant, bien que je programme depuis 3 ans (un peu), ne jugez pas strictement pour le code, s'il y a des ajouts et des commentaires, écrivez, nous le corrigerons. Bons produits faits maison à tous !

Liste des radioéléments

La désignation Type de Dénomination Quantité NoterBoutiqueMon cahier
MK AVR 8 bits

ATmega32

1 Dans le bloc-notes
Horloge en temps réel (RTC)

PCF8583

1 Dans le bloc-notes
affichage LCDWH16021

Dans cet article, nous avons tenté de rassembler en un seul endroit des liens vers toutes les bibliothèques Arduino les plus populaires et avons également préparé une sélection des bibliothèques les plus populaires. Tôt ou tard, tout joueur arduino est confronté à la nécessité d'utiliser une bibliothèque particulière. Après tout, l'utilisation d'un code prêt à l'emploi réduit considérablement le temps de programmation. Nous espérons que rassemblées en un seul endroit et fournies avec des liens de téléchargement et de courts exemples d'utilisation, les informations sur les bibliothèques populaires vous aideront dans vos projets.

La bibliothèque arduino est une sorte code de programme stocké non pas dans l'esquisse, mais dans fichiers externes qui peut être connecté à votre projet. La bibliothèque contient différentes méthodes et les structures de données nécessaires pour simplifier le travail avec des capteurs, des indicateurs, des modules et d'autres composants. L'utilisation de programmes prêts à l'emploi simplifie grandement le travail sur les projets, car vous pouvez vous concentrer sur la logique principale sans perdre de temps sur beaucoup de petites choses.

Aujourd'hui, un grand nombre de bibliothèques ont été créées et peuvent être facilement trouvées et téléchargées sur Internet. La grande majorité des bibliothèques sont distribuées par License gratuite il n'est donc pas nécessaire de rechercher des versions "piratées". L'essentiel est d'apprendre.

Bibliothèques standards Arduino

Il est préférable de commencer à vous familiariser avec les bibliothèques à partir du site officiel, où vous pouvez trouver une liste impressionnante de modules standard et des liens vers des bibliothèques partenaires officielles.

Liste des bibliothèques intégrées (elles sont fournies avec la distribution Arduino IDE) :

  • EEPROM
  • Ethernet / Ethernet 2
  • Firmata
  • Liquide Crystal
  • Servomoteur
  • LogicielSérie
  • Pas à pas

Une sélection de bibliothèques dans une archive

Si vous n'avez pas le temps pour une analyse détaillée de nombreux sites et que vous souhaitez télécharger tout ce dont vous avez besoin pour travailler avec périphériques externes Arduino dans une archive, nous avons préparé une liste des 40 bibliothèques les plus populaires. Simplement et décompressez son contenu (dossier des bibliothèques) dans votre dossier Arduino.

Bibliothèques pour écrans, indicateurs et affichages

Bibliothèque I2C

Une bibliothèque conçue pour faire fonctionner un périphérique utilisant le protocole I2C.

Exemple d'utilisation :

#ifndef I2C_MASTER_H

#define I2C_MASTER_H

void I2C_init (void) - création d'un objet, définition de la fréquence correcte pour le bus.

uint8_t I2C_start () - établissement d'une connexion avec un nouvel appareil.

uint8_t I2C_write () - écriture de données sur le périphérique actuel.

uint8_t I2C_read_ack () - lecture d'un octet de l'appareil, demande l'octet suivant.

Bibliothèque LiquidCrystal

Bibliothèque standard installée dans Arduino IDE. Conçu pour contrôler les écrans LCD à cristaux liquides.

Exemple d'utilisation :

#comprendre ... Aussi, afin de ne pas faire d'erreur lors de l'écriture, vous pouvez le connecter via le menu Sketch - Import Library - LiquidCrystal.

Le constructeur de la classe est LiquidCristal (...). Les arguments sont rs, rw, en, do… d7. Les 3 premiers correspondent aux broches de signal RS, RW et Enable. Les broches d correspondent aux numéros des bus de données auxquels l'écran est connecté.

void begin (cols, rows) est la méthode qui initialise l'interface d'affichage. Les arguments sont le nombre de caractères par ligne (cols) et le nombre de lignes (rows). Cette méthode doit être demandée en premier.

void createChar (num, data) - la méthode nécessaire pour créer des caractères personnalisés.

Bibliothèque UTFT

Bibliothèque standard requise pour qu'Arduino fonctionne avec les écrans TFT différents types... Tous les écrans pris en charge sont affichés dans document d'accompagnement avec une bibliothèque.

Exemple d'utilisation :

#comprendre

UTFT (); - créer une instance d'UTFT.

textRus (car * st, int x, int y); - une méthode qui permet de sortir une chaîne à partir d'un pointeur. Par exemple, char * dht = « Température, C » ;

textRus (chaîne st, int x, int y); - sortie d'une ligne avec une indication dans le paramètre. Par exemple, g.textRus ("Température, C", 0, 20);

Bibliothèque LedControl

Vous permet de contrôler des écrans à sept segments, de combiner un ensemble de LED en une seule matrice.

Exemple d'utilisation :

#comprendre

LedControl lc1 = LedControl ();

- requis pour initialiser la bibliothèque. Il doit être composé de quatre arguments - le nombre de broches auxquelles l'écran est connecté (les 3 premiers arguments) et le nombre de puces connectées.

writeArduinoOn7Segment () - Affiche tous les nombres de 0 à 15. Utilise setChar () pour les caractères a et d et setRow () pour simuler les caractères manquants.

LedControl.shutdown () - image d'arrêt.

setIntensity () - contrôle de la luminosité.

Bibliothèques pour travailler avec la date et l'heure Arduino

Bibliothèque RTClib

Une bibliothèque pour travailler avec une horloge en temps réel qui simplifie l'interaction avec Arduino.

Exemple d'utilisation :

#comprendre

RTC_DS1307 RTC ; - sélection du capteur (dans ce cas DS1307).

rtc.adjust (DateHeure (Date, Heure)); - réglage de l'heure et du calendrier.

dayOfTheWeek () - affiche le jour de la semaine. L'argument va de 0 à 6, 0 est dimanche.

Bibliothèque Timelib

Permet à Arduino d'obtenir des informations sur la date et l'heure du moment.

Exemple d'utilisation :

#comprendre

Temps (); - créer une instance.

setTime (t); - régler l'heure. L'argument t est l'heure, la minute, la seconde, le jour, le mois et l'année.

timeStatus (); - indique si l'heure est réglée.

AdjustTime (ajustement); - réglage de l'heure.

Bibliothèque DS1307

Bibliothèque pour une interaction pratique de l'horloge DS1307 avec Arduino à l'aide de la bibliothèque Wire.

Exemple d'utilisation :

#comprendre

classe DS1307RTC - Créez un objet DS1307.

SetTime () - réglage de l'heure.

get () - lit RTC, renvoie la date résultante au format POSIX.

Set (time_t t) - écriture de la date sur RTC

Bibliothèque DS 3231

Conçu pour gérer la date et l'heure dans le module ds3231.

#inclure "ds3231.h"

Horloge DS3231 (SDA, SCL); - création d'un objet DS3231, connexion à une ligne d'horloge et une ligne de données.

obtenir du temps (); - lecture de la date et de l'heure sur l'horloge.

setDate (date, lun, année); - le réglage de la date.

Bibliothèques système Arduino

bibliothèque EEPROM

Bibliothèque standard. Conçu pour fonctionner avec une mémoire non volatile (enregistrement de données, lecture).

Exemple d'utilisation :

#comprendre

EEPROM.read (); - création d'un objet, lecture d'un octet à une adresse en mémoire non volatile.

EEPROM.write (adresse, valeur) - écriture d'un octet dans la mémoire non volatile.

EEPROM.put () - écriture de chaînes de nombres à virgule flottante.

EEPROM.get () - lecture de chaînes et de nombres à virgule flottante.

LogicielBibliothèque série

Une bibliothèque qui vous permet d'implémenter des interfaces série à partir de n'importe quelle broche numérique. Vous permet également de créer plusieurs ports série qui fonctionnent à des vitesses allant jusqu'à 115 200 bauds.

#comprendre

SoftwareSerial mySerial (RX, TX) - création d'objets, arguments - broches auxquelles RX et TX sont connectés.

Serial.begin (); - définit la vitesse du port pour la communication entre l'arduino et l'ordinateur.

mySerial.overflow () - vérifie le débordement du tampon d'entrée.

Bibliothèque de mathématiques

Comprend un grand nombre de fonctions mathématiques pour travailler avec des nombres à virgule flottante.

Exemple d'utilisation :

#comprendre

Math (); - créer une instance de Math.

Serial.print (“cos num =“); - renvoie le cosinus d'un nombre.

Serial.println (fmod (double__x, double__y)); - renvoie des nombres modulo.

Bibliothèque du planificateur

Conçu pour fonctionner avec l'Arduino Due, vous permet de travailler en mode multitâche. C'est encore une bibliothèque expérimentale.

Exemple d'utilisation :

#comprendre

Planificateur; - créer une instance.

Scheduler.startLoop () - vous permet d'ajouter une fonction qui s'exécutera avec loop ().

rendement () - vous permet de transférer le contrôle à d'autres tâches.

Bibliothèques de servomoteurs et de moteurs pas à pas

Bibliothèque d'asservissement

Bibliothèque standard. Indispensable pour contrôler les servomoteurs et est souvent utilisé dans les projets robotiques avec des manipulateurs.

Exemple d'utilisation :

#comprendre

Servo myservo; - créer un objet pour le servomoteur ..

monservo.attache (); - numéro de la sortie à laquelle le servomoteur est connecté.

monservo.write (180, 30, vrai); - mouvement de 180 degrés, vitesse 30, en attente de la fin du mouvement.

Bibliothèque pas à pas

Nécessaire pour piloter des moteurs pas à pas unipolaires et bipolaires.

#comprendre

const int étapesPerRevolution =; - le nombre de pas pour lesquels le moteur fait un tour complet.

Stepper myStepper = Stepper (steps, pin1, pin2) - crée une instance de la classe avec le nombre spécifié de pas et de broches auquel le moteur est connecté.

Bibliothèques de capteurs Arduino

Bibliothèque DHT

#comprendre< DHT.h>

DHT dht (DHTPIN, DHT11); - initialise le capteur (dans ce cas DHT11).

dht.begin (); - démarrage du capteur.

float t = dht.readTemperature (); - lecture de la valeur de température actuelle en degrés Celsius.

Bibliothèque de température de Dallas

Conçu pour fonctionner avec les capteurs Dallas. Fonctionne en conjonction avec la bibliothèque OneWire.

#comprendre

DallasTempérature dallasSensors (& oneWire) ; - transfert de l'objet oneWire pour travailler avec le capteur.

le mettre dans le registre.

printTemperature (sensorAddress); - demande de réception de la valeur de température mesurée.

Bibliothèque à ultrasons

Permet à Arduino de fonctionner avec le capteur de distance à ultrasons HC-SR04.

#comprendre

Ultrasons ultrasons (tig, echo) - déclaration d'objet, arguments - Contact de déclenchement et contact d'écho.

dist = ultrasonic.distanceRead (); - détermination de la distance à l'objet. Agrument - centimètres (CM) ou pouces (INC).

Timing () - lecture de la durée d'impulsion à la sortie Echo, la traduisant dans le système de numérotation requis.

Bibliothèque ADXL345

Conçu pour fonctionner avec l'accéléromètre ADXL345.

Exemple d'utilisation :

#comprendre

ADXL345_ADDRESS - création d'un objet en spécifiant son adresse.

ADXL345_REG_DEVID - identification de l'appareil.

ADXL345_REG_OFSX - Décalage de l'axe X.

ADXL345_REG_BW_RATE - contrôle du débit en bauds.

Bibliothèque BME280

Conçu pour fonctionner avec le capteur de température, d'humidité et de pression BME280.

Exemple d'utilisation :

#comprendre

BME280_ADDRESS - création d'un objet BME280, en spécifiant son adresse.

commencer (uint8_t addr = BME280_ADDRESS); - le début du fonctionnement du capteur.

getTemperature - obtenir la température mesurée.

getPressure - obtient la pression mesurée.

Bibliothèque BMP280

Nécessaire pour fonctionner avec le capteur de pression atmosphérique BMP280.

Exemple d'utilisation :

#comprendre

BMP280_CHIPID - création d'une instance, en spécifiant son adresse.

getTemperature (float * temp); - obtenir la température mesurée.

getPressure (float * pression); - obtenir la valeur de pression mesurée.

Bibliothèque BMP085

Nécessaire pour fonctionner avec le capteur de pression BMP085.

Exemple d'utilisation :

#comprendre

Adafruit_BMP085 bmp ; - création d'une instance de BMP085.

dps.init (MODE_ULTRA_HIGHRES, 25000, vrai); - mesure de pression, argument 25000 - altitude au-dessus du niveau de la mer (dans ce cas 250 m au-dessus du niveau de la mer).

dps.getPressure (& Pression); - détermination de la pression.

Bibliothèque d'empreintes digitales

Nécessaire pour travailler avec le lecteur d'empreintes digitales.

Exempleutilisation:

#comprendre

Adafruit_Fingerprint doigt = Adafruit_Fingerprint (& mySerial); - Déclaration d'objet Finger. Paramètre - référence à l'objet pour travailler avec l'UART, auquel le module est connecté.

doigt.commencer (); - initialisation du module d'empreintes digitales.

Func_sensor_communication (); - appelez le module d'empreintes digitales.

Bibliothèques de communication

Bibliothèque de fils

Nécessaire pour fonctionner avec une interface I2C à 2 fils.

Exemple d'utilisation :

#comprendre

Wire.begin() - initialisation de la librairie, connexion au bus I2C.

Wire.requestFrom () - la demande du maître pour les octets du périphérique esclave.

Wire.beginTransmission () - début de la transmission vers l'appareil esclave.

Bibliothèque à distance

Requis pour qu'Arduino fonctionne avec un récepteur IR.

Exemple d'utilisation :

#comprendre

IRrecv irrecv (RECV_PIN); - broche à laquelle le récepteur IR est connecté.

SetPinAndButton (int ir1, int ir2, int pin) - vous permet de configurer une sortie spécifique à déclencher aux valeurs données de ir1, ir2.

bibliothèque GSM

Nécessaire pour se connecter via une carte GSM à un réseau GSM/GRPS. Avec son aide, vous pouvez mettre en œuvre des opérations effectuées par un téléphone GSM, travailler avec des appels vocaux et vous connecter à Internet via GRPS.

Exemple d'utilisation :

#comprendre

GSM GSMAccess - initialise une instance de la classe.

gprs.powerOn () - mise sous tension.

GPRS - configuration d'une connexion Internet.

GSM - contrôle de modem radio.

Bibliothèque RFID

Nécessaire pour connecter Arduino et module RFID.

Exemple d'utilisation :

#comprendre

RFID RFID (SS_PIN, RST_PIN); - création d'une instance de rfid, arguments - broches auxquelles le module est connecté.

rfid.init (); - initialisation du module RFID.

Bibliothèque du CRFM 522

Nécessaire pour connecter le module Arduino et MFRC522.

Exemple d'utilisation :

#comprendre

MFRC522 mfrc522 (SS_PIN, RST_PIN); - en créant une instance de MFRC522, les arguments indiquent les sorties auxquelles le module est connecté.

mfrc522.PCD_Init (); - initialisation du MFRC522.

Bibliothèque Ethershield

Nouvelle version https://github.com/jcw/ethercard

Nécessaire pour connecter Arduino à réseau local ou Internet. La bibliothèque n'est plus prise en charge, plus une nouvelle version Carte Ether. Il y a aussi bibliothèque standard Ethernet.

Exemple d'utilisation :

#include "EtherShield.h"

#comprendre

EtherShield es = EtherShield (); - préparation d'une page web

ether.begin (taille d'Ethernet :: buffer, mymac,); - prise en main, arguments - Adresse Mac et le numéro de port auquel la sortie CS est connectée.

Bibliothèque Nrf24l01

Nécessaire pour fonctionner avec le module radio RF24.

Exemple d'utilisation :

#inclure "RF24.h"

RF24 - Le constructeur crée une nouvelle instance de pilote. Avant utilisation, vous devez créer une instance et spécifier les broches auxquelles la puce est connectée (_cepin : contact du module Enable, cspin : contact du module Select).

Début - le début de la puce.

setChannel - canaux pour la communication RF.

setPayloadSize - définition d'une taille de transfert fixe.

getPayloadSize - obtenir une taille fixe.

Bibliothèque TinyGPS

Nécessaire pour lire les messages GPGGA et GPRMC. Aide à lire les données sur la position, la date, l'heure, l'altitude et d'autres paramètres.

Exemple d'utilisation :

#comprendre

GPS TinyGPS; - création d'une instance de TinyGPS.

encode () - fournir des données série à un objet un caractère à la fois.

gps.stats () - méthode statistique. Indique si des données valides ont été reçues ou non.

Bibliothèques dans Arduino IDE

Parmi toute la variété des bibliothèques, on peut distinguer 3 groupes principaux :

  • Les bibliothèques installées à l'origine dans l'IDE Arduino sont intégrées. Ils n'ont pas besoin d'être téléchargés et installés en plus ; ils sont disponibles pour une utilisation dans le programme immédiatement après le démarrage de l'environnement de développement.
  • Supplémentaires - ce sont des bibliothèques que vous devez télécharger et installer vous-même. Habituellement, ce type de bibliothèque est développé par le fabricant de capteurs, capteurs et autres composants pour faciliter le travail avec arduino.
  • Bibliothèques dépendantes - Installé en tant qu'assistant d'une bibliothèque supplémentaire, ne fonctionne pas séparément de celle-ci.

Le plus d'une manière simple travailler avec des bibliothèques dans arduino consiste à utiliser les capacités intégrées de l'IDE Arduino. Nous en parlerons dans un article séparé.

Partagez ceci