gpio mode 15 out   //passe la patte 15 en sortie
 
gpio mode 15 in    // passe la patte 15 en entrée
 
gpio write 15 0      // état bas sur la patte 15
 
gpio write 15 1      //état haut sur la patte 15

# What Raspberry Pi revision are we running?  
GPIO.RPI_REVISION    #  0 = Compute Module, 1 = Rev 1, 2 = Rev 2, 3 = Model B+  
  
# What version of RPi.GPIO are we running?  
GPIO.VERSION  

http://wiringpi.com/the-gpio-utility/

gpio readallgpio

resistance pull-up / down internes 

gpio mode 0 up
gpio mode 0 down
gpio mode 0 tri

mode BCM_GPIO

gpio -1 mode 5 out



/////////////////////////////////////////////////////////////////////
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_UP)
while True:
if(GPIO.input(23) ==1):
print(“Button 1 pressed”)
if(GPIO.input(24) == 0):
print(“Button 2 pressed”)
GPIO.cleanup()

////////////////////////////////////////////////////////////////////
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_UP)
while True:
GPIO.wait_for_edge(23, GPIO.RISING)
print(“Button 1 Pressed”)
GPIO.wait_for_edge(23, GPIO.FALLING)
print(“Button 1 Released”)
GPIO.wait_for_edge(24, GPIO.FALLING)
print(“Button 2 Pressed”)
GPIO.wait_for_edge(24, GPIO.RISING)
print(“Button 2 Released”)
GPIO.cleanup()

/////////////////////////////////////////////////////////////

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_UP)
def printFunction(channel):
print(“Button 1 pressed!”)
print(“Note how the bouncetime affects the button press”)
GPIO.add_event_detect(23, GPIO.RISING, callback=printFunction, bouncetime=300)
while True:
GPIO.wait_for_edge(24, GPIO.FALLING)
print(“Button 2 Pressed”)
GPIO.wait_for_edge(24, GPIO.RISING)
print(“Button 2 Released”)
GPIO.cleanup()



GPIO.remove_event_detect(23)



#!/usr/bin/env python2.7
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)

# Le GPIO 23 est initialisé en entrée. Il est en pull-up pour éviter les faux signaux
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)

print "Veuillez vérifier que vous avez un bouton connecté de telle maniere"
print "qu il connecte le port GPIO 23 (pin 16) au GND (pin 6)\n"
raw_input("Pressez Entree quand vous etes pret\n>")

print "En attente de signal sur le port GPIO 23"
# a partir de la, le script ne fera plus rien jusqu a ce que 
# le signal sur le port 23 commence à chuter vers zéro. C'est
# la raison pour laquelle nous avons utilisé le pull-up pour 
# garder le signal "HIGH" et empecher un faux signal

print "Pendant ce temps votre Rapsberry Pi ne gaspille pas" 
print "de ressources en attendant un appui sur le bouton.\n"
print "Pressez le bouton quand vous voulez lancer un signal."
try:
    GPIO.wait_for_edge(23, GPIO.FALLING)
    print "\nAppui detecte. Maintenant votre script va"
    print "effectuer l'action correspondant a un appui sur le bouton."
except KeyboardInterrupt:
    GPIO.cleanup()       # reinitialisation GPIO lors d'une sortie CTRL+C
GPIO.cleanup()           # reinitialisation GPIO lors d'une sortie normale

Si on regarde les commentaires dans le code, on s’aperçoit qu’on vient de créer un : « j’attends que le port GPIO 23 soit relié au GND lors d’un appui sur le bouton, si c’est le cas j’affiche un message et je quitte le script ».

Bien sûr, on peut parfaitement modifier le script afin de faire faire ce que l’on veut à notre bouton. C’est d’ailleurs le sujet d’un autre tutoriel, qui enseigne comment utiliser ce bouton un peu plus efficacement pour éteindre proprement le Raspberry Pi.

///////////////////////////////////////////////

#!/usr/bin/env python2.7

# on importe les modules necessaires
import time
import os
import RPi.GPIO as GPIO

# on met RPi.GPIO en mode notation BCM (numero des pins)
GPIO.setmode(GPIO.BCM)

# on initialise le GPIO 23 en mode ecoute
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)

# on definit notre fonction qui sera appelee quand on appuiera sur le bouton
def extinction(channel):
     # on affiche un petit message pour confirmer
     print("Appui détecté sur le GPIO 23")
     GPIO.cleanup(
     # on reinitialise les GPIO
     # on lance la commande d extinction
     os.system('sudo halt')

# on met le bouton en ecoute
GPIO.add_event_detect(23, GPIO.FALLING, callback=extinction)

# on lance une boucle infinie, pour garder le script actif
while 1:
     # une petite pause entre chaque boucle, afin de réduire la charge sur le CPU
     time.sleep(0.02)

# on reinitialise les ports GPIO en sortie de script
GPIO.cleanup()

////////////////////////////////////////////////////////////////////////

PIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP)


GPIO.wait_for_edge(23, GPIO.RISING)
GPIO.wait_for_edge(24, GPIO.FALLING)

GPIO.add_event_detect(23, GPIO.RISING, callback=printFunction, bouncetime=300)


LOW: 0V - 1.19V
HIGH: 1.34V - 3.30V

http://raspberrypihobbyist.blogspot.fr/2012/09/gpio-input-circuit_19.html

http://www.raspberrypi.org/forums/viewtopic.php?t=57180&p=431926

open collector

BC337    resistance serie sur la base de 1Kohm
