Passionnement
Bonjour et bienvenu,

Bonjour et bienvenu sur le forum. Ici tu verra, la bonne humeur et l'entraide sont de mise.
Pas de reproche ni de prise de tête. Respect et Amitié sont de rigueur.
Pour la convivialité, nous te demandons de prendre 5mn pour te présenter a tout le monde et de renseigner ton profil le plus précisément possible.

Pour cela, ==> clique ici <== et tu créer un nouveaux sujet (une petite explication est en haut de la page).

Si tu ne fait pas de présentation, ton compte sera supprimé automatiquement après 48H.

Sans présentation, tu n'aura pas accès a la totalité du forum (qui comporte plus de 30.000 messages). Quand tu aura fait ta présentation, un modérateur ou administrateur te donnera les droits pour le forum dans sa totalité dans les 24 h.

Le Staff
Connexion

Récupérer mon mot de passe

Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031

Calendrier Calendrier

Rechercher
 
 

Résultats par :
 

 


Rechercher Recherche avancée

Derniers sujets
» Module Hobbyzone de chez Makétis
Lun 4 Déc 2017 - 21:33 par dany-om

» Mini World Lyon Un projet fou ..................
Sam 2 Déc 2017 - 21:18 par dany-om

» Le blog de Vince Belgium
Mer 29 Nov 2017 - 23:11 par Vince Belgium

» Le train des alpes de Altaya sujet de discussion.
Dim 26 Nov 2017 - 8:21 par dany-om

» Annonce Märklin SNCF
Sam 25 Nov 2017 - 11:56 par dany-om

» Ballast, décor et réalisme facile selon Vince
Sam 25 Nov 2017 - 11:40 par dany-om

» Wagon à louer??????
Sam 25 Nov 2017 - 9:04 par likiki

» Ballast, décor et réalisme facile selon Vince
Ven 24 Nov 2017 - 19:38 par Vince Belgium

» Les blagues de LIKIKI (et des autres). M D R
Jeu 23 Nov 2017 - 20:56 par Cousin Hub

» CS3 ... Découverte et utilisation
Jeu 23 Nov 2017 - 18:36 par Fred Glmt

» L'informatisation d'un réseau.
Jeu 23 Nov 2017 - 9:03 par Vince Belgium

» Le train des alpes de Altaya par Aiguillage
Jeu 23 Nov 2017 - 5:23 par likiki

» T E R " Toul Expo Rail" 2018
Ven 17 Nov 2017 - 17:15 par lherve54

» Littérature ferroviaire hors revues
Dim 5 Nov 2017 - 21:38 par dany-om

» VOL d'objets du Musée du train de Nimes
Mer 1 Nov 2017 - 9:11 par lherve54

» Changement d'adresse sur décodeur Marklin
Sam 14 Oct 2017 - 18:08 par dany-om

» La SNCF, une sacré entreprise.
Jeu 12 Oct 2017 - 1:05 par Cousin Hub

» La photo Mystère ........
Mar 3 Oct 2017 - 21:09 par dany-om

» Information Märklin 7286
Dim 1 Oct 2017 - 10:13 par likiki

» Clés pour le train miniature.
Dim 1 Oct 2017 - 9:20 par dany-om


Cour N°6

Voir le sujet précédent Voir le sujet suivant Aller en bas

Cour N°6

Message par likiki le Sam 11 Avr 2015 - 17:32


© 2014-2015 passionement.formactif.org
Arduino Page N°6


Nous allons commencer par une petite présentation des cartes Arduino


La UNO :




La MEGA 2560 :



L'alimentation de la carte se fait principalement par le port USB. Le connecteur d'alimentation en bas a gauche des deux cartes, sert lorsque l'on veut faire fonctionner la carte de façon autonome. Nous ne l'utiliserons pas tout de suite, car, en cas de mauvais branchement ,ont peut dégrader la carte de façon permanente.


Nous allons brancher les éléments extérieur a la carte sur les bornes d'Entrées/Sorties en utilisant des fils et une plaque d'essais comme sur la photo ci-dessous (par exemple pour brancher un bouton poussoir).





Nous avons (sur les deux cartes) : 


En haut, des broches E/S NUMERIQUE numérotés de 0 a 13. Les broches 0 & 1 sont les broches RX / TX (reception / transmission des données en parallèle avec le port USB) ont évitera donc de les utiliser. La N° 13 a une particularité, c'est d'avoir une LED sur la carte (avantage que nous utiliserons au tout début).


En bas a gauche une prise pour l'alimentation externe, un groupe de broches permettant de récupérer une alimentation 3,3v ou 5v et la masse (GND) et des broches qui sont des Entrées ANALOGIQUE numérotées de 0 à 5


Sur la MEGA, a droite une double rangé de broches d'E/S NUMERIQUE numéroté de 15 à 54.


D'autre explications et illustrations viendrons au fur et a mesure de l'avancement des cours.




Programmation Arduino sujet n°1


La Structure d'un programme sur Arduino.




Un Programme est composé de trois (3) parties.


1) La définition des Constantes (exécuté une fois seulement a la mise sous tension de la carte)
2) Le Setup, définition des entrés / sorties (exécuté une fois seulement aussi)
3) Le programme principal qui lui est lue en boucle par le microcontroleur sans jamais s'arrêter.




Nous allons donc commencer par quelque chose de très simple. Cela vas vous sembler très très idiot et inutile, mais vous aller apprendre plein de chose.


Nous allons faire CLIGNOTER une LED.


C'est bête n'est-ce pas ?


Et pourtant …......


Revenons a notre structure.


Il y as des « conventions » dans l’écriture d'un programme.


Il y a ce que le microcontroleur exécute et ce qu'il ignore.


Le microcontroleur lis les lignes les unes après les autres de haut en bas et de gauche a droite. Si, pour une raison « x » ou « y » il rencontre une instruction inconnue, il plante. Vous savez, le fameux « BUG ».


Le 1er « truc » a connaître c'est le double slash ( // ) ou la double barre oblique. Tout ce qui se trouvera APRES le « // », le microcontroleur l'ignorera comme sa 1ère chaussette (si tenté qu'il en a eu une un jour de chaussette).


En clair :


1 le microcontroleur lis et exécute tout cela // mais pas ceci.


Le 2ème « truc » est que les lignes sont toutes numérotée de 1 a 65000 environs (je vous rassure, nous n'écrirons jamais un programme aussi long).


Le 3ème « truc » est que TOUTE instruction se termine TOUJOURS par un « ; »


Le 4ème « truc » est que TOUTE accolade ouverte « {« doit TOUJOURS avoir son accolade fermé « } »


Voilà, vous êtes paré pour la programmation. Nous allons donc revenir a notre LED qui doit clignoter.


Nous allons donc avoir une LED sur une des broche de la carte. Il nous faut donc choisir une broche. Je vous propose d'utiliser la broche N°13 (disons pour le moment que c'est un pur hasard).


Nous allons donc écrire notre 1ère ligne qui sera :


const int led_clignotante = 13 ;


Ce qui pourrait ce traduite par : « nous intégrons (assignons) le nom 'led_clignotante' a la borne n°13 »


Vous avez certainement remarqué (grâce a votre perspicacité) que je n'ai pas donné de n° a la ligne. Ceci, se fait automatiquement et nous n'avons pas a nous en occuper.


Voilà pour le point N°1.




Bien, vous êtes toujours là, alors on passe au point n°2, l'initialisation de la carte.


Cela se structure TOUJOURS par :


void setup()
{
ce_que_je_veut_y_mettre ;
}


Pour notre programme cela donnera


void setup()
{
pinMode(led_clignotante, OUTPUT) ;
}


Ce qui pourrais ce traduire par : Fonctionnement de la broche n° (pinMode) 13 (led_clignotante) en sortit (OUTPUT).
Nous venons donc de définir que la broche n°13 sera utilisée uniquement en 'Sortie'


Notre programme devient donc :


1 // Notre 1er programme sur Arduino
2 // ***************************
3 // ****** LED clignotante *******
4 // ***************************
5 //
6 const int led_clignotante = 13 ; // attribution de la broche 13 a led_clignotante
7 //
8 void setup()
9 {
10 pinMode(led_clignotante, OUTPUT) ; // La broche led_clignotante sera utilisée en sortie
11 }




Voilà, vous avez déjà un programme de 11 lignes


Prêt pour le point N°3 ?


Alors c'est partit.


Cette partie là se structure TOUJOURS de cette façon là :


void loop()
{
ici_le_programme_principal ;
}


Le programme ressemblera donc a :


1 // Notre 1er programme sur Arduino
2 // ***************************
3 // ****** LED clignotante *******
4 // ***************************
5 //
6 const int led_clignotante = 13 ; // attribution de la broche 13 a led_clignotante
7 //
8 void setup()
9 {
10 pinMode(led_clignotante, OUTPUT) ; // La broche led_clignotante sera utilisée en sortie
11 }
12 void loop() // cette zone est exécutée en boucle jusqu'à coupure de l'alimentation de la carte
13 {
14 ici_le_programme_principal ;
xxx }


De quoi avons nous besoin ?


A) allumer la LED
B) attendre un temps x
C) éteindre la LED
D) attendre un temps y
E) retour en A


Nous avons besoin de 3 instructions qui sont :


Allumer, attendre et éteindre.


La broche 13 fait partit des broche dite « Digital » et ne peut avoir que 2 état. 1 ou 0. Marche ou Arrêt mais encore état « Haut » ou état « Bas »


Pour changer « l'état » d'une broche, il suffit « d'écrire » dessus. Ont utilise donc la fonction « digitalWrite ». Ce qui nous donnerait :


digitalWrite(led_clignotante, HIGH) ;


Que l'on pourrait traduire par :


Ecrire sur la broche digital (digitalWrite) n°13 (led_clignotante) l'état « Haut » (HIGH)


Voilà, nous avons allumé la LED en faisant passer 5v dans la broche N°13. COOOL


Pour éteindre la LED il suffit de mettre la broche n°13 a l'état bas (LOW), ce qui nous donne :


digitalWrite(led_clignotante, LOW) ;


On allume on éteint c'est bien, mais a la vitesse du microcontroleur, c'est a dire tellement rapidement que votre cerveau ne voit rien du changement de l'état de la LED.


Il nous faut donc intégré une duré de maintien de l'état voulu.


Pour cela, ont utilise la « fonction temps » (delay)


delay(temps voulu en milisecondes) ;


Pour une seconde cela nous fait :


delay(1000) ;


donc, voilà, nous avons tout. Intégrons tout cela dans notre programme.


1 // Notre 1er programme sur Arduino
2 // ***************************
3 // ****** LED clignotante *******
4 // ***************************
5 //
6 const int led_clignotante = 13 ; // attribution de la broche 13 a led_clignotante
7 //
8 void setup()
9 {
10 pinMode(led_clignotante, OUTPUT) ; // La broche led_clignotante sera utilisée en sortie
11 }
12 void loop() // cette zone est exécutée en boucle jusqu'à coupure de l'alimentation de la carte
13 {
14 digitalWrite(led_clignotante, HIGH) ; // Allumage
15 delay(1000) ; // attente une seconde
16 digitalWrite(led_clignotante, LOW) ; // Extinction
17 delay(1000) ; // attente une seconde
18 // Fin du programme, a la ligne suivante retour a la ligne n°12
19 } 


Et voilà, vous venez de faire votre premier programme sur Arduino.


Vous pouvez maintenant vous amuser a changer les valeurs de delay(), pour changer la vitesse de clignotement. Vous n’êtes pas obligé d'avoir les mêmes valeur pour l'allumage et pour l'extinction.


Reste maintenant le branchement de la LED, et pour cela, la broche N°13 est magique car il n'y as pas besoin d'en brancher une. Elle est déjà présente sur la carte (c'est la seule) d'où mon choix.


Voilà, c'est fini pour ce 1er programme. Vous voyez, c'est simple, facile et il y a encore plein de possibilités que nous allons découvrir petit a petit.


Si vous avez des questions, n'hésitez pas.


Le prochain post sera axé sur l'utilisation du programme de compilation Arduino.        




A bientôt.










Comme d'habitude, Je vous demande de noter la difficultés de cette leçon.


De 1 a 10 où 1=facile et 10=extrêmement difficile.


Merci a vous.
avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 11150
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum