apprendre arduino

Les fonctions en langage ARDUINO, tout ce que vous devez savoir !

La bonne maitrise du langage ARDUINO vous permet de manipuler à toute douceur votre Carte ARDUINO. Il vous permet de créer vos programmes pour vos montages électroniques. Je vous détail ce que c’est les fonctions en langage ARDUINO et à la fin, vous mettre les 9 fonctions essentielles pour commencer son montage avec la carte ARDUINO. Tout comme celui qui doit apprendre à jouer au Football pour se retrouver au terrain de jeu, vous devez aussi apprendre le langage ARDUINO pour bien manier votre carte ARDUINO comme un pro !

A quoi servent les fonctions en langage ARDUINO ?

Quand vous commencerez à écrire des gros programmes en ARDUINO qui vous demanderont des centaines des lignes ( oui, même plus ) , vous serez appelé à séparer les codes pour votre programme. Et cela permettra de simplifier votre travailler.

Imaginez que vous-voulez réaliser un programme pour faire fonctionner une voiture. Il vous faudra écrire une partie de votre programme pour démarrer la voiture par exemple, l’arrêter, ou même accélérer la vitesse ,… Pour bien rendre claire votre programme, vous serez appelle à créer des fonctions pour rendre clair votre programme. Vous connaissez donc ce que c’est une fonction, c’est juste une fraction de votre programme qui réalise un rôle bien précis pour  l’ensemble de votre programme.

Comment déclarer , appeler et  utiliser une fonction en ARDUINO

Pourquoi nous allons créer des fonctions ? Cette question est intelligente car l’équipe de développement de la carte ARDUINO a déjà mis en place des fonctions prêtes à l’utilisation ( ce sont des fonctions internes à l’ARDUINO)

Mais je pari qu’il y auras de fois, ou vous aimerez crée vos fonctions vous-même (étant un développeur ou programmeur ARDUINO).

Une  fonction pour certains est un conteneur, ce qui n’est pas pour les variables. Elle permettra donc d’inclure à leur sein des instructions bien plus que complexes.

Voici par exemple ; les deux fonctions de démarrage de l’ARDUINO

 void setup () {  
/*C’est la fonction où on initialise les variables 
ou certaines déclarations
*/
}

void loop() {
/* cette fonction exécute les instructions en boucle, c’est-à-dire indéfiniment, 
c’est le cœur de notre programme ARDUINO
*/
}

C’est-à-dire que lorsqu’on programme une carte ARDUINO, on écrit dans des fonctions. Vous connaissez donc déjà 2 fonctions (ce sont des fonctions qui seront présentes dans presque tous les programmes que vous écrirez, car elles sont obligatoires pour tour programme ARDUINO, on les appelles fonctions d’entrées). Vous ne pouvez donc pas commencez à écrire vos instructions directement , sans les mettre dans des fonctions, c’est la structure d’un programme ARDUINO.

Comment créer une fonction en langage ARDUINO ?

C’est très simples. Comme pour les variables, sauf qu’ici, il y a aussi les paramètres.  

Le type, le nom et les paramètres d’une fonction en langage ARDUINO

  • Un type : N’oubliez jamais ça. Le type d’une fonction, c’est ce qu’il renvoie en retour. Si par exemple ma fonction servira à calculer le carré d’un nombre, elle aura pour type (long par exemple ou même int).
A lire également :  L’Electronique : une science, un art ou une passion ?

Si une fonction ne renvoie RIEN, son type est void (néant en anglais). Ce sont des fonctions qui contiennent juste des instructions et qui permettent de séparer notre code à plusieurs pour une bonne lisibilité.

  • Un nom pour notre fonction : que vous allez nommer cela la fonction que fera la fonction. Par exemple, pour le cas du programme de ma voiture, je peux juste appeler ma fonction pour démarrer la voiture par demarrer  (le nom d’une fonction ne doit pas avoir des accents, ou même tout ce qui est trop français : pas d’espace , pas de cédilles,…)

  • Les paramètres : ce sont des entrées pour notre fonction. Imaginez que votre fonction servira à calculer la puissance nième d’un nombre (Si vous êtes allergique aux maths, je m’en excuses mais nous en avons besoin, J si on programmeur  ambitieux !). Dans ce cas, il vous faudra 2 nombres (le premier x comme base par exemple, et le second y comme puissance). Là, on pourra maintenant calculer x exposant y plus facilement. Ce sont donc là les paramètres.  Les paramètres permettent de nourrir nos fonctions.

Les paramètres pour une fonction ARDUINO peut être de tous type ( String , int , double, long, bool,…) pour des fonctions différente.

Comment appeler une fonction en ARDUINO ?

Une fonction que vous avez crée, vous devez maintenant l’utiliser partout dans votre programme ( aussi appellé croquis en ARDUINO). Pour appeler une fonction, c’est très simple : on écrit juste le nom de la fonction avec deux parenthèses à l’endroit où on souhaite exécute la fonction.

void quoit( double x, double y) {
double x = 0 ;
double y = 0 ;
double quot = x/y ;
}

// plus loin dans le programme, on peut appeler et utiliser cette fonction comme suit :

double z = quot( 10, 5) ;  // on  stocke le quoitient de 10 sur 5 dans la nouvelle variable z



Exemple de déclarations des fonctions en langage ARDUINO

 int calculSomme(int nombre_1, int nombre_2 ) {
int somme = nombre_1 + nombre_2 ;
return somme ; 
}

Le mot clé return pour une fonction ARDUINO

Le mot clé return qui permet d’indiquer le retour qu’enverra chaque fois notre fonction après traitement. Si notre fonction n’exécute aucun calcul, ce mot clé est vide ou n’est même pas utiliser.

Notre fonction exemple :

double calcul_produit(double premier_nombre , double second_nombre) {
double produit = premier_nombre * second_nombre ;
return produit ; 

}

Vous comprenez qu’une fonction porte un nom et deux parenthèses dans lesquelles on écrit ses paramètres. C’est la puissance des fonctions en langage ARDUINO. Sans oublier qu’il existe aussi des fonctions sans paramètres, qui traitement les instructions directement qu’il contient. Par exemple :

void demarrer() {
digitalWrite(4, LOW) ;
lcd.print(Demarrage) ;
}

Retenez que les fonctions font appel à d’autres fonctions , c’est une technique très essentielle en programmation car elle permet de simplifier le travail d’un développeur. Imaginez que vous voulez afficher un message sur un écran LCD, sans pour autant se gêner et se fatiguer la tête on appelle des fonctions déjà conçue avec l’écran LCD et qui nous permettront à moins de 5 lignes de voir déjà certains résultats sur notre écran LCD. C’est principe en programmation, est appelé API , Application programmable Interface.

A lire également :  Transistor bipolaire et transistor unipolaire, quelles sont les différences ?

C’est-à-dire qu’un premier développeur faire la conception détaillé de sa fonction et un deuxième viendras juste faire un appel de la fonction et aura toutes fonctions et possibilités déjà conçues. 

A part les fonctions que l’on peut créer soi-même ; il existe un lot de fonctions internes ou déjà crée et qui servent d’utiliser plus facilement les interfaces avec la carte ARDUINO. Ces sont sont à retrouver sur le site officiel arduino.cc

Je vous énumère néanmoins, 9 fonctions ARDUINO à connaitre si on débute avec cette carte :

1. La fonction pinMode() pour indiquer le type d’une broche ( entrée ou sortie)

Cette fonction Configure la broche spécifiée pour se comporter comme une entrée ou une sortie. Voir la page Broches numériques pour plus de détails sur la fonctionnalité des broches. Depuis Arduino 1.0.1, il est possible d’activer les résistances de pullup internes avec le mode INPUT_PULLUP.

voici un exemple de déclartion :

void setup(){
int borneSor= 12;
int borneEn = 10;
pinMode(12, OUTPUT); // On indique via la fonction que bornSor est une sortie
pinMode(10, INPUT); //  On indique via la fonction que bornEn est une entrée
}

2. La fonction delay() pour interrompre l’exécution d’un programme ARDUINO

Cette fonction Interrompt le programme pendant la durée (en millisecondes) spécifiée comme paramètre. (Il y a 1000 millisecondes en une seconde.)

void setup(){
int borneSor= 12;
int borneEn = 10;
pinMode(12, OUTPUT); // On indique via la fonction que bornSor est une sortie
pinMode(10, INPUT); //  On indique via la fonction que bornEn est une entrée
}
void loop(){
digitalWrite(bornSor, HIGH);
delay(2000
}

3. La fonction digitalWrite () : pour indiquer l’état de sortie d’une broche digitale

Écrivez une HIGHou une LOWvaleur sur une broche numérique.

Si la broche a été configurée en tant que OUTPUTavec pinMode(), sa tension sera réglée sur la valeur correspondante: 5V (ou 3,3V sur les cartes 3,3V) pour HIGH, 0V (masse) pour LOW.

Si la broche est configurée en tant que INPUTdigitalWrite()active ( HIGH) ou désactive ( LOW) le pullup interne sur la broche d’entrée. Il est recommandé de régler le pinMode()pour INPUT_PULLUPactiver la résistance de rappel interne. Voir le didacticiel Digital Pins pour plus d’informations.

Si vous ne définissez pas pinMode()à OUTPUTet connecter une LED à une broche, lors de l’ appel digitalWrite(HIGH), la LED peut sembler faible. Sans réglage explicite pinMode()digitalWrite()aura activé la résistance de rappel interne, qui agit comme une grande résistance de limitation de courant.

Syntaxe :
digitalWrite(pin, value)

pin: le numéro de broche Arduino.
value: HIGHou LOW.

Les broches d’entrée analogique peuvent être utilisées comme broches numériques, appelées A0, A1, etc. L’exception est les broches Arduino Nano, Pro Mini et A6 et A7 de Mini, qui ne peuvent être utilisées que comme entrées analogiques.

4. La fonction tone() pour générer un signal carré

Génère une onde carrée de la fréquence spécifiée (et un rapport cyclique de 50%) sur une broche. Une durée peut être spécifiée, sinon l’onde continue jusqu’à un appel à noTone () . La broche peut être connectée à un buzzer piézo ou à un autre haut-parleur pour jouer des sons.

A lire également :  [Pratique] 4 montages électroniques amplificateurs AUDIO à réaliser

Une seule tonalité peut être générée à la fois. Si une tonalité est déjà jouée sur une autre broche, l’appel à tone()n’aura aucun effet. Si la tonalité est jouée sur la même broche, l’appel définira sa fréquence.

// syntaxe : 
tone(pin, frequency)
tone(pin, frequency, duration)

pin: la broche Arduino sur laquelle générer la tonalité.
frequency: la fréquence de la tonalité en hertz. Autorisé types de données: unsigned int.
duration: la durée de la tonalité en millisecondes (facultatif). Autorisé types de données: unsigned long.

Si vous souhaitez jouer différents emplacements sur plusieurs broches, vous devez appeler noTone()sur une broche avant d’appeler tone()sur la broche suivante.

5. la fonction nonTone() limite la fonction tone()

Cette fonction arrête la génération d’une onde carrée déclenchée par tone(). N’a aucun effet si aucune tonalité n’est générée. Elle depend donc de la fonction mère tone().

6. La fonction millis()

La fonction millis() renvoie le nombre de millisecondes écoulées depuis que la carte Arduino a commencé à exécuter le programme actuel. Ce nombre va déborder (revenir à zéro), après environ 50 jours. Le retout est un nombre de millisecondes écoulées depuis le démarrage du programme. Type de données: unsigned long.

 long time;

void setup() {
  Serial.begin(9600);
}
void loop() {
  Serial.print("Time: ");
  time = millis();

  Serial.println(time); 
  delay(1000);          
}

7. La fonction micros ()

Tout comme millis, mais cette fois la fonction micros() renvoie le nombre de microsecondes depuis que la carte Arduino a commencé à exécuter le programme actuel. Ce nombre va déborder (revenir à zéro), après environ 70 minutes. Sur les cartes Arduino 16 MHz (par exemple Duemilanove et Nano), cette fonction a une résolution de quatre microsecondes (c’est-à-dire que la valeur renvoyée est toujours un multiple de quatre). Sur les cartes Arduino 8 MHz (par exemple le LilyPad), cette fonction a une résolution de huit microsecondes.

8. La fonction Shiftin()

La fonction Shiftin() décale un octet de données un bit à la fois. Commence par le bit le plus significatif (c’est-à-dire le plus à gauche) ou le moins (le plus à droite). Pour chaque bit, la broche d’horloge est tirée haut, le bit suivant est lu à partir de la ligne de données, puis la broche d’horloge est prise basse.

Si vous vous connectez à un appareil cadencé par des fronts montants, vous devez vous assurer que la broche d’horloge est basse avant le premier appel à shiftIn(), par exemple avec un appel à digitalWrite(clockPin, LOW).

9. La fonction analogRead() pour lire sur les entrées analogiques

la fonction analogRead() permet de lire des valeurs sur les entrées analogiques. Une entrée analogique est un convertisseur analogique numerique. C’est à dire vous allez manipulez en numerique dans vos programmes ARDUINO.

Comment convertir une valeur analogique à numerique

C’est très simple. Il vous faut passer par la formule ValeurNumerique = ValeurAnalogique x 1023/ 5 et une ValeurAnalogique = ValeurNumerique x 5 / 1023

Exemple de conversion analogique numerique

Valeur tension sur entrée analogiquevaleur numerisée Valeur sur analogique
0V0V
5mV15mv
1,663411,66
2,45412,4
Tableau de conversion analogique – numérique

En conclusion

Vous connaissez maintenant les fonctions , structurer donc vos croquis ARDUINO, et rendez vos codes sources maintenables à long terme.

About the author

Curieux aux nouvelles technologies, développeur python vivant à Kinshasa, Congo - RD.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

94 Partages
Partagez94
Tweetez
Partagez
Enregistrer