Pagina 1 di 2
Modulo relè si eccita all'avvio del RPi Pico

Inviato:
21 dic 2022, 20:14
da savo98
Buonasera a tutti,
da neofita ho realizzato il mio primo programma in micropython.
Utilizzo un modulò con 8 relè.
Il programma funziona correttamente, tranne quando alimento il raspberry pi Pico e mi si attivano tutti i relè.
Come evito questo problema?
All'accensione del RPi Pico devono essere tutti diseccitati!
Non so più come risolvere.
Ho già provato a settare i relè su low sia nel while True che prima di quel ciclo, ma nulla.
Grazie mille
Re: Modulo relè si eccita all'avvio del RPi Pico

Inviato:
21 dic 2022, 20:22
da speedyant
Prova apostare il programma.
Hai modo di fare verifiche strumentali senza "carichi", ovvero il solo Pico senza schede relè?
Re: Modulo relè si eccita all'avvio del RPi Pico

Inviato:
21 dic 2022, 20:42
da djnz
E magari vediamo anche quali relé e collegati come.
Re: Modulo relè si eccita all'avvio del RPi Pico

Inviato:
21 dic 2022, 20:45
da stefanopc
Che tipo di rele stai utilizzando?
Disegna uno schema di una singola uscita.
La scheda relè e la scheda del micro sono alimentate con un singolo alimentatore?
Le masse come sono collegate?
Ciao
Re: Modulo relè si eccita all'avvio del RPi Pico

Inviato:
21 dic 2022, 20:59
da savo98
Di seguito il programma:
- - -
nota mod.: listato eliminato, è riproposto in #9.
- - -
I relè sono collegati ai 5v del RPi (per ora li ho provati sempre e solo senza carico, quindi non è quello il problema)
Re: Modulo relè si eccita all'avvio del RPi Pico

Inviato:
21 dic 2022, 21:00
da savo98
I "low" e gli "high" sono invertiti, perché non sapevo che bastava scollegare il GND del modulo relè.
Comunque anche se stacco il GND, mi restano eccitati i relè appena accendo il rasp. Poi appena clicco il pulsante , fa il suo ciclo giusto ed è come se resettasse tutti i relè e poi funziona giusto
Re: Modulo relè si eccita all'avvio del RPi Pico

Inviato:
21 dic 2022, 21:03
da savo98
stefanopc ha scritto:Che tipo di rele stai utilizzando?
Disegna uno schema di una singola uscita.
La scheda relè e la scheda del micro sono alimentate con un singolo alimentatore?
Le masse come sono collegate?
Ciao
Sono alimentati tramite il rasp.
Il modulo relè è collegato al gnd del rasp
Re: Modulo relè si eccita all'avvio del RPi Pico

Inviato:
21 dic 2022, 21:16
da djnz
Il programma non è leggibile. Per non perdere l'indentazione va racchiuso tra i tag [code]
Re: Modulo relè si eccita all'avvio del RPi Pico

Inviato:
21 dic 2022, 21:30
da savo98
Scusatemi, non ricordavo
p.s. vi ricordo che per eccitare un relè utilizzo ".low()" e per diseccitarlo ".high" perché ho scoperto dopo che mi bastava togliere il GND sul modulo dei relè. (sarà una modifica successiva questa)
Ora mi interessa che i relè non si eccitino tutti all'avvio del rasp
- Codice: Seleziona tutto
import machine, onewire, ds18x20, utime
#lista GPIO relè (output)
relay_resistenza = machine.Pin(28, machine.Pin.OUT)
relay_macinino = machine.Pin(16, machine.Pin.OUT)
relay_dosatore = machine.Pin(17, machine.Pin.OUT)
relay_motorid = machine.Pin(18, machine.Pin.OUT)
relay_pompa = machine.Pin(19, machine.Pin.OUT)
relay_ev_caldaia = machine.Pin(20, machine.Pin.OUT)
#lista GPIO input
micro_gruppo = machine.Pin(13, machine.Pin.IN, machine.Pin.PULL_DOWN)
button_caffe_corto = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_DOWN)
ds_pin = machine.Pin(1)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
roms = ds_sensor.scan()
counter_corto = 0
posizione_micro = 0 #se = 0 non è premuto, se = 1 è premuto
ciclo_macinatura = 0 #se = 1 l'ha eseguita
while True :
######## imposta relè spenti appena acceso il raspberry ########
######## controllo temperatura caldaia e attivaz./disattivaz. resistenza ########
ds_sensor.convert_temp()
utime.sleep(0.5)
for rom in roms:
temp = round (ds_sensor.read_temp(rom),2)
print (temp, "Celsius")
utime.sleep(0.5)
if temp < 93:
relay_resistenza.low()
if temp > 95:
relay_resistenza.high()
######## controllo del microinterruttore per motoriduttore del gruppo ########
if micro_gruppo.value()==1:
utime.sleep(0.1) ##############################################################modificare a 0.01 finite le prove
posizione_micro = 1
print("posizione micro: schiacciato")
if micro_gruppo.value()==0:
utime.sleep(0.1) ##############################################################modificare a 0.01 finite le prove
posizione_micro = 0
print("posizione micro: non schiacciato")
######## ciclo erogazione caffè ########
if button_caffe_corto.value()==1: #quando viene premuto tasto caffè corto
counter_corto = 1
utime.sleep(0.1)
print("Erogazione caffè corto")
while counter_corto == 1 and posizione_micro == 0 and ciclo_macinatura == 0:
utime.sleep(1)
relay_macinino.low() #Macinino ON
print("Macinino ON")
utime.sleep(3)
relay_macinino.high() #Macinino OFF
print("Macinino OFF")
utime.sleep(2)
relay_dosatore.low() #Dosatore ON
print("Dosatore ON")
utime.sleep(1.5)
relay_dosatore.high() #Dosatore OFF
print("Dosatore OFF")
utime.sleep(1)
ciclo_macinatura=1
while counter_corto == 1 and posizione_micro == 0 and ciclo_macinatura == 1:
relay_motorid.low() #Motorid. gruppo ON
print("Motorid. gruppo ON")
utime.sleep(0.1)
posizione_micro=0
while micro_gruppo.value()==1 and ciclo_macinatura == 1: #quando il micro viene premuto
posizione_micro = 1
print("Micro premuto")
relay_motorid.high() #Motorid. gruppo OFF
print("Motorid. gruppo OFF")
utime.sleep(1) #aspetta 1 secondo
relay_pompa.low() #Pompa ON
relay_ev_caldaia.low() #Ev Caldaia ON
print("Pompa e EV caldaia ON")
utime.sleep(5) ##############################################################Ancora da regolare dose del caffè corto
relay_pompa.high() #Pompa OFF
relay_ev_caldaia.high() #Ev Caldaia OFF
print("Pompa e EV caldaia OFF")
utime.sleep(2) ##############################################################Settare tempo attesa sgocciolamento
relay_motorid.low() #Motorid ON
print("Motorid gruppo ON")
utime.sleep(5) ##############################################################Ancora da regolare tempo ritorno motorid. alla posizione principale
relay_motorid.high() #Motorid OFF
print("Motorid gruppo OFF")
utime.sleep(1)
print("Erogazione caffè corto completata")
posizione_micro = 0
counter_corto = 0
ciclo_macinatura=0
Re: Modulo relè si eccita all'avvio del RPi Pico

Inviato:
21 dic 2022, 21:41
da savo98
Ho il sospetto che il modulo a 8 relè che ho comprato su amazon sia stato un precedente reso, poiché c'era il ponticello giallo mezzo scheggiato.
Probabilmente aveva questi problemi e il venditore ha cercato di rifilarmela dietro.
A meno che io non conosca un preciso comando o che abbia sbagliato a caricare il programma sul rasp, nella mia scarsissima esperienza non vedo errori