Prototypage avec carte arduino

Documents pareils
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Bien commencer avec un LaunchPad MSP430G et un Breadboard

CHAPITRE IX : Les appareils de mesures électriques

AP1.1 : Montages électroniques élémentaires. Électricité et électronique

I GENERALITES SUR LES MESURES

HAM841K CENTRALE D'ALARME POUR SYSTEMES DE SECURITE COMMERCIAUX ET D'HABITATION

ENREGISTREUR DE TEMPERATURE

Centrale d alarme DA996

AUTOPORTE III Notice de pose

Vous avez dit... LED??? DOCLED V2 Page 1 / 14

Centrale de surveillance ALS 04

Notice d installation de la Centrale VIGIK DGM1

1. PRESENTATION DU PROJET

Manuel d'utilisation de la maquette

Livret Phoenix-M. Par Georges Khaznadar, Lycée Jean Bart, Dunkerque d'après Phoenix Programmer's Manual

Atelier Arduino. Initiation à la mise en oeuvre matérielle et logicielle de l Arduino. novembre 2006

Références pour la commande

PASSAGE A NIVEAU HO/N

SYSTEMES ELECTRONIQUES NUMERIQUES

CHAPITRE VIII : Les circuits avec résistances ohmiques

Atelier Arduino. Initiation à la mise en oeuvre matérielle et logicielle de l Arduino. novembre 2006

ScoopFone. Prise en main rapide

SOMMAIRE. B5.1 Première approche

Manuel d aide à la pose

NUGELEC. NOTICE D'UTILISATION DU B.A.A.S. du type Ma - STI / MaME - STI. pages. 1 introduction 2. 2 encombrement 3 fixation

CARACTERISTIQUE D UNE DIODE ET POINT DE FONCTIONNEMENT

UGVL : HOMOLOGATION PS ZAC du bois Chaland 6 rue des Pyrénées LISES EVRY Cedex FRANCE Tel Fax

500 W sur 13cm avec les modules PowerWave

2.1 Le point mémoire statique Le point mémoire statique est fondé sur le bistable, dessiné de manière différente en Figure 1.

CONFIGURATION ET UTILISATION

Mesure. Multimètre écologique J2. Réf : Français p 1. Version : 0110

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

Mesure de Salinité Réalisation d'un conductimètre

ROTOLINE NOTICE DE POSE

Études et Réalisation Génie Électrique

Circuits RL et RC. Chapitre Inductance

Comment créer votre propre lampes LED

MANUEL D UTILISATION EASY 12

PRINCIPE, REGULATION et RECHERCHE de PANNES

CORRECTION TP Multimètres - Mesures de résistances - I. Mesure directe de résistors avec ohmmètre - comparaison de deux instruments de mesure

Cours d électricité. Circuits électriques en courant constant. Mathieu Bardoux. 1 re année

MT-703. Surveillance de niveau par sonde résistive TELEMETRIE PAR MODULE GSM CONFIGURATION ET UTILISATION

KIT SOLAIRE EVOLUTIF DE BASE

Notice d installation sur le véhicule

Comparaison des performances d'éclairages

NOTICE D INSTALLATION CENTRALE 260

CIRCUIT DE CHARGE BOSCH

Fiche technique CPU 314SC/DPM (314-6CG13)

Electrocinétique Livret élève

MODE D EMPLOI HAA51 DETECTEUR PASSIF D INTRUSION A INFRAROUGE INTRODUCTION

fullprotect inside EOLE SPEie RS E-SPEie V-0.6A-RS 1.0 revision Protection environnement Datasheet édition française

SYSTEMES ELECTRONIQUES NUMERIQUES

AMC 120 Amplificateur casque

La polarisation des transistors

FRANCAIS DGM1. Centrale Vigik 1 porte. N d homologation : - PS MS Gamme: Vigik MANUEL D INSTALLATION.

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

L ÉLECTROCUTION Intensité Durée Perception des effets 0,5 à 1 ma. Seuil de perception suivant l'état de la peau 8 ma

BORNE DE RECHARGE SUPERVISION GESTION D ENERGIE DIVA BORNE DE VOIRIE NOTICE D INSTALLATION

Systèmes pour la surveillance et la commande lors de l entreposage et du transvasement de liquides. BA

Objet : Alimentation pour ordinateur portable et autre. Alimentation Schéma 1

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Astra Elite AM/3 Manuel d'installation

SYSTÈME DE CONTRÔLE SOLAIRE LX-220 Installation et mode d emploi

Alarme intrusion filaire AEI HA zones

Relais d'arrêt d'urgence, protecteurs mobiles

JUPITER /20/27/61m. Contact NF, 50mA à 24v max. avec R50 Ohms en série

VOCALYS LITE.

MESURE DE LA TEMPERATURE

Carte Relais GSM (Manuel Utilisateur)

Enregistreur de Température pour PC DALLAS 1820

DOCUMENT RESSOURCE SONDES PRESENTATION

Visiophone couleur 2 fils - V400 RTS. Manuel d installation et d utilisation A

Dossier technique. Présentation du bus DMX et Utilisation des options EL13 / EL14 ERM AUTOMATISMES INDUSTRIELS 1 LE PROTOCOLE DMX 2

BAMOSONIC IT. - Mesure de niveau -

HA33S Système d alarme sans fils

BALISE GPS. Modèle EOLE. MANUEL INSTALLATEUR Version 3.4 GPS+GSM+SMS/GPRS

Nb. De pages : 24 MANGO. Manuel d'utilisation. Version 1.2. décembre 2010

Activité initiation Arduino

NOTICE D UTILISATION

RELAIS STATIQUE. Tension commutée

I- Définitions des signaux.

Module de mesure de courant pour relais statiques serie HD Module de mesure de courant HD D0340I

Gobius 1 ¾ alarme pour des fosses septiques

Technique de sécurité

Guide de l utilisateur. Calibreur de Courant / Voltage Modèle A

Notice d utilisation. Présentation générale...p 2 à 3. Installation...P 3 à 6. Fonctionnement...P 9. Agréé une marque déposée par La Poste

SERRURE ÉLECTRONIQUE À PÊNE DORMANT

Configurateur tebis TX100

RÉALISATION D UN BANC D ÉQUILIBRAGE

Traceur GPS Antivol. Le traceur est conforme aux normes européennes 95/56 E27

COMMUTEL PRO VM3 INTERFACE GSM VOIX POUR EMULATION DE LIGNE RTC ET TRANSMETTEUR DE SMS D ALERTES ET TECHNIQUES.

Réseau électrique. Le transport de l énergie électrique depuis la centrale électrique jusqu à la maison de Monsieur Toulemonde

Mode d emploi ALTO MONITOR PROCESSEUR D ÉCOUTE. Version 1.0 Juillet 2003 Français

Système de surveillance vidéo

SYSTEME DE DESENFUMAGE 12 NIVEAUX

La programmation des PIC en C. Les fonctions, les interruptions.

Caractéristiques techniques du module électronique Témoin lumineux rouge

Série D65/D75/D72 Afficheurs digitaux modulaires

Guide de montage du PRisme. version 1.2.2

HAUT-PARLEUR SANS FIL BLUETOOTH MAXELL MXSP-BT03

Transcription:

1. Arduino Petits rappels sur les broches d'arduino : Pour éviter de tout brancher directement sur l'arduino, nous allons utiliser la platine d'essai ou breadboard. 1.1. Principe de la breadboard Certes, la plaque est pleine de trous, mais pas de manière innocente! En effet, la plupart d'entre eux sont reliés. Ci-contre les zones rouges et noires correspondent à l'alimentation. Souvent, on retrouve deux lignes comme celles-ci permettant de relier vos composants aux alimentations nécessaires. Par convention, le noir représente la masse et le rouge, l'alimentation (+5V, +12V, -5V... ce que vous voulez y amener). Habituellement, tous les trous d'une même ligne sont reliés sur cette zone. Ainsi, vous avez une ligne d'alimentation parcourant le long de la carte. Ensuite, on peut voir des zones en bleu. Ces zones sont reliées entre elles par colonne. Ainsi, tous les trous sur une même colonne sont reliés entre eux. En revanche, chaque colonne est distincte. En faisant chevaucher des composants sur plusieurs colonnes, vous pouvez les connecter entre eux. Dernier point, vous pouvez remarquer un espace coupant la carte en deux de manière symétrique. Cet espace coupe aussi la liaison des colonnes. Ainsi, sur le dessin ci-dessus, on peut voir que chaque colonne possède 5 trous reliés entre eux. Cet espace au milieu est normalisé et fait la largeur des circuits intégrés standards. En posant un circuit intégré à cheval au milieu, chaque patte de ce dernier, se retrouve donc sur une colonne, isolée de la précédente et de la suivante. Si vous voulez voir plus concrètement ce fonctionnement, je vous conseille d'essayer le logiciel Fritzing, qui permet de faire des circuits de manière assez simple et intuitive. Vous verrez ainsi comment les colonnes sont séparées les unes des autres. Les broches 0 et 1 (appelées aussi RX et TX) permettent de communiquer avec l'ordinateur. Nous vous recommandons de ne pas utiliser ces broches pour brancher vos LEDs mais de privilégier les broches numérotées de 2 à 13! 2. Lois simples d'électricité Avant de réaliser notre premier montage et de brancher notre première LED, il nous a semblé important de rappeler quelques bases en électricité. C'est Glenn qui va nous expliquer tout cela : 2.1. Tension et intensité À partir du circuit électrique le plus simple, jusqu'aux circuits les plus complexes, nous avons affaire à un courant électrique qui circule. Pour parler de la magnitude de ce courant électrique, on parle de l'intensité. Ce courant ou intensité est mesuré et exprimé en Ampères (A). Pour faire circuler un courant électrique, il faut une "force motrice". En électricité, cette force est appelée tension. La tension est mesurée et exprimée en Volts (V). Pour visualiser la différence entre Intensité et Tension, on peut faire un parallèle avec l'eau. L'intensité dans un circuit électrique est comme le débit de l'eau dans un tuyau. Et la tension électrique est comme la pression de l'eau. Pour un tuyau donné, plus on augmente la pression, plus le débit d'eau augmente. En électricité c'est pareil : dans un circuit donné, plus on augmente la tension, plus l'intensité augmente. 2.2. Résistance Toujours avec notre tuyau d'arrosage, on peut visualiser une autre manifestation électrique : la résistance. La friction à l intérieur du tuyau résiste au passage de l'eau. Plus le diamètre du tuyau est petit, plus la résistance est importante. Plus le tuyau est long, plus la résistance est forte. Et si, pour augmenter le débit, on augmente trop la pression le tuyau se rompt. La résistance électrique est très semblable. La résistance est mesurée et exprimée en Ohms (Ω). Un simple fil électrique en cuivre montre une résistance au courant. Plus le diamètre du fil est petit, plus il y a de résistance. Plus le fil est long, plus il y a prototypagearduino.odt (source : france université numérique) 1/10 07/03/16

de résistance. Vous avez peut-être déjà expérimenté : si on essaie de passer trop de courant dans un petit fil électrique le fil fond (c'est le principe d'un fusible). 2.3. Loi d'ohm Bon, nous avons déjà trois phénomènes électriques à maîtriser : la tension (volts), l'intensité (ampères) et la résistance (ohms). Ces trois phénomènes sont intimement liés par une loi d'électricité dite loi d'ohm. La loi s'exprime dans une formule très simple : U = R I avec : U : Tension I : Intensité R : Résistance La même loi peut être exprimée aussi en fonction de l'intensité et la résistance respectivement : I = U R et R = U I 3. Pourquoi et comment il vous faudra protéger vos LED. 3.1. Montage Le montage suivant utilise une diode électroluminescente ou LED, un interrupteur et une résistance. Quand l'interrupteur est fermé, le courant passe à travers la résistance et la diode - et la diode va s'allumer. Ce même montage peut être dessiné en tant que schéma électronique comme suit (interrupteur dessiné en position fermée) : Si on regarde la documentation pour les LED standards, on voit qu'une LED a besoin d'une tension entre 1,5v et 3,5v pour fonctionner (cela est fonction de la couleur de la LED, ainsi que de son fabricant), mais qu'il ne faut pas dépasser quelques dizaines de milliampères (écrits ma : millième d'un ampère) sinon la LED peut être endommagée. C'est pour cela qu'une résistance est placée dans ce circuit, pour limiter l'intensité à travers la LED. Pour calculer la bonne valeur de résistance pour que la LED s'allume au maximum, sans être endommagée, on va se servir de la formule : R = U I déjà évoquée précédemment. Dans la suite de cette discussion, je vais prendre 2,2v comme chute de tension du LED (valeur choisi arbitrairement). La tension de ce circuit fournie par les deux piles, donnent 3V. La chute de tension à travers la résistance est donc 3V 2,2V = 0,8V. Souvent, on limite l'intensité à travers une LED à 20mA (= 0,02 A). Cela donne, donc R = 0,8V/0,02. Le résultat est qu'il est possible de réduire la résistance jusqu'à 40Ω sans endommager la LED. Dans le cas d'une LED branchée sur une broche de l'arduino. Nous avons du 5V à la sortie de la broche. La chute de tension au travers de la résistance est de 5V 2,2V = 2,8V. Ça nous donne donc R = 2,8V/0,02A = 140Ω. a) Valeurs de résistances Les résistances sont fabriquées et triées dans plusieurs gammes de valeurs normalisées. On ne trouve pas, par exemple, une résistance de 40Ω dans le commerce. La valeur la plus proche est, en fait, 39Ω. En plus, la valeur d'une résistance n'est que très rarement exactement le valeur indiquée : il y a toujours une tolérance (normalement 5%). Une tolérance de 5% sur 39Ω donne de 37,05Ω à 40,95Ω! Si vous cherchez sur internet vous trouverez les infos sur les gammes de valeurs, et comment lire les valeurs (code de couleurs) des résistances. 4. Bouton poussoir Plusieurs personnes demandent le pourquoi de la résistance pour le montage du bouton poussoir. Je vais tenter d'y répondre sans trop 'griller' l'agenda des modules à venir D'abord, les branchements. Voici comment il faut orienter les boutons : Et le schéma : Notez bien que pour trouver la patte 1 il faut orienter le bouton pour que les pattes sortent du haut et du bas. Les pattes 1 et 2 sont reliées entre-elles à l'intérieur du bouton. Pareil pour les pattes 3 et 4. Il n'y a donc pas de souci si le bouton est inversé (cad tourné de 180 ). Montage platine, entrée tiré vers 5v : prototypagearduino.odt (source : france université numérique) 2/10 07/03/16

2nd EE ICN Et maintenant quelques explications Quand on définit une broche de l'arduino comme entrée (avec la commande «pinmode (nn,input);») l électronique à l intérieur du microcontrôleur tente de valider en permanence une entrée au niveau BAS ou HAUT. Il est difficile d'avoir un signal en entrée qui est toujours à exactement 0v ou exactement 5v. Le microcontrôleur travaille donc par paliers ou seuils. Une tension d'entrée sous le seuil est considérée comme étant le niveau «bas» ; supérieur au seuil c'est le niveau «haut». En plus (et ceux d'entre vous qui ont déjà eu affaire à des amplificateurs audio savent ce qu'est le ronflement) une entrée laissée «flottante» est parasitée par toutes sortes de signaux ambiants. Pour que nos programmes fonctionnent bien, il est primordial que les entrées soient TOUJOURS dans un état connu. On «tire» alors l'entrée vers 0v/GND ou +5v, avec une résistance d'une valeur dans les kilo-ohms pour que, au repos, l'entrée reste tranquillement soit bas, soit haut. Partant du principe que l'entrée est branchée sur 0v (état bas). Pour changer d'état il faut d'abord débrancher l entrée du fil 0v puis le brancher sur le fil 5v : sinon en branchant le +5v sur le 0v on provoque un court-circuit! C'est LA qu'on trouve l intérêt de la résistance. Si on «tire» notre entrée vers un état haut ou bas avec une résistance d'une valeur relativement élevée, le problème de court-circuit ne se pose plus. Un exemple : on tire l entrée vers 0v avec une résistance de 10kohms (10,000 ohms). Si maintenant on branche le 5v pour amener l'entrée à l'état haut, cela nous donne : Prenons notre cours sur le loi d'ohm (semaine 2) : I = U/R pour trouver le courant qui traverse la résistance :I = 5v/10000ohms = 0,0005 = 0,5mA : pas grand chose.et, si vous regardez de près, l'entrée de l'arduino se trouve bien branché sur 5v. Et le composante bleue sur la platine? Ben je ne veux pas trop en parler pour l'instant... C'est un condensateur et il est là pour "lisser" les fluctuations dues aux rebonds des contacts des interrupteurs. On parle des condensateurs plus tard dans le cours. Dernière question, pourquoi «tirer» vers 5v en non le 0v comme dans l'exemple ici? En fait c'est plutôt une convention historique... Autrefois les broches d'entrée sur les composants électroniques «consommaient» moins de courant si elles étaient tirées vers 5v que si elles étaient tirées vers 0v... De nos jours, avec les microcontrôleurs modernes, la différence est négligeable. C'est aussi par compatibilité avec certaines fonctionnalités de l'arduino. Vous pouvez donc câbler vos boutons poussoirs comme ici : Dans cette configuration, avec "digitalread" vous auriez un état '0' au repos, et l'état '1' quand le bouton est appuyé. Le montage complet avec la diode Montage 30 20 20 F G H I J 15 15 30 10 10 25 5 25 1 7 DIGITAL (PWM= D E A B C 8 C 9 B 10 D E 11 TM 6 5 4 3 ) 1 ICSP ON 3/10 12 Arduino 5V H I 13 3V3 G GND RESET F L TX RX AREF IOREF ANALOG IN prototypagearduino.odt (source : france université numérique) J ICSP2 Un Arduino Un câble USB Deux résistances de 1KΩ Des fils de prototypage Une platine de prototypage Un bouton poussoir Une LED de votre couleur préférée POWER 5 RESET Pour le réaliser, vous aurez besoin de : A a) 1 4.1. 2 TX0 1 RX0 0 07/03/16

Les rebondissements d'un bouton poussoir Mise en évidence des rebondissements Les mini-boutons poussoir livrés avec les kits sont étudiés pour ne pas permettre les rebondissements, mais ils peuvent toutefois se produire (1/20 en moyenne si la poussée n'est pas dans l'axe). Pour mettre en évidence les rebondissements, il est préférable d'utiliser un bouton poussoir d'installation électrique domestique (sonnerie, commande de télérupteur, etc). Le programme ci-dessous permet d'afficher les rebondissements à la fermeture d'un bouton poussoir. Utilisez le schéma de base sans condensateur, le BP relié entre le +5 et l'entrée Arduino, la résistance de 1k entre l'entrée Arduino et la masse. /* Programme de test des rebonds BP * Des rebonds inférieurs à 5 µs ne seront pas pris en compte (temps d'echantillonnage proche de 5 µs) * L'utilisation d'un BP miniature d'électronique n'est pas révélateur (prévu pour limiter les rebonds) * L'utilisation d'un BP d'installation électrique de type sonnerie est plus révelateur * Pin 9 pour la led. * Pin 7 pour le bouton poussoir * ouvrir le moniteur série * attendre l'allumage de la led pour appuyer sur le BP */ int led = 9; int BP = 7; byte bcl=0; int val=0; int bascule; unsigned long date=micros(); unsigned long temps=0; float duree; byte tab[256]; int finrebond; void setup() Serial.begin(9600); pinmode(led, OUTPUT); pinmode(bp, INPUT); void loop() delay(1000); digitalwrite(led,high); while (digitalread(bp)==0); // attente de la fermeture du BP date=micros(); for (bcl=0;bcl<255;bcl++)// boucle d'échantillonnage tab[bcl]=digitalread(bp);// mémorise les valeurs du BP temps=micros()-date; // calcule du temps total des 255 itérations digitalwrite(led, LOW); // signale la fin des échantillonnages for (int i=0;i<255;i++) // affiche le tableau des valeurs Serial.print(tab[i]); Serial.println(""); // retour à la ligne Serial.println("temps total (us) : "); Serial.println(temps); // affiche le temps Serial.println("temps d'echantillonnage (us) : "); duree=float(temps); // conversion en flotant pour faire les calculs duree=duree/255; // division du temps total de la boucle par le nombre d'itération Serial.println(duree, 2); // affichage avec deux chiffres après la virgule finrebond=0; // initialisation de la variable position dernier rebond for (int k=254;k>0;k--)// recherche dans le tableau du dernier rebond if (tab[k]!=1) finrebond=k;// mémorisation de la position du dernier rebond break; duree=duree*(finrebond);// calcul du temps total des rebonds Serial.println("temps de rebond (us): "); Serial.println(duree); Conclusion : Pour un bouton poussoir de mauvaise qualité, les rebonds peuvent durer jusqu'a 800 us, la constante de temps devrait être donc proche de 1 ms par exemple 22nF et 47k. Pour un bouton poussoir miniature spécial électronique, dans 95% des cas les rebonds ne sont pas mis en évidence par le prototypagearduino.odt (source : france université numérique) 4/10 07/03/16

programme donc les rebonds sont absents ou ont une durée totale inférieure à 4,8µs la constante de temps pourrait être de 4,7 µs soit 4,7nF et 1K. Pour palier aux rebonds exeptionnels, 100nF et 10k sont souvent utilisés. Un programme en assembleur pourrait mettre en évidence des rebonds plus courts. L'analyse du dé-rebondissement Pour résonner sur la question du dé-rebondissement, il est préférable d avoir le schéma sous les yeux. Le schéma En toute rigueur, deux résistances sont nécessaires, R1 pour introduire une constante de temps avec C pour pallier aux rebondissements, R2 pour limiter le courant de décharge du condensateur, ce courant pouvant user prématurément les contacts du BP. R2 << R1 Première remarque, pour un temps de-rebondissement raisonnable (entre 0.5 et 1ms) et un condensateur de 100 nf, la résistance doit avoir une valeur de l ordre de 10 kohm (RC = 1 ms) Analyse du fonctionnement en 5 étapes On suppose que l entrée Arduino ne consomme pas de courant BP relâché => condensateur chargé => entrée Arduino à 0 V (situation de départ) Action sur le BP => décharge très rapide du condensateur (constante de temps = R2 C) à la première fermeture=> entrée Arduino à 5V Les rebondissements => le condensateur n a pas le temps de se recharger (constante de temps = (R1 + R2) C) => entrée Arduino reste à 5V Fin des rebondissements ( BP fermé)=> le condensateur reste déchargé => entrée toujours à 5 V Relâchement du BP (avec ou sans rebondissement) => le condensateur se recharge en (R1 + R2) C secondes après la dernière fermeture du BP. Retour à la situation de départ. Conclusion : Le BP ne sera à nouveau disponible qu après le dernier rebondissement d ouverture augmenté du temps (R1+R2) C. Calcul des valeurs des composants R2 limite le courant de décharge du condensateur, 50 ma semble convenable => R2 = 5V / 0,05 = 100 Ohm. R1+R2 et C créent la temporisation pendant la charge du BP pour supprimer les rebondissements, prévoir 1 ms de rebondissement pour un BP de bonne qualité semble raisonnable soit R1 = 10 kohm et C = 100 nf ( R2 est négligeable devant R1). Le choix R1=100 kohm et C = 10 nf conviendrait de la même façon. Pour les mêmes valeurs de résistance, choisir un condensateur de 100µF interdirait la prise en compte d un second appui sur le BP moins de 1 s avant le premier (constante de temps multipliée par 1000).Si R1 était de 1 k le temps minimum entre deux appuis devrait être de 100 ms. Aide aux calcul des temps de charge et de décharge. à compléter U initial = charge actuelle de C U final = charge de C devant être atteinteu stabilisé = potentiel aux bornes de C en fin de charge totale (fin de la période transitoire)remarque : U final doit toujour être inferieur à U stabilisé (Ex : 11,99 V pour 12 V stabilisé) prototypagearduino.odt (source : france université numérique) 5/10 07/03/16

b) Code Cette suite d'instructions va allumer une LED branchée sur la broche 13 lorsque le bouton branché sur la broche 2 est appuyé. Lorsque vous utilisez le logiciel Arduino, le code peut être trouvé en cliquant sur Fichier Exemples 02.Digital Button. /* Bouton Allume une LED branchée sur la broche 13 lorsque le bouton branché sur la broche 2 est appuyé. */ // Initialisation des constantes : const int buttonpin = 2; // Numéro de la broche à laquelle est connecté le bouton poussoir const int ledpin = 13; // Numéro de la broche à laquelle est connectée la LED // Déclaration des variables : int buttonstate = 0; // variable qui sera utilisée pour stocker l'état du bouton // le code dans cette fonction est exécuté une fois au début void setup() // indique que la broche ledpin est une sortie : pinmode(ledpin, OUTPUT); // indique que la broche buttonpin est une entrée : pinmode(buttonpin, INPUT); // le code dans cette fonction est exécuté en boucle void loop() // lit l'état du bouton et stocke le résultat // dans buttonstate : buttonstate = digitalread(buttonpin); // Si buttonstate est à 5V (HIGH bouton appuyé) if (buttonstate == HIGH) // on allume la LED digitalwrite(ledpin, HIGH); else // sinon on éteint digitalwrite(ledpin, LOW); Remarques : Vous pouvez accéder à la documentation d'une fonction en cliquant avec le bouton droit sur celle-ci puis en cliquant sur Trouvez dans la référence. c) Instructions Comme la semaine dernière, voici une description des nouvelles fonctions utilisées (n'hésitez pas à cliquer sur les liens cidessous afin d'arriver sur la référence Arduino). const int led = 13; Déclaration d'une constante : comme pour une variable, on vient avec cette ligne stocker la valeur à droite du signe égal dans led. Le mot clé const indique que l'on ne souhaite pas que la valeur de led puisse être modifiée dans le programme. Les nouvelles instructions : digitalread lit l'état d'une broche et renvoie la valeur HIGH si la broche est à la tension de l'alimentation ou LOW si la broche est à 0V. digitalread(buttonpin); La valeur de retour de digitalread peut être stockée dans une variable comme ceci : buttonstate = digitalread(buttonpin); if permet de tester si une expression située entre parenthèse est vraie. Dans Button, nous cherchons à savoir si le bouton est appuyé, nous allons donc comparer buttonstate à HIGH comme ceci : if(buttonstate == HIGH) else : le bloc situé après cet mot clé viendra être exécuté si le test précédent échoue. Dans Button, si le bouton n'est pas appuyé alors on viendra éteindre la LED. prototypagearduino.odt (source : france université numérique) 6/10 07/03/16

Photorésistance La photorésistance a des caractéristiques comme tous les autres composants, le plus souvent ce composant est connu par le nom "LDR" (light-dependent resistor). Les deux caractéristiques les plus importantes sont : La résistance dans l'obscurité (R Dark) => elle varie entre 100k et 2M (pour les modèles les plus courants) suivant la référence du composant La variation de cette résistance placée en pleine lumière => la résistance (R Dark) est divisée par 20 à 50 (dans certains cas plus de mille) suivant la référence du composant. Résistance en série Le montage préconisé pour l'arduino est le suivant: Les valeurs obtenues lors de la lecture de la valeur analogique de la LDR connectée a Arduino dépendent de la lumière, des caractéristiques de la LDR et de la valeur de la résistance placée en série avec la LDR. Pour balayer au mieux les 1024 valeurs possibles, il est utile de choisir judicieusement la valeur de la résistance. Choisir comme valeur de la résistance : (R-Dark / 5) donne de bon résultats pour des valeurs de R-Dark entre 100k et 2M. Alors pourquoi cette résistance en série? La fonction analogread() est censée lire une TENSION de 0 à 5v. Pour lire une tension il faut avoir un courant qui traverse une résistance. Donc avec notre montage l'arduino est en train de lire la tension aux bornes de cette résistance. Ce montage est en fait un diviseur de tension variable. Et le choix de la valeur de résistance? pour limiter l'intensité quand la photorésistance se trouve en plein soleil (car sa résistance peut chuter à quelques centaines d'ohms seulement) on limite l'intensité à quelques milli-ampères. De plus, la valeur de la résistance conditionne l amplitude des valeurs mesurées entre la situation obscurité et la situation pleine lumière. Comme toujours, afin de calculer des valeurs optimales il faut chercher la documentation technique de votre photorésistance... d) Mesure de R-Dark En utilisant le schéma proposé dans le TP, placer la LDR dans l obscurité, faire varier la valeur de la résistance en série jusqu à obtenir : «sensor = 511» ou une valeur proche. La valeur de la résistance série donne la valeur R-Dark. e) La LDR dans le simulateur Une LDR est disponible dans les composants additionnels. Cette LDR a pour valeur R-Dark=180 kohm et à la lumière, sa résistance tombe à 3,6 kohm. La résistance à placer en série devrait être de 36k mais 1k donne des résultats avec moins d'amplitude mais acceptables. Au lancement du programme, la LDR est supposée être dans l obscurité, un click dessus et elle passe en pleine lumière. Il ne semble donc pas possible d'obtenir une variation continue de type analogique. L'utilisation d'un potentiomètre à la place de la LDR peut permettre des valeurs analogiques par paliers. 5. Mesures de tension et d'intensité 5.1. Le multimètre Il est presque indispensable d'avoir un multimètre à disposition pour contrôler vos montages électroniques surtout pour éviter d'endommager ('cramer') certains composants qui n'aiment pas être inversés ou suralimentés... La plupart des multimètres en vente actuellement sont des multimètres à affichage numérique, mais il en existe aussi à affichage analogique (à aiguille) : IMPORTANT : vérifiez bien que les branchements des deux sondes -ET- le réglage de l'appareil correspondent bien aux conditions à mesurer. Un multimètre réglé sur l'échelle de 20mA ne va pas aimer voir passer un courant de 20A. Et n essayez pas de mesurer la tension avec le multimètre réglé sur une échelle d'intensité - c'est 'vu' comme un court-circuit! Parfait pour cramer des composants! 5.2. Mesures de tension Réglé sur une échelle de tension, le multimètre va nous renseigner sur la chute de tension réelle aux bornes de la résistance. Ici on voit le montage en version schématique et en 'réel' : Notez comment le voltmètre est branché : branchement +ve (rouge) sur le plus positif des deux fils de la résistance. Sur un montage 'inconnu' il faut parfois tâter en regardant l'affichage du voltmètre afin de savoir quel côté d'un composant est le +ve. prototypagearduino.odt (source : france université numérique) 7/10 07/03/16

5.3. Mesures d'intensité Vous avez vu que les mesures de tension peuvent se faire sans modifier le câblage d'un circuit. Pour mesurer l'intensité ce n'est pas aussi facile. Pour voir, par exemple, l'intensité du courant à travers la DEL, il faut couper le circuit pour insérer le multimètre, pour que tout le courant qui traverse la DEL passe aussi à travers le multimètre : Notez à nouveau qu'il faut brancher l'ampèremètre dans le bon sens : côté "+" branché sur le point le plus +ve des deux. Dans cet exemple on peut insérer l'ampèremètre n'importe où dans le circuit car nous n'avons que deux composants (la résistance et la DEL) en série. 6. Branchements des LED Bonjour, Un petit message pour vous aider avec les LEDs (ou DELs si vous préférez). Le cours électronique va bientôt aborder les "pourquoi" et "comment", ici je voulais juste vous montrer comment repérer les branchements et comment les câbler. D'abord, les branchements : Sur les LEDs classiques, le moulage présente un plat sur le bord du boitier. Il est du coté de la Cathode, le 'moins' de la LED (pour se souvenir de l'électrode négative pensez à MOKA pour «MOins CAthode»). Lorsque la LED est neuve, on constate également qu'une patte est plus longue que l'autre. La courte est la Cathode, le moins. On peut aussi dire que c'est la 'moins' longue pour s'en rapeller. Mais sur une LED récuperée ou déjà bien tordue, ce n'est pas aussi facile à réperer Alors, comment la brancher? Si vous regardez de près, par transparence vous verrez qu'une partie à l'intérieur est en forme creux, un sorte de bol. Ce coté c'est le Cathode - la connexion NEGATIVE. 6.1. Composants passifs Dans les semaines passées, nous avons pas mal discuté des résistances, composants incontournables dans les montages électroniques. Voici d'autres composants dits "passifs" que nous allons souvent utiliser. a) Les Diodes "Ahhhhh..." j entends déjà les puristes "une diode est un semi-conducteur, pas un composant passif..." Et oui, mais je vais traiter le sujet ici et maintenant car nous l'avons déjà vu plusieurs fois dans nos précédents montages. La diode est le premier vrai composant électronique qui a été inventé. Au début c'était en forme d énorme tube électronique qui chauffait un max! Maintenant elle existe sous plusieurs formes : Leur fonction de base est toute simple : laisser passer le courant dans un seul sens. On peut penser à notre tuyau d'eau abordé la semaine passée : une diode est comme un clapet anti-retour. Voici le symbole électronique : La forme de flèche n'est pas un hasard, le sens de la flèche indique le sens de circulation du courant électrique. En utilisation "normale", la diode laisse passer le courant quand l'anode est plus positive que la cathode. La cathode est identifiée sur une diode par une bande colorée (voir schémas). Une forme spéciale de la diode est la diode électroluminescente, ou DEL. Son symbole : Les deux petites flèches indiquent que cette diode émet de la lumière... Rappelons notre montage de la semaine passée : On voit bien que l'anode est au positif et la cathode au négatif. (je sais ce n'est pas la bonne valeur de résistance avec une alimentation de 3v...). Si on inverse la LED, elle ne s'allume plus et le courant ne passe plus. prototypagearduino.odt (source : france université numérique) 8/10 07/03/16

b) Les Condensateurs ou capacitances Sujet un peu plus difficile si on veut tout comprendre des capacitances mais nous allons rester simple... Voici le symbole électronique : Leur construction et leur forme peut varier beaucoup mais leur principe reste le même : deux matériaux conducteurs (les deux traits verticaux), séparés par une matière isolante, appelée diélectrique (l'espace entre les traits), l'ensemble souvent en forme de "sandwich" ou parfois enroulés. c) Condensateurs polarisés Il faut noter que, à partir de la valeur d'environ 1uF, bon nombre de condensateurs sont POLARISES - c'est à dire qu'ils ont un "+" et un "-". On les appelle souvent condensateurs chimiques. Il faut les brancher dans le bon sens afin d'éviter les surprises désagréables : inversés ils ont tendance a se gonfler jusqu'à parfois se rompre carrément. Les produits chimiques à l'intérieur sont très corrosifs... D'habitude c'est le fil "-" qui est repéré avec une bande noir sur le coté. Crédits photo : merci Wikipedia : 47uF = 47 microfarads ou 47 10-6 ; 100nF = 100 nanofarads ou 100 10-9 ; 14pF = 14 picofarads ou 14 10-12 (circuits radio) ; Le condensateur est conçu pour stocker les charges électriques. Leur valeur est mesurée et calculée en Farads (F). Plus la valeur est grande et plus le condensateur peut stocker de charge. Les valeurs rencontrées dans l'électronique classique sont de l'ordre de nanofarads (10-9 Farads), jusqu'à des centaines de microfarads (10-6 F). Souvent les valeurs sont écrites de la manière suivante : A quoi servent des condensateurs? Je vais vous montrer quelques exemples pratiques de leur utilisation. d) Anti-rebond Nous avons déjà utilisé des boutons afin de commander nos montages Arduino et vous avez sûrement eu a faire avec le problème de rebond des contacts (contact bounce, en anglais). La construction mécanique des boutons fait que les contacts rebondissent plusieurs fois avant de s arrêter en position ouverte ou fermée. Avec un Arduino capable de réagir en un milliardième de seconde, ces rebonds sont un vrai casse-tête. D'habitude on résout le problème dans le logiciel - on attend un certain nombre de millisecondes et on lit à nouveau l'entrée concernée pour déterminer l'état. Sachez toutefois qu'il y a aussi une solution électronique qui peut parfois nous simplifier la vie : Voici le branchement typique d'un bouton en entrée d'un microcontrôleur : L'entrée est tenue au niveau 1 par la résistance. Quand on appuie sur le bouton l'entrée est 'tirée' vers le niveau 0. Regardons déjà à quoi ressemble le 'bounce' : Cette trace d'oscilloscope correspond à une seule pression sur le bouton! La durée dans le temps de cette trace est de 200 micro-seconds (us). Chaque division = 25uS. On voit bien que cela peut être interprété par le microcontrôleur comme au moins six pressions! On peut améliorer la situation on ajoutant un condensateur (et oui, c'est toujours le sujet de ce chapitre...) comme ici : Un condenstaeur à besoin de temps pour se charger et se décharger. L'ajout de ce (petit) condensateur en parallèle avec le bouton va 'ralentir' les changements de tension, supprimant les effets aléatoires dus aux faux contacts. Et avec cette petite modification, nous avons : Ce n'est pas un carré parfait, mais notre Arduino ne verra qu'une seule pression. Sans avoir à ajouter du code spécifique anti-rebond. Utile les petits condensateurs! e) Base de temps RC Voilà un montage simple à construire avec l'arduino. D'abord le montage sur la platine de prototypage ou "breadboard" (littéralement "planche à pain" en anglais...) : prototypagearduino.odt (source : france université numérique) 9/10 07/03/16

Très simple à câbler, ce petit montage sert pour voir comment les condensateurs peuvent nous fournir des bases de temps. La sortie 13 de l'arduino est celle équipée d'une DEL (LED) sur la platine de l'arduino. Quand la sortie est au niveau '1' la DEL s'allume. Nous prenons la même sortie logique pour piloter notre montage. A travers la résistance de 10KΩ le condensateur se charge pendant que la sortie 13 est au niveau '1', et se décharge pendant le niveau '0'. Le transistor est utilisé comme une sorte d'interrupteur piloté (nous allons parler des transistors bientôt...) pour allumer la DEL rouge. Voici le schéma : Et le programme (ou sketch en anglais pour l'arduino) : SlowBlink (l'exemple Blink modifié un peu). Pour réaliser ce montage : SlowBlink À partir des schémas ci-dessous, branchez les composants sur la platine de prototypage.téléchargez le programme et vérifier que la LED sur l'arduino clignote (très) lentement. Regarder la LED rouge sur la platine d expérimentation : elle clignote aussi, mais avec presque une seconde de retard. Le délai exact dépend de plusieurs paramètres, notamment le type de transistor. Dans un monde idéal*, le temps de charge/décharge d'un condensateur se calcule facilement : T = R C avec T = temps en secondes ; R la résistance en Ohms ; et C la capacitance en Farads. (*) Mais ce temps dépend beaucoup des conditions de branchement, notamment la résistance de sortie du montage (souvent appelée l'impédance). Prenant l'exemple ici, nous avons R = 10000Ω et C = 0,00047F ce qui donne le temps de charge ou décharge de 4,7 secondes. Pourquoi notre DEL n'avait qu'un retard d'environ 1 seconde, alors? La réponse au chapitre "transistors"! Vous pouvez changer le condensateur pour un plus grand ou plus petit, ou en mettre plusieurs en parallèle ou série. Vous verrez que les valeurs des condensateurs en parallèle s'additionnent, et la valeur des condensateurs en série se calcule comme ceci : Ctot = 1/(1/C1 + 1/C2 + 1/CN) (exactement l'inverse que pour les résistances) Références Référence mini du langage Arduino par Xavier Hinault Référence officielle du langage Arduino (anglais) par l'équipe d'arduino Compléments sur la programmation Arduino par l'équipe d'openclassroom prototypagearduino.odt (source : france université numérique) 10/10 07/03/16