User avatar
gpio
Posts: 26
Joined: Wed Dec 03, 2014 10:19 pm
Location: Gran Canaria :: Spain

[Resuelto] Switch con Pi4J

Fri Dec 05, 2014 9:00 pm

Hola,

He probado con python y con pi4j a imprimir por pantalla el cambio de estado del pin que tengo conectado a un switch pero no lo consigo.

Tengo conectado un cable al GPIO2 y otro al GND, es del último intento que hice con Pi4J en concreto el ejemplo ListenGpioExample:

/opt/pi4j/examples/$ pi4j --run ListenGpioExample

+ sudo java -classpath '.:classes:*:classes:/opt/pi4j/lib/*' ListenGpioExample
<--Pi4J--> GPIO Listen Example ... started.
... complete the GPIO #02 circuit and see the listener feedback here in the console.

Me he cansado de pulsar el botón y de hasta juntar los cables pero nunca llego a ver la salida de System.out.println(" --> GPIO PIN STATE CHANGE: " + event.getPin() + " = "
+ event.getState());

¿Alguna idea de qué puede ser?

Saludos

PD: También he probado con UsageGpioExample y con el led no hay problema pero con el switch pasa lo mismo, lo pulso y no hace nada.

http://pi4j.com/pins/model-b-rev2.html
Last edited by gpio on Sat Dec 06, 2014 10:29 am, edited 1 time in total.

User avatar
gpio
Posts: 26
Joined: Wed Dec 03, 2014 10:19 pm
Location: Gran Canaria :: Spain

Re: Switch con Pi4J

Fri Dec 05, 2014 10:45 pm

Use este código en python y funciona tanto el led como el switch, pero con pi4j no me funciona ni el ejemplo ni la implementación en mi proyecto.

El switch que en el código de python está en el pin 23 en pi4j he utilizado RaspiPin.GPIO_04
Y para el led en que estaba en el pin 25 en pi4j he utilizado RaspiPin.GPIO_06, para no mover los cables, pero tampoco me funcionó.

¿Alguna idea de que puede ser?

Code: Select all

#!/usr/bin/env python

import time
import RPi.GPIO as GPIO

def main():

    # tell the GPIO module that we want to use the 
    # chip's pin numbering scheme
    GPIO.setmode(GPIO.BCM)

    # setup pin 25 as an output
    GPIO.setup(23,GPIO.IN)
    GPIO.setup(24,GPIO.OUT)
    GPIO.setup(25,GPIO.OUT)


    GPIO.output(25,True)

    while True:
        if GPIO.input(23):
             # the button is being pressed, so turn on the green LED
             # and turn off the red LED
             GPIO.output(24,True)
             GPIO.output(25,False)
             print "button true"
        else:
             # the button isn't being pressed, so turn off the green LED
             # and turn on the red LED
             GPIO.output(24,False)
             GPIO.output(25,True)
             print "button false"

        time.sleep(0.1)

    print "button pushed"

    GPIO.cleanup()



if __name__=="__main__":
    main()


Esta es la versión de Pi4J que tengo insalada en la raspberry pi B rev.2:

--------------------------------------------
THE Pi4J PROJECT
--------------------------------------------
VERSION : 1.0-SNAPSHOT
TIMESTAMP : 2014-11-29 12:31:41
--------------------------------------------

Return to “Español”