13
Programmation ICN (seconde) Programmer un microcontrôleur en langage C Introduction Tu es entouré de systèmes qui fonctionnent grâce à un microcontrôleur qui pilote un objet technique. Exemple : brosse à dent électrique, feu arrière de voiture, réfrigérateur, etc… Présentation de la carte Arduino La carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut connecter des capteurs (informations) et des actionneurs. Dans un microcontrôleur on trouve différents éléments d’un système numérique - Une gestion des informations d’entrée (acquisition de signaux numériques / analogiques) - Une gestion des sorties - Une unité de gestion du code - De la mémoire de masse (mémoire flash) - De la mémoire vice (RAM) Mise en œuvre et connexions On va commencer par un exemple simple qui consiste à modéliser un système d’allumage d’une pièce. Il faudra donc connecter sur le système (shield) : - Un bouton poussoir (jouera le rôle de télérupteur) - Une LED Nom élément Capteur/actionneur signal Etendu Version du 11/12/2017 1/ Julien Launay

icnisnlycee.free.fricnisnlycee.free.fr/.../langageC/arduino/arduino_prog_c.docx · Web viewLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: icnisnlycee.free.fricnisnlycee.free.fr/.../langageC/arduino/arduino_prog_c.docx · Web viewLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut

Programmation ICN (seconde)

Programmer un microcontrôleur

en langage CIntroductionTu es entouré de systèmes qui fonctionnent grâce à un microcontrôleur qui pilote un objet technique.

Exemple : brosse à dent électrique, feu arrière de voiture, réfrigérateur, etc…

Présentation de la carte ArduinoLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur.

On peut connecter des capteurs (informations) et des actionneurs.

Dans un microcontrôleur on trouve différents éléments d’un système numérique

- Une gestion des informations d’entrée (acquisition de signaux numériques / analogiques)- Une gestion des sorties- Une unité de gestion du code- De la mémoire de masse (mémoire flash)- De la mémoire vice (RAM)

Mise en œuvre et connexionsOn va commencer par un exemple simple qui consiste à modéliser un système d’allumage d’une pièce.

Il faudra donc connecter sur le système (shield) :

- Un bouton poussoir (jouera le rôle de télérupteur)- Une LED

Nom élément Capteur/actionneur signal Etendu des informations

Bouton poussoir capteur Numérique (logique) 0 / 1Relâché / appuyé

LED actionneur Numérique 0v 5V

Sur le shield connecter les éléments aux bons endroits.

Complète le schéma de connexion en notant bien les références de connexion.

Version du 11/12/2017 1/ Julien Launay

Page 2: icnisnlycee.free.fricnisnlycee.free.fr/.../langageC/arduino/arduino_prog_c.docx · Web viewLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut

Programmation ICN (seconde)

On se propose de de connecter la LED sur le port D3 et le bouton poussoir sur le port D2, mais tu peux choisir d’autres connexions compatibles avec le signal de l’élément.

On a le diagramme de blocs internes suivant :

A toi de relier le bouton poussoir et la LED sur le port de connexion voulu. Note bien ces numéros de port (connexions)

Tu trouveras le matériel dans la boite.

Version du 11/12/2017 2/ Julien Launay

Entrée / sortie numérique

Système I2C

Entrées analogiques

Page 3: icnisnlycee.free.fricnisnlycee.free.fr/.../langageC/arduino/arduino_prog_c.docx · Web viewLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut

Programmation ICN (seconde)

Connecte ta cible (carte microcontrôleur Arduino Uno) avec le câble USB

Version du 11/12/2017 3/ Julien Launay

Page 4: icnisnlycee.free.fricnisnlycee.free.fr/.../langageC/arduino/arduino_prog_c.docx · Web viewLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut

Programmation ICN (seconde)

Analyse algorithmiqueAvant de se lancer dans le codage de ton système, il faut réfléchir à l’algorithme.

Algorithme :

DEBUT

Définir les connexions

TANT QUE VRAI

Sauvegarder dans etat_bouton l’état du bouton. On lit une information numériquesur l’entrée numérique D3 (par exemple)

SI etat_bouton est appuyé ALORS

Allumer la LED (mettre l’état du signal de sortie à 5V)

SINON

Eteindre le LED (mettre l’état du signal de sortie à 0V)

FIN SI

FIN TANT QUE

FIN

Version du 11/12/2017 4/ Julien Launay

A compléter…

Page 5: icnisnlycee.free.fricnisnlycee.free.fr/.../langageC/arduino/arduino_prog_c.docx · Web viewLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut

Programmation ICN (seconde)

Codage avec l’IDE en langage CTu as découvert le langage Python. Tu vas utiliser maintenant autre langage de programmation, le langage C.

Pour programmer tu vas utiliser l’application Arduino.

Créer un nouveau fichier.

Tu obtiens l’interface suivante :

Version du 11/12/2017 5/ Julien Launay

Paramétrage des entrées sortiescode exécuter une seul fois au

démarrage

Code répéter en boucle

Page 6: icnisnlycee.free.fricnisnlycee.free.fr/.../langageC/arduino/arduino_prog_c.docx · Web viewLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut

Programmation ICN (seconde)

Exemple de programme associé à l’algorithme de départ

Tu trouveras ce programme à compléter sur le serveur du lycée.

Tu viens de faire ton premier programme en C. Tu as utilisé des fonctions ou/et méthodes spécifiques.

Pour connaitre comment tous ces codes, on va sur le site de référence : https://www.arduino.cc/reference/en/

Par exemple pour lire l’entrée numérique, regardant la documentation, on voit qu’il faut utiliser la fonction : digitalwrite

Que l’on trouve ici dans le menu de départ https://www.arduino.cc/reference/en/language/functions/digital-io/digitalwrite/

Version du 11/12/2017 6/ Julien Launay

A toi de modifier en fonction de tes numéros de port (connexion)

Const veut dire constante (ne change pas dans le programme).

Int correspond à un type de variable, ici variable ∈Zborné

Type de variable booléenne (vrai/faux ou LOW/HIGH)

A compléter…

Page 7: icnisnlycee.free.fricnisnlycee.free.fr/.../langageC/arduino/arduino_prog_c.docx · Web viewLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut

Programmation ICN (seconde)

Regarde où trouver la documentation pour piloter une sortie (pour éclairer ou éteindre une LED). Regarde le code et trouve la fonction dans le menu de la documentation. Note le lien URL.

Compilation et téléversement du programme vers la cible Arduino.Tu as terminé ton premier programme.

La machine ne comprend pas le programme que tu as tapé, il faut le convertir dans un langage que connait la machine. On appelle cela l’étape de compilation (toolchain).

Vérifier que la carte est bien connectée sur le port USB (prendre le numéro de port le plus important !)

Version du 11/12/2017 7/ Julien Launay

Page 8: icnisnlycee.free.fricnisnlycee.free.fr/.../langageC/arduino/arduino_prog_c.docx · Web viewLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut

Programmation ICN (seconde)

Puis clique sur la flèche téléverser.

La compilation se lance (transformation du programme).

Puis à la fin.

Tu peux lire la taille de ton fichier. Donne sa taille et la taille maximum d’un fichier en Ko

Test du programme.Tu peux tester ton programme. Réalise un jeu de test (différentes possibilités pour valider le cahier des charges)

Version du 11/12/2017 8/ Julien Launay

Page 9: icnisnlycee.free.fricnisnlycee.free.fr/.../langageC/arduino/arduino_prog_c.docx · Web viewLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut

Programmation ICN (seconde)

Modification du programme.Tu t’es aperçu que le programme ne répondait pas tout à fait à un vrai fonctionnement d’un télérupteur. Décris le problème rencontré.

Pour cela utilise un simulateur du système.

https://schema-electrique.net/schema-electrique-telerupteur-unipolaire.html#Utilisation-fontionnement-telerupteur

http://www.volta-electricite.info/file/flash/telerupteur.swf

fichier disponible sur le serveur du lycée à lancer avec un navigateur.

Version du 11/12/2017 9/ Julien Launay

Page 10: icnisnlycee.free.fricnisnlycee.free.fr/.../langageC/arduino/arduino_prog_c.docx · Web viewLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut

Programmation ICN (seconde)

A toi de modifier ton algorithme.

Petite aide :

Tu utiliseras une variable qui mémorisera l’état du télérupteur (ouvert ou fermé).

Tu vas créer une variable de type booléenne

Boolean etat_telerupteur.

Pour changer l’état du télérupteur (pour inverser son état de fermé -> ouvert ou ouvert -> fermé)

Tu utiliseras la documentation ici.

https://www.arduino.cc/reference/en/language/structure/boolean-operators/logicalnot/

Pour inverser l’état de la variable etat_telerupteur, tu pourras utiliser :

etat_telerupteur = !etat_telerupteur

Version du 11/12/2017 10/ Julien Launay

Page 11: icnisnlycee.free.fricnisnlycee.free.fr/.../langageC/arduino/arduino_prog_c.docx · Web viewLa carte Arduino permet de s’initier à la programmation d’un microcontrôleur. On peut

Programmation ICN (seconde)

Modifie ton programme en C, fais tes essais.

Version du 11/12/2017 11/ Julien Launay