cimbro
Posts: 3
Joined: Thu Jan 24, 2013 5:23 pm

PULSANTE CHE PILOTA UN LED

Thu Jan 24, 2013 6:39 pm

Ho acquistato la raspberry tipo B e volevo accendere un led collegato al pin 7 quando viene premuto un pulsante collegato al pin 23. Volevo realizzarlo in python ma ho riscontrato parecchi errori. il software per farlo lampeggiare funziona quindi diciamo che le librerie delle gpio e tutti i pacchetti sono installati. E' solamente un problema di programmazione. Ho acquistato una guida di principianti di python però la sintassi per le gpio è del tutto personalizzata per la raspi.
Volevo sapere dando per scontato che il collegamento elettrico sia corretto se qualcuno sa indicarmi una guida per python adattata a raspi e come fare per tenere il led acceso prima di premere il pulsante.

import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)

GPIO.setup(23, GPIO.IN) #abilita come ingresso il pin 23 per il pulsante
GPIO.setup(7, GPIO.OUT) #abilita come uscita il pin 7 come del LED


while True: #finchè verificata la condizione di
GPIO.input(23) #ingresso 23 ALTO
GPIO.output(7, True) #porta alta l'uscita di pin 7 sul LED accendendolo


else: #altrimenti condizione implicita pulsante premuto e ingresso 23 basso
GPIO.output(7, False) #uscita 7 bassa e quindi led spento

ldellaquila
Posts: 35
Joined: Sat Sep 01, 2012 2:20 pm

Re: PULSANTE CHE PILOTA UN LED

Thu Jan 24, 2013 10:31 pm

Ciao cimbro,

direi che qui ci manca qualcosina:

Code: Select all

while True: #finchè verificata la condizione di
GPIO.input(23) #ingresso 23 ALTO
GPIO.output(7, True) #porta alta l'uscita di pin 7 sul LED accendendolo


else: #altrimenti condizione implicita pulsante premuto e ingresso 23 basso
GPIO.output(7, False) #uscita 7 bassa e quindi led spento
questo codice non compila, ti manca l'IF corrispondente all'ELSE. Questo dovrebbe essere il codice corretto:

Code: Select all

while True: #cicla per sempre
    if GPIO.input(23): # se ingresso 23 e' ALTO (pulsante alzato)
        GPIO.output(7, True) #porta alta l'uscita di pin 7 sul LED accendendolo
    else: #altrimenti condizione implicita pulsante premuto e ingresso 23 basso
        GPIO.output(7, False) #uscita 7 bassa e quindi led spento
occhio all'indentazione, in python e' fondamentale!!!

ciao

Luigi
Raspberry Pi Mod.B Rev.1 256Mb Ram
Raspberry Pi Mod.B Rev.2 512Mb Ram

cimbro
Posts: 3
Joined: Thu Jan 24, 2013 5:23 pm

Re: PULSANTE CHE PILOTA UN LED

Wed Jan 30, 2013 9:06 pm

Grazie mille funziona...happy

Code: Select all

#voglio acendere un led all'inizio esecuzione programma e spegnerlo premendo il pulsante 

import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)

GPIO.setup(23, GPIO.IN) #abilita come ingresso il pin 23 per il pulsante
GPIO.setup(7, GPIO.OUT) #abilita come uscita il pin 7 come del LED

while True: #cicla per sempre
	if GPIO.input(23): # se ingresso 23 e' ALTO (pulsante alzato)
	 GPIO.output(7, False) #porta alta l'uscita di pin 7 sul LED accendendolo
	 print"HAI PREMUTO IL PULSANTE"
	else: #altrimenti condizione implicita pulsante premuto e ingresso 23 basso
 	 GPIO.output(7, True) #uscita 7 alta led acceso
	 print"ATTESA PULSANTE"
Ora però nn capisco come mai nella logica debba invertire gli eventi,
del tipo (se condizione finale ....altrimenti inizio della condizione)
Nn mi sn piegato bene ma senza vederlo è difficile. funziona come descritto nelle prime righe ma i valori true e false sono invertiti e anche le condizioni if else.

bruciafili
Posts: 3
Joined: Thu Mar 28, 2013 4:52 pm

Re: PULSANTE CHE PILOTA UN LED

Thu Mar 28, 2013 7:06 pm

Ciao Cimbro,

Io ho utilizzato questo schema elettrico:
Image
con il pin 3 configurato come input

ma non mi rimane sempre nello stato alto :?

mi potresti dire se il tuo circuito è analogo?

grazie Marco

Antivirusvivente
Posts: 130
Joined: Fri Dec 07, 2012 4:01 pm
Location: Bari
Contact: Website

Re: PULSANTE CHE PILOTA UN LED

Fri Mar 29, 2013 4:44 pm

Devi collegare così l'interruttore:

http://pi4j.com/images/gpio-trigger-example-large.png

Dopodiché ti programmi le GPIO e fai le tue prove.
Per potersi adattare all'utilizzo delle API o di librerie già pronte non occorre studiare delle guide, ma conoscere le basi della programmazione

Puoi usare la stessa impostazione dell'immagine, non dovresti avere grossi problemi
DomoHome is coming! - RaspberryPi ~ Raspbian ~ Android
https://www.facebook.com/pages/Domohome/155791057916884

bruciafili
Posts: 3
Joined: Thu Mar 28, 2013 4:52 pm

Re: PULSANTE CHE PILOTA UN LED

Sat Mar 30, 2013 12:47 pm

Grazie Antivirusvivente,

lo schema che mi ha postato è molto chiaro, anche se ho risolto utilizzando il PIN 7 come imput e non il 3

Saluti BruciaFili

PS.: Auguri di buona Pasqua

Return to “Italiano”