• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
puro lettura contatto dello del stato

Lettura dello stato del contatto puro
#1
Vorrei capire come fare in modo che il raspberry possa capire se un contatto puro di un relé é aperto oppure chiuso.
In pratica vorrei realizzare un impianto domotica ibrido, nel senso che la stessa lampadina (comandata da un relé a 2 contatti, uno NA, uno NC) potrei accenderla sia tramite pulsante fisico che tramite raspberry. La mia idea è quella di usare il contatto NA del relé per accedere la lampadina sia dal pulsante che dal raspberry, mentre vorrei usare il contatto NC del relé per far leggere al raspberry se la lampadina è accesa oppure spenta. Qualcuno saprebbe spiegarmi come fare in modo che il raspberry legga lo stato di questo contatto NC?

Grazie

Inviato dal mio ANE-LX1 utilizzando Tapatalk
Risposta
#2
Si può fare, ma non è il massimo dal punto di vista della sicurezza e semplicità.
La soluzione che consiglio, è di realizzare un rilevatore di tensione optoisolato come spiegato nella guida https://www.raspberryitaly.com/sensore-l...-tensione/

Inviato dal mio A0001 utilizzando Tapatalk
Risposta
#3
Ciao Zzed, in primis grazie per la tua sempre pronta disponibilita' a chiarire qualsiasi dubbio.
La tua potrebbe essere una buona soluzione ma non e' l'ideale per il mio scopo in quanto il raspberry dovra' leggere lo stato delle luci acces/spente ma anche ad esempio motori elettrici, elettrovalvole, etc.
Inoltre non capisco perche la mia soluzione non sarebbe il massimo dal punto di vista della sicurezza.
Il raspberry dovra' leggere solo lo stato di un contatto puro, quindi per come la vedo io sotto l'aspetto della sicurezza non ci sono problemi. Magari mi sfugge qualcosa?
Risposta
#4
Leggi la guida con attenzione. Il RaspberryPi non "legge" la luce della lampadina, ma di una spia che andrai a collegare in parallelo al carico (che siano luci, motori, elettrovalvole ecc.)
Per quello lo ritengo un sistema consigliabile
Diversamente il problema c'è, perché RaspberryPi non può leggere lo sadto di un contatto, può leggere un valore logico: 0 (se con tensione tra 0 e 1,65V) oppure 1 (se con tensione tra 1,66V e 3,3V). Ogni tensione più alta, distrugge il RaspberryPi.
Quindi dovresti collegare la fase al contatto comune del relè, un dispositivo che riduca (e raddrizzi) la tensione a 3,3V DC massimo collegato tra NC e neutro, il cui positivo andrà al pin RaspberryPi e il negativo alla massa di RaspberryPi.
Avresti un dispositivo (trasformatore/raddrizzatore) sempre alimentato quando il carico è spento, e continuità elettrica tra la rete elettrica e i pin del GPIO (cioè uno sbalzo di tensione si può tradurre in un picco da 3,5V e danneggiare RaspberryPi

Inviato dal mio A0001 utilizzando Tapatalk
Risposta
#5
Zzed mi hai convinto.. sono d'accordo con te e quindi optero' per la soluzione led e sensore di luce dentro un contenitore completamente isolate da luci esterne. Pero' mi sorge un dubbio: posso mettere il sensore di luce distante circa 30 metri dal raspberry oppure ho problemi di cadute di tensioni sul cavo che mi collega il sensore alla scheda GPIO?
Risposta
#6
(10/05/2019, 06:27)Phablo Ha scritto: Vorrei capire come fare in modo che il raspberry possa capire se un contatto puro di un relé é aperto oppure chiuso.
Non si fa così: per quello che tu chiami contatto puro (pulito) passerà una tensione uguale a quella dell'utilizzatore. Cioè 230Vac.
Solo alcuni tipi di rélè hanno ANCHE una serie di contatti (a bassa tensione) per avere il cosiddetto "contatto pulito".
Quindi il consiglio di usare un optoisolatore adeguato era non solo sensata ma anche l'unica facilmente attuabile da un non esperto.
Comunque, sconsiglio di mettere le mani sul 230V a chiunque non sia un professionista...


(10/05/2019, 07:50)Zzed Ha scritto: RaspberryPi non può leggere lo sadto di un contatto, può leggere un valore logico: 0 (se con tensione tra 0 e 1,65V) oppure 1 (se con tensione tra 1,66V e 3,3V). Ogni tensione più alta, distrugge il RaspberryPi.
Attento, scrivi una cosa del tutto sbagliata: l'ingresso digitale non funziona così.
Da osservare la tabella alla fine della pagina
https://www.raspberrypi.org/documentatio.../README.md

Se la tensione in ingresso è minore di Vil l'ingresso vale 0;
se la tensione è maggiore di Vih l'ingresso vale 1;
se la tensione resta (per un certo tempo) tra i due valori il valore non è determinato e la porta può creare problemi.
Risposta
#7
La risposta tecnica dipende dalla sezione dei cavi. La risposta pratica è fino a 50m vai tranquillo

Inviato dal mio A0001 utilizzando Tapatalk
Risposta
#8
Ok grazie mille

Inviato dal mio ANE-LX1 utilizzando Tapatalk
Risposta
#9
(10/05/2019, 07:14)Zzed Ha scritto: Si può fare, ma non è il massimo dal punto di vista della sicurezza e semplicità.
La soluzione che consiglio, è di realizzare un rilevatore di tensione optoisolato come spiegato nella guida https://www.raspberryitaly.com/sensore-l...-tensione/

Inviato dal mio A0001 utilizzando Tapatalk

Ciao Zzed, avrei bisogno del tuo supporto, in pratica sto realizzando un rilevatore di tensione optoisolato cosi come spiegato nella guida (https://www.raspberryitaly.com/sensore-l...-tensione/), sostanzialmente:

Definisco con
  • R1=fotoresistenza
  • R2= Resistenza da 10Kohm
  • R3=Resistenza da 1Kohm
  • R4=Resistenza da 1Kohm
  • Rs=R3+R4 (resistenze collegate in serie)
Setting GPIO:
  • Pin 8 settato come input
Collegamenti:
  • Pin1 della GPIO entra in R2
  • Uscita R2:
    - va ad un polo della R1- va ad un polo della Rs
  • L'altro polo di R1 va al GND della GPIO (Pin 6)
  • L'altro polo della Rs va al pin 8 della GPIO

Codi python per rilevare se il led e' acceso oppure spento:
Codice:
def getStatus():
   GPIO.setup(8,GPIO.IN)
   a=GPIO.input(8)
   print(str(a))
   if a==1:
       print("led ACCESO")
   if a==0:
      print("led SPENTO")

Il problema e' ogni volta che accendo oppure spengo il led la funzione "getStatus()" mi da sempre "led acceso".

In sostanza il valore della variabile a e' sempre pari a 1.

Dove sbaglio?????


Grazie
Risposta
#10
Dai numeri che mi dai deduco che ti riferisci alla numerazione dei pin "fisici".
premesso che io ho usato un sensore di luce a cui ho allungato i piedini della fotoresistenza, Lo schema (se ho ben capito) è corretto, credo il problema sorga dal pin 8 (GPIO14) che è quello usato di default per la UART e, di serie, vi è abilitata la console seriale.
con sudo raspi-config disabilita la console seriale e vedi se funziona. Cambiare pin può essere la soluzione più veloce.
Se hai dubbi su funzionamento della parte elettronica puoi utilizzare un LED invece del pin 8 per vedere se lo stato acceso/spento cambia a seconda della luce sulla fotoresistenza.
Per Python, perchè usare ancora Rpi.GPIO, quando gpiozero offre strumenti più a alto livello molto più semplici da usare?
con a = LightSensor(14) già istruisci che il pin 8 (la cui numerazione GPIO è 14) sarà un ingresso e vi sarà collegato un sensore di luce e volendo puoi impostarne dei parametri specifici
https://gpiozero.readthedocs.io/en/stabl...sensor-ldr
Risposta
  


Vai al forum:


Navigazione: 4 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect