Pour éditer le wiki, il faut demander un compte à un Lapin !
Difference between revisions of "Introduction au CPP pour Arduino"
(New page: == Structures de base == == Fonctionnalités de base == [http://arduino.cc/en/Reference/pinMode pinMode(int PIN, int value);] * PIN : numéro de pin à modifier (0 à 13) * value: INPUT...) |
(→Structures de base) |
||
Line 1: | Line 1: | ||
+ | Voici un ensemble succinct d'explications sur le langage C++ appliqué à l'Arduino. J'étofferai cette page au fur et à mesure des ateliers. | ||
+ | |||
== Structures de base == | == Structures de base == | ||
+ | |||
+ | un programme arduino ressemble à ça: | ||
+ | |||
+ | void setup() { | ||
+ | // ici on prépare le programme (donc tout ce qui doit être exécuté une seule fois) | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // ici on effectue les traitements (donc on lit ce qui se passe, et on réagit aux évènements) | ||
+ | } | ||
+ | |||
+ | === commentaire === | ||
+ | |||
+ | les commentaires servent à mieux comprendre ce que fait un programme : | ||
+ | |||
+ | // ceci est un commentaire | ||
+ | /* ceci est un autre | ||
+ | commentaire, mais sur plusieurs lignes */ | ||
+ | |||
+ | === variables === | ||
+ | |||
+ | une variable sert à stocker une valeur pour la réutiliser plus tard : | ||
+ | |||
+ | /* ... */ | ||
+ | int value; | ||
+ | value = analogRead(0); | ||
+ | Serial.println(value); | ||
+ | /* ... */ | ||
+ | |||
+ | ici on récupère une valeur sur la PIN analogique 0, et on l'écrit sur le port série (cf ci-dessous pour les fonctions) | ||
+ | |||
+ | === types === | ||
+ | |||
+ | les types correspondent aux nombres de cases mémoires utilisés pour stocker une valeur. Il y a plusieurs types défini par le langage : | ||
+ | |||
+ | char, int, float, double | ||
+ | |||
+ | * char prend une case mémoire | ||
+ | * int prend deux cases mémoire | ||
+ | * float prend une case mémoire | ||
+ | * double prend deux cases mémoire | ||
+ | |||
+ | le type a un deuxième rôle, c'est de décrire ce qu'on met dans la case mémoire. Une variable de type « char », lorsqu'elle sera utilisée par la fonction Serial.print(), apparaîtra comme un caractère ASCII. float et double dans les calculs seront interprétés comme des chiffres à virgule (on dit à virgule flottante). | ||
+ | |||
+ | === fonctions === | ||
+ | |||
+ | les fonctions servent à regrouper une suite d'instructions sous un seul nom, pour toutes les exécuter en les appelant qu'une seule fois. Cela peut servir soit à éclaircir et rendre le programme plus lisible, soit pour effectuer plusieurs fois la même suite d'actions à différents endroits/moments. | ||
+ | |||
+ | Une fonction prend des valeurs en paramètre et retourne une valeur en sortie, cela se note : | ||
+ | |||
+ | int maFonction(int valeur1, int valeur2); | ||
+ | |||
+ | ==== utiliser des fonctions ==== | ||
+ | |||
+ | la fonction « maFonction » peut s'utiliser comme suit : | ||
+ | |||
+ | Serial.println(maFonction(analogRead(0), analogRead(1))); | ||
+ | |||
+ | ==== déclarer une fonction ==== | ||
+ | |||
+ | int add(int i, int j) { | ||
+ | return i+j; | ||
+ | } | ||
+ | |||
+ | cette fonction prend deux paramètre, i et j, et retourne la somme des deux paramètres. | ||
== Fonctionnalités de base == | == Fonctionnalités de base == |
Revision as of 20:37, 18 February 2011
Voici un ensemble succinct d'explications sur le langage C++ appliqué à l'Arduino. J'étofferai cette page au fur et à mesure des ateliers.
Contents
Structures de base
un programme arduino ressemble à ça:
void setup() { // ici on prépare le programme (donc tout ce qui doit être exécuté une seule fois) }
void loop() { // ici on effectue les traitements (donc on lit ce qui se passe, et on réagit aux évènements) }
commentaire
les commentaires servent à mieux comprendre ce que fait un programme :
// ceci est un commentaire /* ceci est un autre commentaire, mais sur plusieurs lignes */
variables
une variable sert à stocker une valeur pour la réutiliser plus tard :
/* ... */ int value; value = analogRead(0); Serial.println(value); /* ... */
ici on récupère une valeur sur la PIN analogique 0, et on l'écrit sur le port série (cf ci-dessous pour les fonctions)
types
les types correspondent aux nombres de cases mémoires utilisés pour stocker une valeur. Il y a plusieurs types défini par le langage :
char, int, float, double
- char prend une case mémoire
- int prend deux cases mémoire
- float prend une case mémoire
- double prend deux cases mémoire
le type a un deuxième rôle, c'est de décrire ce qu'on met dans la case mémoire. Une variable de type « char », lorsqu'elle sera utilisée par la fonction Serial.print(), apparaîtra comme un caractère ASCII. float et double dans les calculs seront interprétés comme des chiffres à virgule (on dit à virgule flottante).
fonctions
les fonctions servent à regrouper une suite d'instructions sous un seul nom, pour toutes les exécuter en les appelant qu'une seule fois. Cela peut servir soit à éclaircir et rendre le programme plus lisible, soit pour effectuer plusieurs fois la même suite d'actions à différents endroits/moments.
Une fonction prend des valeurs en paramètre et retourne une valeur en sortie, cela se note :
int maFonction(int valeur1, int valeur2);
utiliser des fonctions
la fonction « maFonction » peut s'utiliser comme suit :
Serial.println(maFonction(analogRead(0), analogRead(1)));
déclarer une fonction
int add(int i, int j) { return i+j; }
cette fonction prend deux paramètre, i et j, et retourne la somme des deux paramètres.
Fonctionnalités de base
pinMode(int PIN, int value);
- PIN : numéro de pin à modifier (0 à 13)
- value: INPUT ou OUTPUT
passe la pin « digital » de l'arduino « PIN » dans un mode de lecture ou d'écriture.
digitalWrite(int PIN, int value);
- PIN : numéro de pin à modifier (0 à 13)
- value: LOW ou HIGH
si la PIN est en mode OUTPUT, écrit dessus une valeur « 1 » ou « 0 ».
int digitalRead(int PIN);
- PIN : numéro de pin à lire (0 à 13)
si la PIN est en mode INPUT, retourne la valeur lue sur la PIN.
int analogRead(int PIN);
- PIN : numéro de la pin à lire (0 à 5)
retourne une valeur de 0 à 1023 lue sur la PIN, correspondant à une valeur comprise entre 0 et 5 volts. Chaque pas correspond donc à 0.0049V (4.9mV).
Serial.begin(9600);
démarre la connexion série via le port USB
Serial.println(val);
écrit ce qui est contenu dans « val » sur le terminal série sur l'ordinateur. par exemple :
Serial.println(analogRead(2));
Serial.print(val)
identique à Serial.println, mais écrit val sur la même ligne (pas de retour chariot).