[TUTORIEL] Contrôler un composant externe à partir d'un GPIO
Modérateurs : Francois, smba38
- vague nerd
- Modérateur
- Messages : 1473
- Enregistré le : mar. 14 oct. 2014 11:42
- Localisation : France !
[TUTORIEL] Contrôler un composant externe à partir d'un GPIO
Contrôler un composant externe à partir d'un GPIO : adapter la tension de contrôle
De nombreux composants et autres circuit externes peuvent être contrôlés par le PI, comme un servomoteur, une carte contrôleur de moteurs, ou même une simple led.
Ces cartes ou composants présentent des "ports de contrôles" pour les commander.
Deux questions se posent alors :
1. Comment alimenter le composant ?
2. Comment le commander ?
Premier réflexe : on lit le datasheet du composant !
1. Alimentation
Le datasheet fournit tension et intensité d’alimentation. Si le besoin dépasse les possibilités du PI, il faut avoir recourt à une alimentation adaptée, séparée.
2. Contrôle
Le contrôle du composant est lui aussi spécifié dans le datasheet. Il pourra (entre autre, mais c'est le plus courant) s'agir de :
-envoyer frais ou faux sous forme d'une tension présente (vrais) ou non (faux), pour par exemple allumer ou éteindre le composant.
-envoyer une "pulsation" sur le port, selon une certaine fréquence, pour contrôler la position d'un servomoteur par exemple.
Dans les deux cas, il faudra s'assurer (toujours avec le datasheet) que le pi peut :
-fournir la tension nécessaire
-fournir l’intensité nécessaire
Si la tension de commande est supérieure à la tension que peut fournir le pi (3.3V sur un GPIO), comment adapter la tension ? Quelques composants passifs et une alimentation externe à la bonne tension va nous le permettre.
Les deux images ci-dessous montrent un même circuit. Les cercles verts représentent des voltmetres. A gauche est mesurée la tension fournie par le GPIO, à droite la tension obtenue.
L'exemple permet de produire une tension de contrôle de 9V à partir d'un GPIO.
Ici, le GPIO envoie "faux" sous la forme de 0V (quelques micro-volts mesurées), et la tension de contrôle restituée reste de 0V (quelques millivolts mesurés).
Ici, le GPIO envoie "vrais" sous la forme de 3.3V (3.3V mesurés), et la tension de contrôle restituée est de 9V (9V mesurés).
Le choix des transistors se fait en lisant leurs datasheet respectif. Les 2N2222 font l'affaire jusque 30V.
Ces transistors "s'ouvent" et se "ferment" à priori assez vite (il faudra le vérifier par la pratique) pour permettre la pulsation type PWM.
PS : un grand merci evotk pour son aide (c'est un euphémisme !) à la mise au point !
De nombreux composants et autres circuit externes peuvent être contrôlés par le PI, comme un servomoteur, une carte contrôleur de moteurs, ou même une simple led.
Ces cartes ou composants présentent des "ports de contrôles" pour les commander.
Deux questions se posent alors :
1. Comment alimenter le composant ?
2. Comment le commander ?
Premier réflexe : on lit le datasheet du composant !
1. Alimentation
Le datasheet fournit tension et intensité d’alimentation. Si le besoin dépasse les possibilités du PI, il faut avoir recourt à une alimentation adaptée, séparée.
2. Contrôle
Le contrôle du composant est lui aussi spécifié dans le datasheet. Il pourra (entre autre, mais c'est le plus courant) s'agir de :
-envoyer frais ou faux sous forme d'une tension présente (vrais) ou non (faux), pour par exemple allumer ou éteindre le composant.
-envoyer une "pulsation" sur le port, selon une certaine fréquence, pour contrôler la position d'un servomoteur par exemple.
Dans les deux cas, il faudra s'assurer (toujours avec le datasheet) que le pi peut :
-fournir la tension nécessaire
-fournir l’intensité nécessaire
Si la tension de commande est supérieure à la tension que peut fournir le pi (3.3V sur un GPIO), comment adapter la tension ? Quelques composants passifs et une alimentation externe à la bonne tension va nous le permettre.
Les deux images ci-dessous montrent un même circuit. Les cercles verts représentent des voltmetres. A gauche est mesurée la tension fournie par le GPIO, à droite la tension obtenue.
L'exemple permet de produire une tension de contrôle de 9V à partir d'un GPIO.
Ici, le GPIO envoie "faux" sous la forme de 0V (quelques micro-volts mesurées), et la tension de contrôle restituée reste de 0V (quelques millivolts mesurés).
Ici, le GPIO envoie "vrais" sous la forme de 3.3V (3.3V mesurés), et la tension de contrôle restituée est de 9V (9V mesurés).
Le choix des transistors se fait en lisant leurs datasheet respectif. Les 2N2222 font l'affaire jusque 30V.
Ces transistors "s'ouvent" et se "ferment" à priori assez vite (il faudra le vérifier par la pratique) pour permettre la pulsation type PWM.
PS : un grand merci evotk pour son aide (c'est un euphémisme !) à la mise au point !
Cordialement,
Vague Nerd
Vague Nerd
Re: [TUTORIEL] Contrôler un composant externe à partir d'un
Hello,
Voici comment contrôler un relais 12V via un GPIO :
Nomenclature :
Transistor NPN : 2N2222
Résistances : 1x 4,7kohms / 1x 10kohms
Diode : 1N4148
Voici comment contrôler un relais 12V via un GPIO :
Nomenclature :
Transistor NPN : 2N2222
Résistances : 1x 4,7kohms / 1x 10kohms
Diode : 1N4148
- vague nerd
- Modérateur
- Messages : 1473
- Enregistré le : mar. 14 oct. 2014 11:42
- Localisation : France !
Re: [TUTORIEL] Contrôler un composant externe à partir d'un
Salu evo.
Pourquoi il a fallu mettre une porte Non dans le premier montage alors ?
Je regarderai ça à tête reposée... barre dans le crane !
Cdt.
EDIT : Ben oui, je suis c**, le relais a des ports "normalement ouvert" et "normalement fermé"... Bonne soirée!
Pourquoi il a fallu mettre une porte Non dans le premier montage alors ?
Je regarderai ça à tête reposée... barre dans le crane !
Cdt.
EDIT : Ben oui, je suis c**, le relais a des ports "normalement ouvert" et "normalement fermé"... Bonne soirée!
Cordialement,
Vague Nerd
Vague Nerd
Re: [TUTORIEL] Contrôler un composant externe à partir d'un
Sur le 1er exemple tu récupère un niveau logique ( inversé ) au niveau du transistor
Sur mon exemple on active un relais via le transistor
Sur mon exemple on active un relais via le transistor
Re: [TUTORIEL] Contrôler un composant externe à partir d'un
Bonjour,
J'utilise le composant ULN2803APG http://phlag.info/download/uln2003apg.pdf pour commander des relais
J'utilise le composant ULN2803APG http://phlag.info/download/uln2003apg.pdf pour commander des relais
- vague nerd
- Modérateur
- Messages : 1473
- Enregistré le : mar. 14 oct. 2014 11:42
- Localisation : France !
Re: [TUTORIEL] Contrôler un composant externe à partir d'un
@phlag : merci pour votre contribution
@tous : phlag nous montre l'utilisation d'un module relais associé à l'ULN2803APG , quand evo nous montre une solution pour contrôler un relais seul à l'aide de composants 'simples'.
Mon premier post montre comment contrôler par exemple un module relais (reste à alimenter le module relais).
@tous : phlag nous montre l'utilisation d'un module relais associé à l'ULN2803APG , quand evo nous montre une solution pour contrôler un relais seul à l'aide de composants 'simples'.
Mon premier post montre comment contrôler par exemple un module relais (reste à alimenter le module relais).
Cordialement,
Vague Nerd
Vague Nerd
- vague nerd
- Modérateur
- Messages : 1473
- Enregistré le : mar. 14 oct. 2014 11:42
- Localisation : France !
Re: [TUTORIEL] Contrôler un composant externe à partir d'un
Bonjour.
Je commute un module relais à l'aide du schéma du premier post (repris ci dessous, avec pin gpio à vrais - 3,3V) :
L’alimentation n'est pas du 9V mais du 5V, fournis par une alimentation externe.
Justement, cette alimentation est elle nécessaire ? Le pin 5V du pi ne ferait-il pas l'affaire ? La consommation du petit montage est très faible, non ?
Cdt.
Je commute un module relais à l'aide du schéma du premier post (repris ci dessous, avec pin gpio à vrais - 3,3V) :
L’alimentation n'est pas du 9V mais du 5V, fournis par une alimentation externe.
Justement, cette alimentation est elle nécessaire ? Le pin 5V du pi ne ferait-il pas l'affaire ? La consommation du petit montage est très faible, non ?
Cdt.
Cordialement,
Vague Nerd
Vague Nerd
Re: [TUTORIEL] Contrôler un composant externe à partir d'un
Sur mon a+ j'utilise un gpio pour contrôler un relais 5v directement avec le 5v du pi sans probleme
- vague nerd
- Modérateur
- Messages : 1473
- Enregistré le : mar. 14 oct. 2014 11:42
- Localisation : France !
Re: [TUTORIEL] Contrôler un composant externe à partir d'un
Mouais, j'aurai pu y penser plus tôt ! Tu me l'as peut-être dit ailleurs, en plus...
Et le plus drôle, c'est que même le pi est inutile pour l'utilisation actuelle (bon, ça va changer): un module PIR détecte le mouvement, pour activer un module relais relais ! Et on ne se moque pas !
Cdt.
Et le plus drôle, c'est que même le pi est inutile pour l'utilisation actuelle (bon, ça va changer): un module PIR détecte le mouvement, pour activer un module relais relais ! Et on ne se moque pas !
Cdt.
Cordialement,
Vague Nerd
Vague Nerd
-
- Raspinaute
- Messages : 315
- Enregistré le : jeu. 12 nov. 2015 17:39
- Localisation : Bourges (18)
Re: [TUTORIEL] Contrôler un composant externe à partir d'un GPIO
Une petite confirmation mais on est bien d'accord que l'on relie la masse du Pi avec la masse du 5V sur ces schéma ?