Pages: [1] 2 3 4   Go Down
Author Topic: Controllo luce 220v  (Read 4992 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti, mi sono avvicinato al mondo di arduino da poco (quasi 2 mesi), dopo aver sperimentato con i progetti di base e con internet( fonte inesauribile di informazioni) mi sono buttato a capofitto nel progetto di controllare un punto luce 220v via web (un classico) visto che però voglio mantenere anche il controllo individuale da pulsante ho utilizzato per il progetto:
1 pulsante
1 rele passo passo ( o a impulsi) con bobina da 220v
1 rele board 5v
1 arduino UNO + ethernet shield
arduino (tramite ethernet shield) crea una pagina web con un pulsante su un indirizzo nella rete locale, premendo il pulsante da browser viene eccitata per 0,1 secondi il rele da 5v che manda un impulso al passo passo che accende la luce, stessa cosa se si preme il pulsante, inoltre in questo modo il pulsante funziona anche nel caso in cui arduino non funzionasse correttamente.
bene, tutto questo in teoria perchè purtroppo sto risontrando qualche problema, funziona tutto finche non inserisco la 220, senza il 220 il relè funziona perfettamente, inserendo la 220 invece premo il pulsante nel browser, il contatto scatta MA non finisce il caricamento della pagina fino a bloccarsi completamente (come se arduino si scollegasse dalla rete).
non so se mi sono spiegato bene, di seguito il circuto( scusate la qualità ma sono agli inizi) e il codice
ringrazio tutti per questa splendida piattaforma spero che mi possiate aiutare per risolvere questo problema che probabilmente per voi è banale.
Quote
//Aggiungo le librerie necessarie
#include <SPI.h>
#include <Ethernet.h>
#include <WebServer.h>

//definiamo due arrey: il primo per definire l'indirizzo mac, il secondo per definire l'indirizzo IP.
//Per quanto riguarda l'indirizzo IP selezionate un indirizzo valido per la vostra rete locale.
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = {192, 168, 0, 220};

//definiamo la porta di ascolto
WebServer webserver("", 80);

//Definico Pin
const int pin_luce1_stato_invio = 6;     // pin adibito al controllo stato invio
const int pin_luce1_stato_ricevi = 7;     // pin adibito al controllo stato ricezione
const int pin_luce1 = 5;

//Variabili
int luce1 = 0;
int stato_luce1 = 0;     

//avviamo il server e settiamo tutte le variabili relative a luce1 e stato_luce1 in ON e in OFF
void Start(WebServer &server, WebServer::ConnectionType type,
           char *url_param, bool param_complete)
{
  server.httpSuccess();
  if (type != WebServer::HEAD)
  {
    String s = "";
     if (param_complete == true)
    {
      s = url_param;
     
      if ( s == "luce1=ON")
      {
        luce1 = 1;
        digitalWrite(pin_luce1, HIGH);
      delay(100);
      digitalWrite(pin_luce1, LOW);
      }
      else if ( s == "luce1=OFF")
      {
        luce1 = 0;
        digitalWrite(pin_luce1, HIGH);
      delay(100);
      digitalWrite(pin_luce1, LOW);
      }
    }

    //Generazione della pagina HTML
    P(htmlHead) =
    "<html>"
    "<head>"
    "<title>Controllo luci stanza</title>"
    "<META HTTP-EQUIV='Refresh' CONTENT='5; url=http://192.168.0.220'>"
    "</head>"
    "<body>";

    server.printP(htmlHead);
     server.print("<br /><p align=\"center\">Controllo Luci Stanza</p><p align=\"center\"><table border=\"1\" width=\"500\" cellpadding=\"1\"cellspacing=\"1\" bordercolor=\"#0000FF\"><br /><br />");

    if(luce1 == 1)
      server.print("<tr><td style=\"color: red;background: #99CC33;\" valign=\"middle\" >Luce 1 ON</td><td>");
    else
      server.print("<tr><td style=\"color: black;\" valign=\"middle\" >Luce 1 OFF</td><td>");
 
    if(luce1 == 0)
      server.print("<input type=\"button\" value=\"Accendi\" onclick=\"location.href='index.htm?luce1=ON'\">");
    else
      server.print("<input type=\"button\" value=\"Spegni\" onclick=\"location.href='index.htm?luce1=OFF'\">");

    server.print("</td></tr>");
    server.print("</table></p></body></html>");

  }
}

void setup()
{
  //inizializzo l'ethernet shield con il mac e il address
  Ethernet.begin(mac, ip);
  webserver.setDefaultCommand(&Start);
  webserver.addCommand("index.htm", &Start);

  //avvia il server web
  webserver.begin();
  delay(100);

  //definisci i pin output
  pinMode(pin_luce1_stato_invio, OUTPUT);
  pinMode(pin_luce1, OUTPUT);

  //definisci i pin input ancora non lo uso servirà in seguito
  pinMode(pin_luce1_stato_ricevi, INPUT);

  //impostiamo le uscite a livello LOW
  digitalWrite(pin_luce1, LOW);
}

void loop()
{
  webserver.processConnection();
}



nello schema
F =fase
N =neutro
I =pulsante
A= arduino
R1 = rele board 5 v
R2 =rele passo passo


* Foto 29-01-13 08 34 01.jpg (2437.58 KB, 1936x2592 - viewed 131 times.)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mi è stata notificata una risposta ma non la vedo più, è sparita oppure ho le allucinazioni? smiley-eek smiley-eek
comunque mi sembra di capire che la soluzione migliore è di inserire un condensatore "al 220", quindi dove? nell'uscita del rele passo passo prima prima della lampada?
adesso è collegata ( per test) una lampada da tavolo e non una lampada "normale" però il circuito è pensato per comandare sia una luce che una presa (con tutto quello che ci può essere collegato).
dove posso ordinare il condensatore?
quali sono le specifiche?
grazie in anticipo a tutti!

ps: chiedo hai moderatori di spostare il topic se necessario, forse la sezione "software" non è la più appropriata (pensavo che ci fosse un errore nel codice..)
« Last Edit: February 04, 2013, 08:41:56 am by oloc » Logged

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3438
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ti avevo risposto io, ma ho ritenuto il caso di eliminare la risposta
1) perchè era una ripetizione
2) perchè non sembravi molto interessato

Comunque ho visto che l'hai letto  smiley-grin (15 minuti dopo che l'ho scritto)
Si ci andrebbe un condensatore in parallelo all'utenza
Logged

no comment

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hai ragione ma purtroppo dal cellulare non è molto comodo rispondere e aspettavo la sera per tornare davanti al pc.. smiley-confuse
non ho chiaro dove deve essere posizionato il condensatore, seguendo lo schema fatto da me (ok, forse schema è esagerato chiamarlo ) dove andrebbe posizionato?
che valori deve avere?

grazie mille per la disponibilità!  smiley-mr-green
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3438
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://arduino.cc/forum/index.php/topic,140280.0.html
post n°9 c'è l'immagine, va in parallelo al carico tra F-N

Prova, il componente costa pochissimo e potrebbe risovere molte rogne, fammi sapere

ciao
Logged

no comment

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ti ringrazio per l'interessamento guardo se in questi giorni riesco a trovare il condensatore (0,22 microfarad 400v poliestere giusto?)
leggendo mi pare di capire che potrei risolvere anche adottando delle relay board con inclusi un Optoisolatore ( tipo questa : http://arduino-direct.com/sunshop/index.php?l=product_detail&p=156 ), sbaglio?
ciao! smiley-mr-green
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

questo condensatore è l'equivalente vero?
http://it.rs-online.com/web/p/condensatori-in-poliestere/0335044/
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3438
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
leggendo mi pare di capire che potrei risolvere anche adottando delle relay board con inclusi un Optoisolatore
Ammesso che il disturbo che ti ritrovi sia dato dall'attivazione del carico sulla linea 220vac l'optoisolatore non ti risolve, anzi con l'opto chiedi più corrente a ciscun pin rispetto che a pilotare una base di un transistor, se ci metti 8 relè optoisolati chiedi molta corrente ad arduino, io non te lo consiglio.
Io sospetto da quanto hai detto che il picco di disturbo si distribuisca sulla rete 220 essendo collegato un alimentatore poco filtrato sullo stesso nodo del carico che vai a comandare. L'optoisolatore non serve a niente.

quel condensatore  440Vac 0.022uF non è uno 0.22uf, ma è indicato come sopressore, potrebbe anche andare bene, io ti ho indicato quello perchè più volte ha risolto a me e ad altri, però non escludo che con quello non risolvi, prova al massimo aumenti la capacità.

Quando fai questi esperimenti comunque ti suggerisco di allontanarti e non stare col viso sopra i componenti, spesso se sono nuovi potrebbero anche essere difettosi, quindi cautela.

ciao
« Last Edit: February 07, 2013, 06:15:07 am by pablos » Logged

no comment

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, tieni presente che la relay board successivamente avrà un alimentazione separata, e arduino ci si collegherà solo con il pin necessario a eccitare la bobina, quindi posso anche pensare di usare una relay board con Optoisolatore se secondo te può essermi utile.
comunque stasera quando rientro ( o al massimo domani) provo ad alimentare arduino con un alimentatore da pc attaccato ad un altra linea 220 e vediamo che succede.
ti tengo informato!
Logged

Milan, Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 349
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quando ho realizzato l'ardupower mi hanno consigliato l'inserimento di un condensatore sui relè, vedi schema link firma.
Un altro problema, che non ho avuto, è quello dei disturbi dovuti alla vicinanza dei fili tra 220 e bassa tensione, se vedi la costruzione dell'ardupower tutti i fili della 220/carichi/potenza sono a sinistra, e i relè sono collegati tramite circuito stampato, i fili ai led sono tutti sulla destra, è un caso che abbia realizzato così il montaggio, ma secondo me aiuta molto tenere distanti i fili del carico da quelli dei segnali.
Logged


Tuscany
Offline Offline
Edison Member
*
Karma: 80
Posts: 2168
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
..... 4 on/off arduino mi ha lasciato

poteva anche fare di peggio.... chiederti  gli alimenti !
Logged

Milan, Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 349
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si effettivamente il condensatore antiscintilla risolve!

Vecchiopost:
Strano, è proprio come il progetto che ho realizzato, vedi sempre ardupower, e non ho mai avuto problemi, ma non è che quando chiudi i relè c'è un assorbimento eccessivo e scende così tanto la tensione di rete a 220v causando all'Arduino problemi di alimentazione?
L'ardupower l'ho installato da due anni e mezzo senza problemi, lo uso per accendere e spegnere serve.
Avevo visto che costavano tanto le prese comandabili da lan, ma non pensavo così tanto!
Quasi quasi ci metto anche un'interfaccina web e le vendo!
« Last Edit: February 08, 2013, 05:54:23 am by bigjohnson » Logged


Genova
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3438
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Strano, è proprio come il progetto che ho realizzato, vedi sempre ardupower, e non ho mai avuto problemi, ma non è che quando chiudi i relè c'è un assorbimento eccessivo e scende così tanto la tensione di rete a 220v causando all'Arduino problemi di alimentazione?
L'ardupower l'ho installato da due anni e mezzo senza problemi, lo uso per accendere e spegnere serve.
Avevo visto che costavano tanto le prese comandabili da lan, ma non pensavo così tanto!
Quasi quasi ci metto anche un'interfaccina web e le vendo!

Non sappiamo che alimentatore usa, non ha dato informazioni sufficienti per dare un parere, se usi un buon alimentatore questi hanno già i filtri, poi dipende dal tipo di carico che ci vai a mettere, il problema non ce l'hai con tutte le utenze che vai a pilotare.
Se azioni un pc è chiaro che il suo alimentatore non manderà in rete un disturbo tale da fare impazzire arduino, ma se arduino ha un alimentatore scadente e attivi poi un carico induttivo è molto probabile che dopo 2-3 volte arriva il picco fastidioso.

ciao
Logged

no comment

Milan, Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 349
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma noo, è una feature, imposti un indirizzo da pingare e se non risponde il presone stacca e attacca la presa associata all'ip, interessante!
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

acquistati i condensatori oggi pomeriggio, domani faccio varie prove e vi faccio sapere.
grazie a tutti!
Logged

Pages: [1] 2 3 4   Go Up
Jump to: