28 Mars 2014

Arduino leçon 16 : révisions

Cette page approfondit des points déjà vus et ne correspond pas à des manipulations.
pas FB

Utilisation des signes de ponctuation en langage C

Une ligne de programme peut être :
- soit une commande,
- soit l'annonce d'un groupe de commandes.

une commande ;

C'est un ordre simple donné au processeur.
Une commande se termine toujours par un point-virgule.

groupe de commandes {}

Un groupe de commande est un ensemble de commandes exécutées à la suite.
Le groupe est compris entre 2 accolades { }.
exemples : une fonction, une boucle if, une boucle for, un switch, etc...
remarquez que quand vous mettez l'accolade fermante, Arduino la place automatiquement dans la bonne colonne de votre ligne.

les parenthèses ( )

Elles encadrent les paramètres passés à une fonction.
S'il n'y a pas de paramètre, elles sont vides.
exemple :
- affiche() appelle le sous-programme affiche qui ne demande pas de paramètre.
- Serial.print("Bonjour") appelle la fonction Serial.print en lui passant le paramètre "Bonjour".
Elles encadrent aussi les paramètres d'une structure comme FOR, WHILE, SWITCH...

la virgule ,

Elle sépare les paramètres passés à un sous-programme ou à une fonction.
Ces paramètres sont entre parenthèses.
exemple : pinMode ( 4, OUTPUT );
nous passons ici les 2 paramètres "4" et "OUTPUT" à la fonction pinMode.

Les crochets [ ]

Ils sont utilisés dans les tableaux.
exemples :
char monTableau[20] est une déclaration qui réserve la place en mémoire pour un tableau de 20 caractères.
Serial.print monTableau[8] affiche le 9ème élément du tableau ( les indices commencent à 0 ).

Les guillemets " "

Ils servent à encadrer une chaîne de caractères
exemples :
Serial.print "machin" affichera la chaine de caractères "machin" (sans les guillements).
Serial.print machin affichera le contenu de la variable machin.

Les guillemets simples (apostrophes) ' '

Ils servent à encadre un seul caractère.
exemples :
Serial.print 48 affichera le nombre 48 .
Serial.print "48" affichera la chaîne 48 c'est-à-dire les caractères 4 et 8 comme si c'étaient des lettres.
Serial.print '65' affichera le caractère 'A' dont le code ASCII est 65.
Serial.print 'A' revient au même.
Serial.print A affichera le contenu de la variable A. Si elle n'existe pas, il y aura une erreur à la compilation.

les deux points :

On les utilise dans un switch pour présenter le traitement de chaque cas.
exemples :
switch (maVariable) {
    case 1 :
        // on traite le cas ou ma variable vaut 1
        break;
    case "toto" :
        // on traite le cas où la variable est la chaîne "toto"
        break;
    case 'R' :
        // on traite le cas où la variable est le caractère 'R'.
        break;
}     // fermeture du switch

Remarque : ces 3 cas ne pourraient pas se rencontrer dans le même switch : la variable est une chaine ou un caractère ou un nombre mais pas les 3 à la fois.



Les tensions d'alimentation

Depuis plus d' 1/2 siècle, l'électronique logique fonctionne en 0Volt - 5Volts.
Depuis quelques années , on voit apparaître des composants qui fonctionnent en 0Volt - 3Volts. Ces composants vont être de plus en plus nombreux. Ils consomment moins, donc chauffent moins, donc on peut en intégrer un plus grand nombre sur une même surface.
Nos transceivers sont de cette nouvelle famille et doivent être alimentés sous 3 volts. Par contre, ils acceptent aussi des niveaux de 5 volts sur leurs entrées logiques, ce qui permet de les relier à Arduino.

qualité d'une tension

Certaines cartes Arduino ont une sortie 3.3 V qui permet d'alimenter d'autres composants. Malheureusement le 3.3 V des cartes Mega2560 n'est pas assez stable pour les transceivers. Ça signifie que cette tension oscille autour de 3.3 Volts sans être suffisemment stable pour la transmission radio des transceivers. Pour d'autres composants, elle convient.

tension des cartes Arduino

La plupart des cartes fonctionne en 5 Volts.
Pour la carte Pro Mini, il en existe 2 modèles : l'un en 5 volts, l'autre en 3 volts.
La carte DUE est en 3 volts. Elle remplacera peut-être un jour la Mega, mais elle a un autre microprocesseur pour lequel il existe peu de bibliothèques pour le moment.

Quand une carte Arduino est alimentée par la prise ronde (jack), la tension traverse d'abord un premier régulateur qui produit le 5 volts nécessaire au fonctionnement de la carte. Un second régulateur donne du 3.3 Volts sur certaines cartes. Il existe souvent une pin appelée "raw" directement reliée au jack.





La bibliothèque Mirf

C'est une bibliothèque créée par un programmeur pour utiliser Arduino avec les transceivers. Elle n'est pas livrée avec Arduino.
On doit éviter d'utiliser des interruptions dans un programme qui utilise cette bibliothèque car les deux utilisent des ressources communes.
Rappelez vous qu'on avait rencontré un problème du même genre entre les interruptions et la fonction delay().
Il existe d'autres bibliothèques pour transceivers, mais Mirf est la plus employée.





haut de la page
flèche gauche Page Précédente : 2ème leçon sur le transceiver           Page Suivante : moteur pas-à-pas flèche droite

Valid XHTML 1.0 Transitional