Login

Test

azerty.

Magpi 06 -page 11

With a change in resistor values the FET status can remain unchanged if the button is pressed when the GPIO is set as output.

Eg: if R1 is 330Ω and the switch is connected through about 4k7Ω the Vgs will still be in excess of 3.0v with the button pressed if GPIO pin is output set high.

2N7000s are available for 10p each. Other, superb devices are now available. Some like the 2SK4043LS can switch pulses of 80A with as little as 2.5v Vgs. A single transistor could never do that as driven by the PI. And the 2SK3018, a surface mount device designed for small Vgs conditions like here in the PI.

 

 

CODE

 

There is a lot to be said for the FET in this application.

Clive Tombs

 

Editors Note
We love hearing from our readers. If you have a comment on an article or a cool Raspberry Pi related tip to share, please send it to us and we'll try to get it in an upcoming issue.

 

 

DID YOU KNOW?
The "In Control" series in issues 2, 3 and 4 is a great place to start and learn how to use the GPIO. If you have not started yet but want to have a go, there have been some updates to the RasPi GPIO Python library that you need to know before starting.


1) The RasPi GPIO library can now be easily
installed with:
$sudo apt-get install python-rpi.gpio
or
$sudo apt-get install python3-rpi.gpio

2) Add the following line to each program:

Import RPI.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)

Avec un changement des valeurs de résistance, l'état du FET peut rester inchangé si le bouton est enfoncé lorsque le GPIO est mis en sortie.

Par exemple: si R1 vaut 330Ω et que le bouton est connecté via 4k7Ω, Vgs sera toujours au-delà de 3.0V avec le bouton enfoncé si la sortie GPIO est à l’état haut.

Les 2N7000s sont disponibles pour 10 cts. D'autre superbes composants sont maintenant disponibles. Certains, comme le 2SK4043LS peuvent commuter des courants de 80A avec un petit Vgs de 2.5V. Un simple transistor commandé par le PI ne pourrait jamais faire ça. Le 2SK3018, est un CMS (composant monté en surface) conçu pour des conditions Vgs de faible valeur comme ici avec le PI.

 

CODE

 

Il y a beaucoup à dire sur le FET dans cette application

Clive Tombs

 

Note de l’éditeur.
Nous aimons recevoir le courrier de nos lecteurs. Si vous avez un commentaire sur un article, ou une astuce en rapport avec le RPI à partager, s'il vous plaît envoyez les nous, et nous essaierons de les prendre en compte dans un prochain numéro.


LE SAVIEZ-VOUS ?
La série d’articles "In Control" des numéros 2, 3 et 4 est excellente pour débuter et apprendre à utiliser les GPIO. Si vous n'avez pas encore commencé, mais que vous voulez vous lancer, il y a eu quelques mises à jour de la librairie Python Raspi GPIO dont vous avez besoin avant de commencer.

1) La librairie Raspi GPIO peut maintenant être facilement installée avec:
$sudo apt-get install python-rpi.gpio
ou
$sudo apt-get install python3-rpi.gpio

2) Ajoutez les lignes suivantes à chaque programme:

Import RPI.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)

Magpi 06 -page 10

Star Letter: An FET Buffer

Stage for GPIO Access

In response to the "IN Control" article from Issue 4, Clive Tombs shares his own example of connecting to GPIO pins.

Introduction

Following on from the issue 4 article on transistors, I would like to describe my use of the 2N7000 Enhancement FET. I used this device only because I had some on hand from previous projects. Other types could be better suited as I will explain later.

Their use provides some interesting behaviours to buffer circuits which may prove beneficial in some applications.


The data sheet can be found here: http://pdf1.alldatasheet.com/datasheetpdf/view/2842/MOTOROLA/2N7000.html

Now, the FET's Gate is, in simplistic terms, insulated from the Source and Drain connections. Only the voltage relative to the Source (Vgs) is important. Once again I state in simplistic terms. Even if the GPIO pin is configured as an INPUT with the Pi's own Pull Up or Down resistors active, the FET will change state due to the extremely high input impedance of the FET.

From the data-sheet it can been seen that at around Vgs of 2.5v at room temperature the device starts to conduct. By 3.3v it can certainly operate an LED or small relay. As I
stated above other FETs may be more suitable in their Vgs characteristics.


Now consider the following application: Test all inputs at start-up. Very simple code can be written to test all used inputs at start-up.

 

By pulling the inputs up then down and testing for the condition in software and visually for an LED flash one can verify both the wiring and the buffer FET.

 

 

This may seem trivial, but if the LED were replaced with the start circuit for some equipment which must be started in a correct sequence, this code would eliminate the FET as a source of error. As a maintenance engineer I like diagnostics to make my life easier!


It also has the advantage that one GPIO can be used for both input and output with, in Fig 1's case, a visual indication of button press too.


This is my first ever stab at a Python script. It is bound to be very inelegant, but it just about does what we need. It has been tested in Python 3 only. Try running it with a finger on the button to simulate an input being stuck.

Of course one could arrange the switch to pull the input up. That way the LED would not be on all the time. Script adjustments will be necessary.

La lettre du mois: Un buffer FET

Etape pour l'accès GPIO

En réponse à l'article "In Control" du numéro 4, Clive Tombs partage son propre exemple de connexion aux broches du GPIO.

Introduction

Suite à l'article sur le transistor dans le numéro 4, je tiens à vous décrire mon utilisation du FET 2N7000. J'ai utilisé ce type de composant uniquement parce que j'en avais sous la main de projets antérieurs. D'autre types pourraient être mieux adaptés comme je l'expliquerai plus tard.

L'utilisation de ces circuits buffer fournit d'intéressants comportements qui peuvent se révéler bénéfiques dans certaines applications.

La fiche technique peut être trouvée ici: http://pdf1.alldatasheet.com/datasheetpdf/view/2842/MOTOROLA/2N7000.html

Maintenant, la Grille du FET est, pour parler simplement, isolée de la Source et du Drain. Seule la tension par rapport à la Source (Vgs) est importante. Une fois de plus je simplifie les choses. Même si la broche GPIO est configurée comme une entrée avec ses propres résistances de Pull UP ou Pull Down activées, le FET changera d'état en raison de son impédance d'entrée extrêmement élevée.

Dans La fiche technique on peut voir que pour Vgs autour de 2.5V et à température ambiante, le composant commence à conduire. Avec 3.3V il peut certainement piloter une LED ou un petit relais. Comme je l'ai dit au début, d'autres FET peuvent être plus adaptés avec leurs caractéristiques Vgs.

Considérons maintenant l'application suivante: testez toutes les entrées au démarrage. Un code très simple peut être écrit pour tester toutes les entrées utilisées au démarrage.

On peut vérifier à la fois le câblage et le buffer FET, en tirant les entrées vers le haut (pull up) puis vers le bas (pull down) et en vérifiant leurs états dans le logiciel et visuellement par l'état de la LED.

 

 Cela peut sembler trivial, mais si la LED est remplacée par le circuit de démarrage de certains équipements qui doivent être démarrés dans le bon ordre, ce code éliminerait le FET comme source d'erreur. En tant qu'ingénieur de maintenance j'aime que le diagnostic me facilite la vie!

L'avantage, c'est que l'on peut utiliser cette GPIO à la fois en entrée et en sortie, et,  dans le cas de la figure 1, on a ainsi une indication visuelle de l'appui sur le bouton.

Ceci est ma première tentative de script en Python. Il est forcément très inélégant, mais il fait à peu près ce dont nous avons besoin. Il a été testé en Python 3 seulement. Essayez de l'exécuter avec un doigt sur le bouton pour simuler une entrée bloquée.

Bien sûr, on pourrait faire en sorte que  l'interrupteur tire l'entrée vers le haut . De cette façon, la LED ne serait pas allumée tout le temps. Un ajustement du script sera nécessaire.

 Page 10

Mag pi 6 code page 11

English

Français

#!/usr/bin/pyton
#Input test with visual indication
import RPi.GPIO as GPIO
import time

#Change to BCM GPIO Numbering
GPIO.setmode(GPIO.BCM)

#(pull_up_down be PUD_OFF, PUD_UP or
# PUD_DOWN, default PUD_OFF)
GPIO.setup(4, GPIO.IN, pull_up_down = GPIO.PUD_UP)

# test for pin able to go high
if GPIO.input(4):
    print ('input True Good')
    time.sleep(0.2)
    GPIO.setup(4, GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
else:
    print ('Fault input - pin4')
    time.sleep(1)
    quit()

# test for pin able to go low
if GPIO.input(4):
    print ('Faulty Input - pin4')
    time.sleep(1)
    quit()
else:
    print ('Input False Good')
    time.sleep(1)

#if it gets to here, inputs' states
#are both achievable
print ('Inputs tested Good')

#commence the buton demo

print('Press the Button')

while True:

    # set the pin high and
    # wait for button press
    GPIO.setup(4, GPIO.IN,pull_up_down=GPIO.PUD_UP)

    # button pressed
    if not GPIO.input(4):
        print ('button pressed')
        time.sleep(1)

        # button released
        if GPIO.input(4):
            print ('button pressed')
            flash = 20
            GPIO.setup(4, GPIO.OUT)

            # flash until
            while flash > 0:
                GPIO.output(4, true)
                time.sleep(0.1)
                GPIO.output(4, false)
                time.sleep(0.1)
                flash -=1

            print('press buton')

#!/usr/bin/pyton
#Test d'une entrée avec indication visuelle
import RPi.GPIO as GPIO
import time

#Utilisation de la numérotation BCM du GPIO
GPIO.setmode(GPIO.BCM)

#(pull_up_down peut valoir PUD_OFF, PUD_UP ou
#PUD_DOWN, PUD_OFF par défaut)
GPIO.setup(4, GPIO.IN, pull_up_down = GPIO.PUD_UP)

# test si la broche peut atteindre l'état haut
if GPIO.input(4):
    print ('Entrée à l'état haut -Correct')
    time.sleep(0.2)
    GPIO.setup(4, GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
else:
    print ('Entrée en défaut - pin4')
    time.sleep(1)
    quit()

# test si la broche peut atteindre l'état bas
if GPIO.input(4):
    print ('Entrée en défaut - pin4')
    time.sleep(1)
    quit()
else:
    print ('Entrée à l'état bas -Correct')
    time.sleep(1)

#Si on arrive ici , Les états haut et bas des entrées
#sont atteignables
print ('Test des entrées - Correct')

# Début de la démo avec le bouton

print('Appuyez sur le bouton')

while True:

    # Positionner l'entrée à l'état haut et
    # attendre un appui sur le bouton
    GPIO.setup(4, GPIO.IN,pull_up_down=GPIO.PUD_UP)

    # bouton enfoncé
    if not GPIO.input(4):
        print ('bouton enfoncé')
        time.sleep(1)

        # Bouton relaché
        if GPIO.input(4):
            print ('Bouton relaché')
            flash = 20
            GPIO.setup(4, GPIO.OUT)

            # Tant que flash >0 (20 fois)
            while flash > 0:
                GPIO.output(4, true)
                time.sleep(0.1)
                GPIO.output(4, false)
                time.sleep(0.1)
                flash -=1

            print('Appuyez sur le bouton')

Mag Pi 6 - page 10 et 11: FET Buffer

La lettre du mois: Un buffer FET

Etape pour l’accès GPIO

En réponse à l'article "In Control" du numéro 4, Clive Tombs partage son propre exemple de connexion aux broches du GPIO.

Introduction

Suite à l'article sur le transistor dans le numéro 4, je tiens à vous décrire mon utilisation du FET 2N7000. J'ai utilisé ce type de composant uniquement parce que j'en avais sous la main de projets antérieurs. D'autre types pourraient être mieux adapté comme je l'expliquerai plus tard.

L’utilisation de ces circuits buffer fournit d'intéressants comportements qui peuvent se révéler bénéfiques dans certaines applications.

La fiche technique peut être trouvée ici: http://pdf1.alldatasheet.com/datasheetpdf/ view/2842/MOTOROLA/2N7000.html

Maintenant, la Grille du FET est en termes simples, isolée de la Source et du Drain. Seule la tension par rapport à la Source (Vgs) est importante. Une fois de plus je dit en termes simples. Même si la broche GPIO est configurée comme une entrée avec ses propres résistances de Pull UP ou Pull Down activées, le FET Changera d’état en raison de son impédance d’entée extrêmement élevée.

Dans La fiche technique on peut voir que pour Vgs autour de 2.5V et à température ambiante, le composant commence à conduire. Avec 3.3V il peut certainement piloter une LED ou petit relais. Comme je l’ai dis au début, d'autre FET peuvent être plus adapté avec leurs caractéristiques Vgs.

Considérons maintenant l'application suivante: Testez toutes les entrées au démarrage. Un code très simple peut être écrit pour tester toutes les entrées utilisées au démarrage. En tirant les entrées vers le haut (pull up) puis vers le bas (pull down) et le test de la condition dans le logiciel et visuellement l’état de la LED, on peut vérifier à la fois le câblage et le buffer FET.

 

Figure1 FET Buffer

 

Figure 1: FET Buffer

 Cela peut sembler trivial, mais si la LED est remplacée par le circuit de démarrage de certains équipements qui doivent être démarrés dans le bon ordre, ce code permettrait d'éliminer le FET source d'erreur. En tant qu'ingénieur de maintenance j'aime que le diagnostic me facilite la vie!

Il a également l'avantage que l'on peut utiliser cette GPIO à la fois en entrée et en sortie, et aussi dans le cas de la figure 1, une indication visuelle de pression sur le bouton.

Ceci est ma première tentative de script en Python. Il est forcément très inélégant, mais il fait à peu près ce dont nous avons besoin. Il a été testé en Python 3 seulement. Essayez de l'exécuter avec un doigt sur le bouton pour simuler une entrée bloquée.

Bien sûr, on pourrait organiser l'interrupteur pour tirer l’entrée vers le haut . De cette façon, la LED ne serait pas allumée tout le temps. Un ajustement du script sera nécessaire.

Page 10

 

Avec un changement des valeurs de résistance, l'état du FET peut rester inchangé si le bouton est enfoncé lorsque le GPIO est mis en sortie.

Par exemple: si R1 vaut 330Ω et que le bouton est connecté via 4k7Ω, Vgs sera toujours au-delà de 3.0V avec le bouton enfoncé si la sortie GPIO est à l’état haut.

Les 2N7000s sont disponibles pour 10 cts. D'autre part, de superbes composants sont maintenant disponibles. Certains, comme le 2SK4043LS peuvent commuter des courants de 80A avec un petit Vgs de 2.5V. Un simple transistor commandé par le PI ne pourrait jamais faire ça. Le 2SK3018, est un CMS (composant monté en surface) conçu pour des conditions Vgs de faible valeur comme ici avec le PI.

Il y a beaucoup à dire sur le FET dans cette application

Clive Tombs

Note de l’éditeur.

Nous aimons recevoir le courrier de nos lecteurs. Si vous avez un commentaire sur un article, ou une astuce en rapport avec le RPI à partager, s'il vous plaît envoyez les nous, et nous essaierons de les prendre en compte dans un prochain numéro.


LE SAVIEZ-VOUS ?

La série d’articles "In Control" des numéros 2, 3 et 4 sont excellents pour commencer à apprendre à utiliser les GPIO. Si vous n'avez pas encore commencé, mais que vous voulez vous lancer, il y a eu quelques mises à jour de la librairie Python Raspi GPIO que vous devez savoir avant de commencer.

1) La librairie Raspi GPIO peut maintenant être facilement installée avec:

$sudo apt-get install python-rpi.gpio

2) Ajoutez les lignes suivantes à chaque programme:

Import RPI.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)

Page 11