Determinare se una luce è accesa con Arduino

Salve a tutti ragazzi, spero dia ver beccato la sezione giusta.

Stavo smanettando un pò con Arduino e la 220V.

Volevo sapere se c'era un modo per far capire ad Arudino che la Luce x è accesa.

Mi spiego meglio, la mia idea è quella di fare un programmino che si colleghi ad Arduino tramite LAN ad esempio e gli DICA spegni la luce 1 che sarà collegata al PIN 13.

Arduino andrà a verificare se La luce è accesa nel caso la spegnerà. Per realizzare questo so bene che ho bisogno di un Rele ogni pulsante collegato alla LUCE X sarà collegato ad un Rele quindi arduino sarà collegato a questo RELE come se fosse un ulteriore pulsante fisico a muro (anche se sarà virtuale). La cosa che mi lascia perplesso è come fare a far capire ad Arduino che la luce è accesa, mi immagino una sorta di ciclio del tipo

while(luceaccesa == ON){
   writePin(13,1);
}

nel momento in cui la variabile luceaccesa == OFF allora andrà avanti con il suo codice...

Mi potreste gentilmente fornire indicazioni in merito?

Grazie a tutti

Beh, se Arduino deve memorizzare se la luce è accesa oppure no, è semplice. Metti una variabile a 1 quando accendi il rele e a 0 quando spegni il rele.
La memoria in Arduino la fa la tua variabile (si dice variabile di stato), magari invece di 1 e 0 un ON e un OFF.
Basta che dichiari due

#define ON 1
#define OFF 0

Però... un'altra cosa è sapere se VERAMENTE la luce è accesa/spenta. Se nell'impianto dai anche la possibilità manuale di accendere/spegnere la cosa si complica.

Si lato software non ho problemi diciamo, la cosa che voglio (forse non mi sono spiegato benissimo), è capire quando manualmente si accende la luce. La vera domanda è questa, come faccio a far capire ad Arduino che la luce è accesa?

Okay, lato software non credo puoi fare nulla. Cioè è lato HW che ci dovrà essere un segnale digitale in ingresso che dica se la luce è accesa o spenta. Lato codice userai questo input per sapere lo stato della luce.
Una idea banale è avere una fotoresistenza per sapere se la luce è accessa.
Ma un elettronico ti potrà dare una idea migliore della mia lato HW. Forse dal rele si può ricavare una informazione che dica il suo stato.
Ma credo sia importante capire che tipo di rele vuoi usare e se l'azione manuale sulla luce agisce anche sul rele.

... guarda l'allegato !

Guglielmo

P.S. : Credit to Brunello

Rilevazione tensione 220v.pdf (73.4 KB)

Ciao Gugliemo grazie, ma non capisco molto di quello che sta nell allegato, potresti spiegarmi? grazie scusa ma su alcune cose sono abbastanza indietro.

Per farvi capire io attualmente ho dei pulsanti al muro a molla che vengono cliccati e poi ritornano nella posizione originale, se uso il pulsante della camera 1 accendo la luce, se uso quello della camera 2 la spengo, se uso nuovamente quello della camera due accendo la luce.

Io dovrei collegare arduino nello stesso modo e qui ok, come faccio perlò a collegare questo rele in modo che arudino capisce che la luce è accesa?

Ci sono piú possibilitá di determinare se una utenza (lampadina) é accesa o no. Le possibilitá si distinguono nella sicurezza o incertezza di determinarlo e nella complessitá del circuito.

prendiamo l' allegato di Gugliemo
in fila ascendente riguarda la sicurezza di determinare l'acensione:

  • senza figura: memorizzi lo stato dell uscita in una variabile o leggi lo stato della uscita
  • Figura 0 (in alto a destra) controlli se l' interuttore che alimenta il relé che chiude il circuito lampada é acceso
  • Figura D controlli se il relé é attivo o no
  • Figura B e A controlli la presenza di alimentazione sulla lampadina
  • non menzionato: misuri la corrente della lampadina
  • Figura C misuri la luce che fa la lampadina

Ciao Uwe

supponiamo che volessi utilizzare la figura A, dovrei utilizzare un Foto accoppiatore quello andrebbe collegato al rele ed arduino e da li leggere i valori giusto???

Che caratteristiche deve avere questo foto accoppiatore?

Ciao,
mi trovo nella stessa situazione di bircastri.. che fotoaccoppiatore usare? La "Figura A" del PDF di gpb01 mette una resistenza in serie ad un condensatore, ma non mi è chiaro che tensione aspettarmi sui pin del componente. Vedo che esistono dispositivi da 1 a 70 volt!

Ciao e grazie,
Matteo

Risponderanno gli elettronici esperti.
Volevo solo puntualizzare una cosa: OCCHIO ALLA 220V, ci si può far male o rovinare qualche hw. :fearful:

Ho trovato questo: http://www.robot-italy.com/it/1187-acs714-current-sensor-carrier-30-to-30a.html

Secondo me potrebbe essere la soluzione con il miglior rapporto sbattimento/prezzo, che ne dite?

Ciao,
Matteo

militanz:
La "Figura A" del PDF di gpb01 mette una resistenza in serie ad un condensatore, ma non mi è chiaro che tensione aspettarmi sui pin del componente. Vedo che esistono dispositivi da 1 a 70 volt!

Occhio a non confondere la massima tensione che può pilortare con la "corrente che necessita" dal lato LED ....

Ricordatevi che da un lato avete semplicemente un LED e quel circuito RC e calcolato per limitare la CORRENTE che scorre nel LED ! ATTENZIONE ... quei capi sono comunque connessi alla rete (220V) quindi NON vanno toccati con le dita e devono essere ben isolati !!!

Dall'altro lato ... dovete solo pilotare i 5V di Arduino quindi ... anche il più scamuffo degli optoaccoppiatori ... è in grado di commutarli XD XD XD

Guglielmo

Ho trovato questo: http://www.robot-italy.com/it/1187-acs714-current-sensor-carrier-30-to-30a.html

Secondo me potrebbe essere la soluzione con il miglior rapporto sbattimento/prezzo, che ne dite?

Dipende da cosa c'e' collegato, con lo schema del fotoaccoppiatore controlli se c'e' una tensione ai capi del carico, con il sensore di corrente che citi controlli se appunto sta' scorrendo una corrente.
Visto che lo schemettino del fotoaccoppiatore era per controllare se uno scalda acqua era alimentato o no, non puoi usare un sensore di corrente, dato che non vi sarebbe prelievo di corrente quando il termostato ( sullo scalda acqua ) e' attivo

Ciao ragazzi, quindi come possiamo risolvere il nostro problemi ciò?

Ciao,
su un altro thread che ho aperto ieri (in inglese) è uscita questa idea, che secondo me non è niente male.

http://forum.arduino.cc/index.php?topic=228490.msg1650487#msg1650487

Ciao!
Matteo

Ciao ragazzi, scusate se riuppo questo vecchio thread aperto da me ma quando il lavoro non mi toglie tutto il tempo mi ridedico ad arduino....

Al seguente link postato precedentemente

c'è la possibilità di collegare questo sensore, al circuito per verficare se c'è corrente o meno (quindi se la lampadina è accesa oppure no).

COrretto? Quindi io potrei collegare questo ad arduino e verificare se in input sul pin 2 arriva un certo valore che se diverso da zero indica che quella luce è accesa. In questo modo potrei anche verificare i consumi??

Sul discorso consumi mi interessa relativamente... per ora mi interessa solo che riesco a capire lo stato di una luce.

Spero mi possiate aiutare

io personalmente, preferirei la soluzione della fig. A allegata da Guglielmo, un fotoaccoppiatore ti garantisce un buon isolamento dalla rete 220v ed è molto semplice da mettere in funzionamento. Ma anche la scheda di RobotItaly non sarebbe male, ma costa di più della soluzione a fotoaccoppiatore. Comunque sia, fai molta attenzione a cosa e come colleghi tutto, in effetti, la 220V e molto pericolosa per le persone ed arduino.

La scheda l'ho acquistata e mi dovrebbe arrivare a momenti perchè il corriere mi ha chiamato poco fa.
Una cosa però... i pin Input di arduino sono 5 se non vado errato se voglio conoscere lo stato di 10 luci come faccio???

Allora non ho fatto in tempo a scrivere che il corriere mi ha portato il pacchetto.

Domandona :

la scheda la collego nel seguente modo:
pin OUT ad una porta di input di arduino Analogica
pin VCC ai 5V di arduino
pin GND al pin GND di arduino

Poi ci sono i collegamenti della 220, qui cosa devo collegare? Supponiamo che io ho una lampada da tavolo la quale ha una classica presa con due fili. Devo spezzare un filo e con la shield fare diciamo il ponte oppure li vanno collegati entrambi i fili della lampada?

A senso dovrebbe essere uno spezzato... però

Si, il collegamento e' quello.

i pin Input di arduino sono 5 se non vado errato se voglio conoscere lo stato di 10 luci come faccio?

A parte il fatto che ti servono 10 Sensori di corrente, o passi alla Mega2560 o usi un multiplexer analogico , che trovi anche gia' montato
questo costa di meno

acs.png

Salve,
Io ho trovato questo che ad occhio mi sembra meglio per quanto riguarda l isolamento voi che dite?