Accueil > Arduino > Quelques repères

Articles de cette rubrique

    15 février 2014

  • Les principales commandes pour gérer les entrées et les sorties Arduino

    Les pattes de type ANALOG

    Sur un circuit Arduino (UNO), il y a 6 pattes analogiques : A0 à A5. Celles-ci servent principalement à lire des signaux électriques en entrées.

    Quand le signal électrique peut varier entre 0 et 5V, la valeur lue variera entre 0 et 1023.

    La commande pour lire la valeur du pin A0 est :

    Les pattes de type DIGITAL

    Sur un circuit Arduino (UNO), il y a 14 pattes numériques : 0 à 13.

    Les pattes 0 et 1 peuvent servir pour la communication série. Mieux vaut ne pas les utiliser pour une utilisation classique.

    On peut choisir de mettre chacune de ces pattes en entrée ou en sortie.

    Ceci permettra ensuite soit de lire, soit de fixer le niveau d’une patte.

    Des pattes DIGITAL particulières : les PWM

    Avec les pattes décrites précédemment, on peut
    - lire un signal analogique codé de 0 à 1023 ;
    - lire ou fixer un signal numérique, codé 0 ou 1.

    Mais on ne peut pas fixer un signal analogique.

    Pour cela, on peut simuler des sorties analogiques sur certaines pattes DIGITAL : les PWM. Il y en a six : 3, 5, 6, 9, 10 et 11.

    Le niveau de sortie est codé de 0 à 255.


  • 30 décembre 2013

  • Manipulation des chaînes de caractères

    Le type String

    On peut manipuler des chaînes de caractères sous la forme de tableau de caractères ou sous la forme d’un objet de type String.

    L’avantage de la classe String est qu’elle vient avec des tas de méthodes qui facilitent la manipulation des chaînes.

    Les méthodes

    - String() : constructeur.

    - charAt(pos) : renvoie le caractère à la position "pos".

    - compareTo(string2) : en utilisant le code ASCII, teste si la chaîne vient avant string2.

    - concat(strResult,string2) : concatène la chaîne et string2 dans strResult.

    - endsWith(string2) : teste si la chaîne se termine par "string2".

    - equals(string2) : compare les deux chaînes

    - equalsIgnoreCase(string2) : compare les deux chaînes sans tenir compte de la casse.

    - getBytes(bufbyte,len) : copie la chaîne dans le tableau bufbyte[len]

    - indexOf(string1,from) : renvoie la première position de la chaîne string1 depuis le début ou depuis from.

    - lastIndexOf(string1,from) : renvoie la dernière position trouvée de string1 depuis la fin ou depuis from.

    - length() : renvoie la longueur de la chaîne (int).

    - replace(substring1,substring2) : remplace toutes les occurences de "substring1" par "substring2".
    - reserve(size) : réserve de la mémoire pour les manipulations de chaînes.

    - setCharAt(pos, car) : remplace le caractère de la position "pos" par "car".

    - startsWith(string2) : teste si la chaîne commence par "string2".

    - substring(from,to) : renvoie la chaîne allant de la position "from" à la position "to" (optionnel).

    - toCharArray(buf, len) : copie la chaîne dans le tableau buf[len].

    - toInt() : renvoie si possible l’entier (long) correspondant à la chaîne.

    - toLowerCase() : modifie la chaîne pour le mettre en minuscules.

    - toUpperCase() : modifie la chaîne pour le mettre en majuscules.

    - trim() : modifie la chaîne en enlevant les espaces.


  • 9 novembre 2013

  • Utilisation d’une télécommande

    Principe de fonctionnement

    On branche le récepteur infrarouge sur Arduino et on se sert de la librairie IRRemote pour la détection des signaux hexadécimaux.

    Chaque type de télécommande fournira des valeurs différentes.

    Pour les connaître, il suffit d’afficher la valeur détectée !

    Par la suite, dans cet article, on détaillera l’utilisation d’une télécommande PANASONIC.

    PNG - 223.4 ko
    kit IR

    Tableau des valeurs pour une télécommande PANASONIC

    Touche Valeur
    0 0xE12430CF
    1 0xE12440BF
    2 0xE12428D7
    3 0xE1246897
    4 0xE124B847
    5 0xE124F00F
    6 0xE1249867
    7 0xE1247887
    8 0xE124B04F
    9 0xE124F807
    Volume UP 0xE12458A7
    Volume DOWN 0xE124A05F
    # 0xE124E817
    BAND 0xE124D827
    DISP 0xE124C837
    MUTE 0xE124609F
    Source 0xE12448B7
    SEL 0xE12418E7

    Montage

    C’est très simple, le récepteur IR ne possédant que 3 branchements :
    - GND : la masse ;
    - 5V : l’alimentation ;
    - Out : le signal à brancher sur une broche Arduino.

    Exemple de code Arduino

    Ce code utilise la librairie IRRemote qui devra être téléchargée et installée dans le dossier "libraries" su dossier "sketchbook".

    Ce code montre une utilisation basique de la télécommande. Dans la boucle loop(), on lit les touches appuyées et on exécute la commande associée. Celles-ci sont juste illustrative dans l’exemple :
    - allumer une diode ;
    - afficher la touche utilisée.

    Sources

    - Github
    - http://itechnofrance.wordpress.com
    - Robocore.net


  • 28 septembre 2013

  • Utilisation d’un écran LCD

    Branchement

    Les pattes de l’écran sont numérotées de 1 à 16 lorsque l’écran est placé devant soi, les pattes en haut à gauche.

    Numéro de la patte Signification Branchement
    n° 1 GND GND
    n° 2 +5V +5V
    n° 3 Constraste potentiomètre ou résistance 1k
    n° 4 Sélecteur de registre (RS) Digital 12
    n° 5
    n° 6 Activation Digital 11
    n° 7 Données DB0
    n° 8 Données DB1
    n° 9 Données DB2
    n° 10 Données DB3
    n° 11 Données DB4 Digital 5
    n° 12 Données DB5 Digital 4
    n° 13 Données DB6 Digital 3
    n° 14 Données DB7 Digital 2
    n° 15 Éclairage Résistance 1k relié au +5v
    n° 16 GND (pour éclairage) GND

    Initialisation

    Dans l’entête :

    #include <LiquidCrystal.h>

    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

    Dans la fonction setup() :

    Message fixe

    Message déroulant

    On peut faire défiler le message d’un côté ou de l’autre vers les fonctions
    lcd.scrollDisplayLeft() ou lcd.scrollDisplayRight().

    Rappels des commandes

    Commandes Siginification
    LiquidCrystal(rs, enable, d4, d5, d6, d7) ; initialisation 4 bits
    lcd.begin(cols, rows) ; initialisation du nombre colonne par ligne
    lcd.clear() ; efface l’écran et met le curseur en haut à gauche
    lcd.home() ; repositionne le curseur en haut et à gauche SANS effacer écran
    lcd.setCursor(col, row) ; positionne le curseur à l’endroit voulu (colonne, ligne) (1ère=0 !)
    lcd.print("texte") ; affiche la chaîne texte
    lcd.cursor() ; affiche la ligne de base du curseur
    lcd.noCursor() ; cache le curseur
    lcd.blink() ; fait clignoter le curseur
    lcd.noBlink() ; stoppe le clignotement du curseur
    lcd.noDisplay() ; éteint le LCD sans modifier l’affichage
    lcd.display() ; rallume le LCD sans modifier l’affichage
    lcd.scrollDisplayLeft() ; décale l’affichage d’une colonne vers la gauche
    lcd.scrollDisplayRight() ; décale l’affichage d’une colonne vers la droite
    lcd.autoscroll() ; les nouveaux caractères poussent les caractères déjà affichés
    lcd.noAutoscroll() ; stoppe le mode autoscroll

  • 26 septembre 2013

  • La communication via le port série d’Arduino

    Initialisation du port série

    Dans la fonction setup(), on rajoute :

    Écriture sur le moniteur série depuis Arduino

    On utilise ou choisit les commande Serial.print ou Serial.println, cette dernière commande rajoutant un saut de ligne.

    Lecture depuis Arduino

    La lecture étant plus compliquée, j’ai créé la bibliothèque SerialDLF qui va je l’espére simplifier la tâche.

    On crée dans la phase d’initialisation une instance de la classe StringSerial :

    La boucle principale ressemble à ceci :

    On trouvera des exemples complets d’utilisation dans cette rubrique.


0 | 5

SPIP | | Plan du site | Suivre la vie du site RSS 2.0