RISOLTO comandare rele tramite arduino

buona sera vorrei comandare 8 rele tra cui 5 rele devono funzionare impulsivi (cioe mi deve dare un contatto per 1 secondo e poi si deve riaprire ) e 3 passo passo , tutto tramite scheda ethernet io ho un modulo shield w 5100 mi servirebbe la programmazione mi potete aiutare
grazie e scusate

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

Se metti il codice che fino ad ora hai scritto (... mi raccomando, in conformità al regolamento, punto 7, racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> ... primo a sinistra) e spieghi cosa c'è che non va ... magari possiamo aiutarti ... ::slight_smile:

Guglielmo

Scusami ma io non capisco come fuunsuona questo forum non riasco.neanche a capire come si risponde il cross point che cos e non lo capisco

Ho letto il regolamento e mi scuso nuovamente

Bene, ora se vogliamo proseguire ... hai letto quanto ti ho chiesto al post #2 ?

Guglielmo

Stasera lo rileggo per bene con tranquillita perche non voglio piu sbagliare

spero di non sbagliare mi funziona una sola volta e poi impazzisce.

[/

#include <SPI.h>
#include <Ethernet.h>
 
boolean statop1 = false;
boolean statop2 = false;
boolean statop3 = false;
boolean statop4 = false;

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 177 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
 
String readString;
 
//////////////////////
 
void setup(){

  pinMode(7, OUTPUT); //pin selected to control
  digitalWrite(7,HIGH);
  pinMode(6, OUTPUT); //pin selected to control
  digitalWrite(6, HIGH);
  pinMode(5, OUTPUT); //pin selected to control
  digitalWrite(5,HIGH);
  pinMode(3, OUTPUT); //pin selected to control
  digitalWrite(3, HIGH);
  //start Ethernet
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();
  Serial.begin(9600);
  Serial.println("Domotic Server test 1.0"); // so I can keep track of what is loaded
}
 
void loop(){
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
 
        //read char by char HTTP request
        if (readString.length() < 100) {
 
          //store characters to string
          readString += c;
          //Serial.print(c);
        }
 
        //if HTTP request has ended
        if (c == '\n') {
 
          ///////////////
          Serial.println(readString); //print to serial monitor for debuging
 
          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();
 
          client.println("<!DOCTYPE html><html><head><meta name='apple-mobile-web-app-capable' content='yes'><meta name='apple-mobile-web-app-status-bar-style' content='black-translucent'><link rel='stylesheet' type='text/css' href='http://homeautocss.net84.net/a.css'><TITLE>Domotic Home Controller</TITLE></HEAD><BODY><H1>Domotic Home Controller</H1><hr>
<ul><li><p align=\"left\">Light 1:<a href=\"/?light1on\">Turn On</a><a href=\"/?light1off\">Turn Off</a></li></p>

<li><p align=\"left\">Light 2:<a href=\"/?light2on\">Turn On</a><a href=\"/?light2off\">Turn Off</a></li></p>

<li><p align=\"left\">Light 3:<a href=\"/?light3on\">Turn On</a><a\"/a></li></p>

<li><p align=\"left\">Light 4:<a href=\"/?light4on\">Turn On</a><a \"/a></li></p>

</ul></BODY></HTML>");
         
 
          delay(1);
          //stopping client
          client.stop();
 
          ///////////////////// control arduino pin
          if(readString.indexOf("?light1on") >0)//checks for on
          {
            statop1 = true;
          }
          if(readString.indexOf("?light1off") >0)//checks for off
          {
            statop1 = false;
           
          }
          if(readString.indexOf("?light2on") >0)//checks for on
          {
            statop2 = true;
          }
          if(readString.indexOf("?light2off") >0)//checks for off
          {
            statop2 = false;
          }
          if(readString.indexOf("?light3on") >0)//checks for on
          {
            statop3 = true;
          }
          
          if(readString.indexOf("?light4on") >0)//checks for on
          {
            statop4 = true;
          
          }  
         if ( statop1  == true)
           {
            digitalWrite(7,LOW );
          
           }
         if ( statop1 == false)
           {
            digitalWrite(7, HIGH);
           
           }
         if(statop2 == true)
          {
            digitalWrite(6, LOW);            
          }
         if(statop2 == false)
          {
            digitalWrite(6, HIGH);            
          }
         if(statop3 == true)
          {
            digitalWrite(5, LOW);
            delay(200);
            digitalWrite(5,HIGH); 
                       
          }
          
          if(statop4 == true)
          {
            digitalWrite(3, LOW); 
            delay(200);
            digitalWrite(3,HIGH);
                     
          }
          
          //clearing string for next read
          readString="";
 
        }
      }
    }
  }
}
]

Scommetto che alimenti la scheda relè con i 5V di Arduino ?

no ho un alimentatore esterno da 5 v

Puoi mettere uno schema dei collegamenti ? Anche un disegno fatto a mano, purché comprensibile, che includa sia le alimentazioni che i segnali.

Guglielmo

come faccio a caricare un immagine ?

Due possibilità ...

  1. la carichi su uno dei tanti server pubblici di immagini e poi la inserisci nel post con l'apposito bottone (quello subito dopo la tavolozza colori)

  2. se è di dimensioni inferiori a 1.2MB la puoi allegare al post con l'apposito bottone in basso a sinistra "Attachments and other options"

Guglielmo

questi sono i collegamenti che ho fatto , il codice che ho inserito ti sembra giusto?

  1. Quei 5V da dove e cosa arrivano ?
  2. Come alimenti Arduino ?
  3. Non vedo il GND dell'alimentatore 5V collegato con il GND di Arduino
  4. Che scheda relè è ? link

I 5 v arrivano da un alimentatore a spina , arduino viene alimentato da un alimentatore a spina .

poi io non penso che sia un problema di alimentazione o di collegamenti perché se carico uno schech in cui tutti e 4 i relay mi funzionano on off mi funsiona perfettamente al momento in cui modifico lo schech e aggiungo il tempo per far diventare il rele che mi chiude il contatto per un secondo , una volta funziona perfettamente la seconda ogni volta che schiaccio un tasto mi da sempre un inpulso sia al relay 3 e sia al 4 contemporaneamente anche se accendo il rele 1 mi da l inpulso al 1 ,3 ,4 insieme

Ho trovato quale il problema , ho caricato lo schect con tutti i 4 relay on e off e nel rele 3 e 4 o messo che su on mi danno un inpulso solo , e qui funziona tutto perfettemente se io ho on al rele 4 lui mi fa un inpulso e si ferma pero io devo sciacciare anche il tasto off per fermarlo completamente se no qualunque tasto io sciaccio lui mi da sempre un inpulso come faccio a configurare che nel broser se sciaccio e on appena lascio diventa off in automatico ? Mi potete aiutare vi ringrazio in anticipo

indistruttibile:
Ho trovato quale il problema , ho caricato lo schect con tutti i 4 relay on e off e nel rele 3 e 4 o messo che su on mi danno un inpulso solo , e qui funziona tutto perfettemente se io ho on al rele 4 lui mi fa un inpulso e si ferma pero io devo sciacciare anche il tasto off per fermarlo completamente se no qualunque tasto io sciaccio lui mi da sempre un inpulso come faccio a configurare che nel broser se sciaccio e on appena lascio diventa off in automatico ? Mi potete aiutare vi ringrazio in anticipo

L'italiano non è poi cosi' indistruttibile :o
Non ho capito nulla.

Devo configurare che nella pagina web il tasto per far eccitare il rele mi diiventi tipo un pulsante se schiaccio e on se lascio diventi off. Io sopra volevo spiegare il difetto che mi fa , ce qualche modo per fare cio sulla pagina web???