Arduino arduino_goodfields_64.jpg07d HARDWARE : interfaces d'entrées et de sorties
 
Sommaire

Entrées Entrées Sorties Sorties carte à relais carte à relais
ESP8266 ATTENTION ! Problèmes techniques sur les sorties ESP8266 ATTENTION ! Problèmes techniques sur les sorties Programmation  avec logique INVERSE Programmation avec logique INVERSE Clavier  analogique Clavier analogique
capteurs capteurs Autres  pages Autres pages
Page 7a : HARDWARE général ... Page 7a : HARDWARE général ... Page 7b : ARDUINO autonome ... Page 7b : ARDUINO autonome ... Page 7c : Afficheurs LCD Page 7c : Afficheurs LCD
La page principale ... La page principale ...
   
Vers le début Vers Page 2 Vers sommaire Entrées

   
Vers le début Vers Page 2 Vers sommaire Sorties
Dans tous les schémas qui suivent, la led + R1 peut être une autre charge telle qu'un relais (ajouter une diode de roue libre), ou un ensemble de leds, ou un moteur ...

cliquez pour agrandir : photo/07_sorties.jpg

* A: plus simple c'est pas possible. 20/25mA maximum pour les ARDUINOS, 12mA pour les ESP8266. Logique POSITIVE.

* B: idem, mais logique INVERSEUSE.

* C: pour un peu plus de courant, et avec alimentation séparée (bandeau de leds 12/24 V par exemple). Montage nécessaire si on veut rester en logique POSITIVE avec une carte à relais. T1 peut être un MosFet, mais vérifier la tension de gâchette nécéssaire pour le courant voulu : en 3,3V on peut être un peu juste (voir montage D).

* D: plus de puissance,remarquez le driver T1 car la plupart des MOSFET de puissance demandent plus de 5 Volts sur leur gâchette pour donner le maximum de courant. ATTENTION !logique INVERSEUSE !

* E: Idem D, avec un double driver (T1+T1) pour logique POSITIVE.

* F: idem E, mais avec un MOSFET P, plus rare en général. Logique POSITIVE.

* X1: MOSFET N avec opto-coupleur : c'est l'idéal ! entrée pour sortie inversée (référencée au +) ou au directe.

* X2: MOSFET P avec opto-coupleur si besoin de masse commune.

T1 = BC547 ou équivalent bas niveau
T2 = MosFet canal N selon usage
T3 = MosFet canal P selon usage
T4 = opto coupleur type PC817C (200% gain)
Valeurs indicatives pour les résisatnces :
R1 = 180 Ohms 20mA led rouge (5 Volts). peut être une charge autre (adapter le MOSFET en coinséquence)
R2 = 10 kOhms
R3 = 10 kOhms
R4 = 10 kOhms
R5 = 1 kOhms

 
carte à relais
cliquez pour agrandir : photo/07_relais.jpg Ce type de platine de relais est bien pratique pour séparer efficacement nos montages avec d'autres équipements, en particulier sur le 230 Volts secteur.
On peut avoir une alimentation indépendante des relais avec un 5V différent de celui du CPU (qui peut être en 3,3V, d'ailleurs) en enlevant le cavalier JD-VCC
Il faut aussi savoir que les relais sont activés par mise à la masse des pin d'entrées; donc logique inverse, ou à interfacer avec un simple transistor ou fet (voir ci-dessus).

 
ESP8266 ATTENTION ! Problèmes techniques sur les sorties
L'ESP a au démarrage ses port gpio à +3.3V . Si vous l'utilisez pour la commande à niveau logique haut (+3.3V), il suffirait d'une coupure de courant pour actionner vos commandes (sympa la sécurité d'ouverture de portail par exemple !). Donc j'utilise une commande inverse (par mise à la masse comme pour la led bleue).

Par ailleurs les ESP/Wemos ont quelques entrés particulières :
La GPIO 0 doit être au VCC et la GPIO 15 au GND au démarrage (par résistances de tirage) pour qu'il boote 'normalement'. Si ce n'est pas le cas, on se retrouve dans un mode 'download'.
Nota : en fait, ce problème ne se pose pas pour tous les GPIO. C'est sûrement le cas de GPIO 0, qui permet de passer en mode FLASHAGE si elle est à 0/GND au RESET.

Bien réfléchir à ce problème d'état à la mise sous tension !

cliquez pour agrandir : photo/07_sorties_esp.jpg

* A : montage simple, telle la led bleue d'origine. 12mA maximum, logique inversée.
R1= 150 Ohms minimum pour une led Rouge, 110 Ohms pour une verte.

* B: pour un relais ou une charge de plus de 12mA, en 3,3Volts
R1 = R2 = 10k T1=Transitor PNP ou canal P

* C: pour un relais ou une charge à plus de 3,3V. Utiliser un optocoupleur. Intensité maxi : voir caractéristiques de l' optocoupleur.
R1 = 150 à 330 ohms

* D: optocoupleur + transistor bipolaire : pour charge plus importante.
R1 = 150 à 330 ohms
R2 = 1k
R3 = 10k

* E: optocoupleur + transistor MOSFET N à la masse : montage très courant, pour charge X1 importante (bandeau de leds par exemple). Le + peut être du 12 ou du 24 Volts.
R1 = 150 à 330 ohms
R2 = 1k
R3 = 10k

* F : optocoupleur + transistor MOSFET P au + : montage pour les charges X2 qui ne peuvent être déconnectées de la masse, pour charge importante (bandeau de leds par exemple). Le + peut être du 12 ou du 24 Volts.
R1 = 150 à 330 ohms
R2 = 1k
R3 = 10k

* A0 X3: possibilité sans opto-coupleur avec un MOSFET et un transistor PNP (ou mosfet P). Logique DIRECTE !

* A1 X4: variante de A0 si le MOSFET exige plus de 3V sur la gâchette. Logique INVERSEE !

   
Vers le début Vers Page 2 Vers sommaire Programmation avec logique INVERSE
Si l'on a besoin de logique inverse, en sortie ou en entrée, il est élégant de programmer comme ceci :

#define relais_pin 4
#define relais_ON LOW
#define relais_OFF HIGH
digitalWrite( relais_pin, relais_ON ); // MARCHE
digitalWrite( relais_pin, relais_OFF ); // ARRET

#define entree_pin 0
#define entree_ON LOW
#define entree_OFF HIGH
if ( digitalRead(entree_pin) == entree_ON ) { MARCHE }
if ( digitalRead(entree_pin) == entree_OFF ) { ARRET }

   
Vers le début Vers Page 2 Vers sommaire Clavier analogique
Sur une entrée analogique, on veut câbler plusieurs boutons poussoirs, typiquement 10. On peut envisager de monter à 16 ou plus. La conversion analogique/digitale permet de détecter la touche enfoncée. Une seule touche n'est détectée à la fois (la plus 'basse').



A : c'est le montage préconisé en général. Le problème réside dans la constitution de la série de résistances à installer. Voir dans la nomenclature.
+ : fonctionne même avec variation de tension d'alimentation
- : très peu de courant circule dans les boutons, ce qui peut poser problème de passivation des contacts.

B: montage avec diodes (type BAT47 ou 48). La chute de tension est de 0,22 Volts par diode.
+ : toutes les diodes chutent la même tension (ce n'est qu'à moitié vrai, le courant n'étant pas le même selon le nombre de diodes concernées, choisir le diodes et le courant; peut-être générateur de courant à la place de R11 ?). Le courant dans les contacts peut être réglé de 1 à 5mA.
- : les diodes sont plus chères que des résistances, si la tension varie, on engendre des écarts ...

C: montage à résistances identiques : on établit un diviseur de tension avec un jeu de n+1 résistances identiques. On peut mettre une R13 plus grande pour se réserver une extension future ou optionnelle : 5 kOhms permettrait de rajouter 4 boutons... Ou alors, si l'entrée analogique est référencée à 2,56V par exemple (utilisation de ACS712 par ailleurs), R13=12 kOhms permet d'alimenter le clavier à partir du 5 Volts.
La résistance R16 de grande valeur est indispensable pour tirer l'entrée A0 au + quand aucune touche n'est appuyée. La relier à une tension maximale admissible par A0.
+ : très précis
- : consomme en permanence

D : montage potentiomètrique : identique au montage précédent, mais avec un potentiomètre et un bouton de validation. On positionne le potentiomètre sur le choix désiré, et on valide avec le BP.
+ : permet d'avoir de nombreux points (16,32,64 semble un maximum). Peut être réalisé avec un commutateur
(6 ou 12 positions et des résistances comme le modèle C)
- : commandes moins 'directes', nécéssite d'avoir un retour permanent sur la position du potentiomètre avant validation

E : c'est l'aboutissement actuel de mes essais (2018). Sur une entrée analogique, un potentiomètre et deux boutons X et Y.
On arrive facilement à détecter 16 positions, et avec les appuis court/appui long on obtient 64 boutons !

cliquez pour agrandir : photo/07_clavier_analogique.jpg

A/ méthode 'R contre R'
BP (10x)
R10=2200
R9=12000
R8=3300
R7=1800
R6=1000
R5=820
R4=470
R3=390
R2=330
R1=220
R0=0

B/ montage à diodes
BP (10x)
D1= BAT47 ou 48 ou 54 (0,22v) ou 1N4148 (0,55V) (9x)
R11 = 3,3 Kohms

C/ montage à résistances identiques
BP (10x)
R12 = 1 kOhms (9x)
R13 = 1 kOhms ou 12 kOhms ou plus (1x) voir texte
R16 = 470 kOhms ou 1MOhms voir texte

D/ montage à potentiomètre
BP (1x)
R14 = 1 kOhms
P1 = 10 kOhms linéaire
R15 = 1 kOhms

E/ montage dit 'PotarXY'
C'est l'aboutissement actuel de mes essais (2018). Sur une entrée analogique, un potentiomètre et deux boutons X et Y.
On arrive facilement à détecter 16 positions, et avec les appuis court/appui long on obtient 64 boutons !
BP (2x)
R2 = 680 Ohms
P1 = 10 kOhms linéaire
R2 = 680 Ohms

   
Vers le début Vers Page 3 Vers Page 1 Vers sommaire capteurs
PIR 501 (détecteur de mouvements)
https://electronics.stackexchange.com/questions/95963/12v-led-strip-lights-controlled-by-pir-want-to-add-ldr-to-project
   
Vers le début Vers Page 4 Vers Page 2 Vers sommaire Autres pages
Page 7a : HARDWARE général ... Page 7a : HARDWARE général ... Page 7b : ARDUINO autonome ... Page 7b : ARDUINO autonome ... Page 7c : Afficheurs LCD Page 7c : Afficheurs LCD
Page 7d : interfaces d Page 7d : interfaces d'entrées et de sorties la suite ... la suite ... La page principale ... La page principale ...

* autres possibilités : les expanders de ports sur bus I2C :
PCA9685
https://www.amazon.com/gp/aw/d/B01D9VNXEQ/ref=sspa_mw_detail_0?ie=UTF8&psc=1
PCF8575
https://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Delectronics&field-keywords=PCF8575


Dernière mise à jour : 09:54:22 15/03/2020