Go Down

Topic: Errore codice per progetto arduino Pedana mobile (Read 2846 times) previous topic - next topic

orzowilde

Salve a tutti del forum. Mi affido alla vostra clemenza ed alla vostra esperienza per risolvere un mio problema.
Tempo fa avevo fatto dei piccoli progrettini con arduino e adesso mi hanno chiesto di movimentare un monumento del mio paese.
In poche parole dovrei far girare una pedana circolare in senso orario che si fermi 4 volte per tot secondi in punti precisi e sopra la pedana  ci sarà un cubo fisso ed uno mobile che ad ogni step della pedana deve assumere 2 posizioni, uno aperto ed uno chiuso.  Quando si arriverà all'ulrimo step la pedana deve ritornare al primo step girando in senso antiorario. Ad ogni step, inoltre, devono accendere dei faretti led che in tutto sono dieci, ma si accenderanno 2 in uno step, 3 in un altro step ecc….
Per questo progetto sto usando un arduino mega, 2 schede relè da 8 moduli per comandare 2 motori, uno per la pedana ed uno per il cubo (1 relè avanti ed uno indietro per ogni motore).
 4 finecorsa per la pedana e 2 finecorsa per il cubo.
E gli altri relè per i faretti.
Per quanto riguarda i collegamenti, gli schemi elettrici e la meccanica non ci sono problemi, il mio problema è la programmazione.
Ho abbozzato uno sketch in maniera un pò rozza e mi da errore di compilazione quando faccio verifica con l'Ide di arduino e sinceramente non so neanche se questo sketch farà funzionare tutto il sistema, sono un po' scettico.


Potete darmi una mano? Gazie anticipatamente.

Questo è il codice!

Code: [Select]
/* AUTOMAZIONE PIAZZETTA SIGNURARA
 FP1 FineCorsa primo step pedana, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FP2 FineCorsa secondo step pedana, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FP3 FineCorsa terzo step pedana, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FP4 FineCorsa quarto step pedana, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FC1 FineCorsa primo step Cubo, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FC2 FineCorsa secondo step Cubo, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
*/
 # define FP1 2    //Finecorsa1 pedana collegato al pin digitale n.2
 # define FP2 3    //Finecorsa2 pedana collegato al pin digitale n.3
 # define FP3 4    //Finecorsa3 pedana collegato al pin digitale n.4
 # define FP4 5  //Finecorsa4 pedana collegato al pin digitale n.5
 # define FC1 6    //Finecorsa1 cubo collegato al pin digitale n.6
 # define FC2 7    //Finecorsa2 cubo collegato al pin digitale n.7
 # define MPA 8    //Relè Motore avanti pedana
 # define MPI 9    //Relè Motore indietro pedana
 # define MCA 10   //Relè Motore avanti cubo
 # define MCI 11   //Relè Motore indietro cubo
 # define FPR 32  //Finecorsa RITORNO pedana collegato al pin digitale n.32
 # define LED1 22   //Faretto
 # define LED2 23   //Faretto
 # define LED3 24   //Faretto
 # define LED4 25   //Faretto
 # define LED5 26   //Faretto
 # define LED6 27   //Faretto
 # define LED7 28   //Faretto
 # define LED8 29   //Faretto
 # define LED9 30   //Faretto
 # define LED10 31   //Faretto


 int statoFP1 = 1; //Definiz. e assegnaz. delle variabili di programma
 int statoFP2 = 1;
 int statoFP3 = 1;
 int statoFP4 = 1;
 int statoFC1 = 1;
 int statoFC2 = 1;
  int RITARDO = 0;
 int STATO = 0;
 
/* STATO=0 CHIUSO
 STATO=1 AVANTI
 STATO=2 CHIUSURA
 STATO=3 APERTO-TEMPORIZZAZIONE
*/
void setup()
 {
 pinMode(FP1, INPUT); //Impostaz. dei piedini di Arduino come INPUT o OUTPUT
 pinMode(FP2, INPUT);
 pinMode(FP3, INPUT);
 pinMode(FP4, INPUT);
 pinMode(FPR, INPUT);
 pinMode(FC1, INPUT);
 pinMode(FC2, INPUT);
 pinMode(MPA, OUTPUT);
 pinMode(MPI, OUTPUT);
 pinMode(MCA, OUTPUT);
 pinMode(MCI, OUTPUT);
 pinMode(LED1, OUTPUT);
 pinMode(LED2, OUTPUT);
 pinMode(LED3, OUTPUT);
 pinMode(LED4, OUTPUT);
 pinMode(LED5, OUTPUT);
 pinMode(LED6, OUTPUT);
 pinMode(LED7, OUTPUT);
 pinMode(LED8, OUTPUT);
 pinMode(LED9, OUTPUT);
 pinMode(LED10, OUTPUT);
 }


 void loop() // VEDI DIAGRAMMA DI FLUSSO -------------
{
 digitalWrite(MPA,HIGH);
 digitalWrite(MCA,HIGH);

 }

 
   if(digitalRead(FC1)==0) //FCORSA APERTURA NON attivato
 {
 digitalWrite(MCA,LOW);
 digitalWrite(LED1,HIGH);
 delay(10000);
 }
   
if(digitalRead(FP2)==0) //FCORSA APERTURA NON attivato
 {
 digitalWrite(MPA,LOW);
 digitalWrite(LED1,HIGH);
 delay(10000);
 }
 
 
 {
 digitalWrite(MPA,HIGH);
 digitalWrite(MCI,HIGH);

 }
 {
 
      if(digitalRead(FC2)==0) //FCORSA APERTURA NON attivato
 {
 digitalWrite(MCI,LOW);
 digitalWrite(LED1,HIGH);
 delay(10000);
 }
   
 if(digitalRead(FP3)==0) //FCORSA APERTURA NON attivato
 {
 digitalWrite(MPA,LOW);
 digitalWrite(LED1,HIGH);
 delay(10000);
 }
 }
 
 {
 digitalWrite(MPA,HIGH);
 digitalWrite(MCA,HIGH);

 }
 {
 
   if(digitalRead(FC1)==0) //FCORSA APERTURA NON attivato
 {
 digitalWrite(MCA,LOW);
 digitalWrite(LED1,HIGH);
 delay(10000);
 }
   
 if(digitalRead(FP4)==0) //FCORSA APERTURA NON attivato
 {
 digitalWrite(MPA,LOW);
 digitalWrite(LED1,HIGH);
 delay(10000);
 }
 }
 
 {
 digitalWrite(MPA,HIGH);
  digitalWrite(MCI,HIGH);

 }
 {
   
   if(digitalRead(FC1)==0) //FCORSA APERTURA NON attivato
 {
 digitalWrite(MCI,LOW);
 digitalWrite(LED1,HIGH);
 delay(10000);
 }
 
 if(digitalRead(FPR)==0) //FCORSA APERTURA NON attivato
 {
 digitalWrite(MPA,LOW);
 digitalWrite(LED1,HIGH);
 delay(10000);
 }
 }

{
 digitalWrite(MPI,HIGH);

 }
 
 {
 
 if(digitalRead(FP1)==0) //FCORSA APERTURA NON attivato
 {
 digitalWrite(MPI,LOW);
 digitalWrite(LED1,HIGH);
 delay(10000);
 }
 }

gpb01

@orzowilde:  Non riesco a trovare il tuo post di presentazione ... forse è andato perso ::) ... vorrei quindi pregarti 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 attenzione il REGOLAMENTO (che magari, nel frattempo, è un po' cambiato ;)) ... Grazie. :)

Guglielmo
Search is Your friend ... or I am Your enemy !

uwefed

la funzione loop() che viene ripetuto é
Code: [Select]
void loop() // VEDI DIAGRAMMA DI FLUSSO -------------
{
 digitalWrite(MPA,HIGH);
 digitalWrite(MCA,HIGH);

 }

Tutto il resto non viene eseguito perché fuori dalla funzione loop()

Per risolvere prova di formattare il sketch bene (rientrare quando apri una parentesi) come per esempio:

Code: [Select]
void loop() // VEDI DIAGRAMMA DI FLUSSO -------------
  {
  digitalWrite(MPA,HIGH);
  digitalWrite(MCA,HIGH);
  if(digitalRead(FC1)==0)
    {
    digitalWrite(MCA,LOW);
    digitalWrite(LED1,HIGH);
    delay(10000);
    }
  }


cosí Ti accorgi se parentesi graffe sono messe nei posti sbagliati e/o mancano.

Evita il delay() e fai il pilotaggio delle diverse fasi con i finecorsa. ( gira finche il sensore x é attivato ecc.)

Ciao Uwe

orzowilde

Ciao uwefed e grazie per la risposta...

Ho sistemato un pò il tutto e mi verifica bene l'IDE...

Ti posso chiedere 2 favori?

1. Ti posso postare il codice corretto per dargli una controllata?
2. Secondo te il codice farà quello che ho descritto nella mia richiesta di aiuto?

Grazie anticipatamente per la risposta.

Code: [Select]
/* AUTOMAZIONE PIAZZETTA SIGNURARA
 FP1 FineCorsa primo step pedana, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FP2 FineCorsa secondo step pedana, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FP3 FineCorsa terzo step pedana, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FP4 FineCorsa quarto step pedana, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FC1 FineCorsa primo step Cubo, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FC2 FineCorsa secondo step Cubo, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
*/
# define FP1 2    //Finecorsa1 pedana collegato al pin digitale n.2
# define FP2 3    //Finecorsa2 pedana collegato al pin digitale n.3
# define FP3 4    //Finecorsa3 pedana collegato al pin digitale n.4
# define FP4 5  //Finecorsa4 pedana collegato al pin digitale n.5
# define FC1 6    //Finecorsa1 cubo collegato al pin digitale n.6
# define FC2 7    //Finecorsa2 cubo collegato al pin digitale n.7
# define MPA 8    //Relè Motore avanti pedana
# define MPI 9    //Relè Motore indietro pedana
# define MCA 10   //Relè Motore avanti cubo
# define MCI 11   //Relè Motore indietro cubo
# define FPR 32  //Finecorsa RITORNO pedana collegato al pin digitale n.32
# define LED1 22   //Faretto
# define LED2 23   //Faretto
# define LED3 24   //Faretto
# define LED4 25   //Faretto
# define LED5 26   //Faretto
# define LED6 27   //Faretto
# define LED7 28   //Faretto
# define LED8 29   //Faretto
# define LED9 30   //Faretto
# define LED10 31   //Faretto


int statoFP1 = 1; //Definiz. e assegnaz. delle variabili di programma
int statoFP2 = 1;
int statoFP3 = 1;
int statoFP4 = 1;
int statoFC1 = 1;
int statoFC2 = 1;
int RITARDO = 0;
int STATO = 0;

/* STATO=0 CHIUSO
 STATO=1 AVANTI
 STATO=2 CHIUSURA
 STATO=3 APERTO-TEMPORIZZAZIONE
*/
void setup()
{
  pinMode(FP1, INPUT); //Impostaz. dei piedini di Arduino come INPUT o OUTPUT
  pinMode(FP2, INPUT);
  pinMode(FP3, INPUT);
  pinMode(FP4, INPUT);
  pinMode(FPR, INPUT);
  pinMode(FC1, INPUT);
  pinMode(FC2, INPUT);
  pinMode(MPA, OUTPUT);
  pinMode(MPI, OUTPUT);
  pinMode(MCA, OUTPUT);
  pinMode(MCI, OUTPUT);
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);
  pinMode(LED6, OUTPUT);
  pinMode(LED7, OUTPUT);
  pinMode(LED8, OUTPUT);
  pinMode(LED9, OUTPUT);
  pinMode(LED10, OUTPUT);
}


void loop() // VEDI DIAGRAMMA DI FLUSSO -------------
{
  digitalWrite(MPA, HIGH);
  digitalWrite(MCA, HIGH);


  if (digitalRead(FC1) == 0) //FCORSA APERTURA NON attivato
  {
    digitalWrite(MCA, LOW);
    digitalWrite(LED1, HIGH);
    delay(10000);
  }

  if (digitalRead(FP2) == 0) //FCORSA APERTURA NON attivato
  {
    digitalWrite(MPA, LOW);
    digitalWrite(LED1, HIGH);
    delay(10000);
  }


  digitalWrite(MPA, HIGH);
  digitalWrite(MCI, HIGH);

  if (digitalRead(FC2) == 0) //FCORSA APERTURA NON attivato
  {
    digitalWrite(MCI, LOW);
    digitalWrite(LED1, HIGH);
    delay(10000);
  }

  if (digitalRead(FP3) == 0) //FCORSA APERTURA NON attivato
  {
    digitalWrite(MPA, LOW);
    digitalWrite(LED1, HIGH);
    delay(10000);
  }

  digitalWrite(MPA, HIGH);
  digitalWrite(MCA, HIGH);


  if (digitalRead(FC1) == 0) //FCORSA APERTURA NON attivato
  {
    digitalWrite(MCA, LOW);
    digitalWrite(LED1, HIGH);
    delay(10000);
  }

  if (digitalRead(FP4) == 0) //FCORSA APERTURA NON attivato
  {
    digitalWrite(MPA, LOW);
    digitalWrite(LED1, HIGH);
    delay(10000);
  }


  digitalWrite(MPA, HIGH);
  digitalWrite(MCI, HIGH);


  if (digitalRead(FC1) == 0) //FCORSA APERTURA NON attivato
  {
    digitalWrite(MCI, LOW);
    digitalWrite(LED1, HIGH);
    delay(10000);
  }

  if (digitalRead(FPR) == 0) //FCORSA APERTURA NON attivato
  {
    digitalWrite(MPA, LOW);
    digitalWrite(LED1, HIGH);
    delay(10000);
  }


  digitalWrite(MPI, HIGH);


  if (digitalRead(FP1) == 0) //FCORSA APERTURA NON attivato
  {
    digitalWrite(MPI, LOW);
    digitalWrite(LED1, HIGH);
    delay(10000);
  }
}

orzowilde

Salve a tutti, ho fatto decine di prove con il codice postato che secondo me era corretto, ma mi sto pian piano convincendo (dopo tante ricerche su internet) che non è affatto funzionante. Il mio problema è che non riesco a far capire ad Arduino cosa deve fare. Ci sarebbe qualcuno disposto a darmi una mano per farmi capire come impostare il mio progetto?

Grazie anticipatamente.

gpb01

Guarda, il mio consiglio è di buttare tutto, ricominciare da capo e ... FARE UN PASSO ALLA VOLTA ...
... cercare di fare tutto assieme non porta mai a nulla di buono ... quindi, dividi in fasi il tuo progetto, comincia dalla prima fase (es. "far girare una pedana circolare in senso orario che si fermi 4 volte per tot secondi in punti precisi") e solo quando questa prima fase sarà perfettamente funzionante ed ottimizzata passi ad una fase successiva, e così via.

Vedrai che in questo modo arrivi a sviluppare tutto il tuo progetto ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

orzowilde

Grazie per la risposta...
Forse è  proprio questo il fatto... sono confuso...
Ho collegato su breadboard l'arduino e messo solo il codice che mi dovrebbe stoppare  il relè del motore dive ci sono i finecorsa che mu arrivano domani.
In sostituzione ho messo dei bottoni per pcb collegati in pullup con delle resistenze da 10kohm, ma l'arduino fa quello che vuole... o meglio non glielo faccio capire che deve fare...

Il problema secondo me è  che non ho capito come funzionano bene le istruzioni if o switch case...


gpb01

Guarda, potresti cominciare con lo studiare un po' più approfonditamente QUESTO e puoi scaricarti QUESTO libro (... tranquillo, è un sito legale, purché per esclusivo uso PERSONALE).

Guglielmo
Search is Your friend ... or I am Your enemy !

orzowilde

Salve a tutti!
Ho seguito il consiglio di gpb01 che gentilmente mi ha passato delle guide su cui poter approfondire in questi giorni le funzioni di arduino.

Ho tirato un pò le somme e per gestire un pò il tutto dovevo cambiare totalmente il codice proposto prima.

Ho fatto delle prove cercando di gestire solo la pedana mobile e non i cubi che poggiano sopra per semplificare un po il codice e capirci un pochino anch'io.

Il ragionamento che ho seguito a mio parere sembrava logico, ma non l'ho potuto verificare perche l'IDE mi da degli errori e oltretutto non so i comandi che devo mettere per far partire il motore.

Vi incollo il codice con la speranza che ci sia qualcuno che possa darmi una mano a capire gli sbagli e le eventuali correzioni.
Mi dispiace ma non sono un programmatore ma volenteroso nel capire :smiley-confuse: ....

Grazie

Code: [Select]
/* AUTOMAZIONE PIAZZETTA SIGNURARA
 FP1 FineCorsa primo step pedana, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FP2 FineCorsa secondo step pedana, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FP3 FineCorsa terzo step pedana, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FP4 FineCorsa quarto step pedana, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FC1 FineCorsa primo step Cubo, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
 FC2 FineCorsa secondo step Cubo, che chiuderà verso massa il circuito restituendo un livello logico zero; collegare R di pull-up (10K) tra piedino di Arduino e +5V
*/

# define FP1 2    //Finecorsa1 pedana collegato al pin digitale n.2
# define FP2 3    //Finecorsa2 pedana collegato al pin digitale n.3
# define FP3 4    //Finecorsa3 pedana collegato al pin digitale n.4
# define FP4 5  //Finecorsa4 pedana collegato al pin digitale n.5
# define FPR 8 //Finecorsa RITORNO pedana collegato al pin digitale n.8
# define MPA 9    //Relè Motore avanti pedana
# define MPI 10    //Relè Motore indietro pedana
# define LED1 13   //Faretto 13

int letturaFP1 = 1; //Definiz. e assegnaz. delle variabili di programma
int letturaFP2 = 1;
int letturaFP3 = 1;
int letturaFP4 = 1;
int letturaFPR = 1;

int FP1;
int FP2;
int FP3;
int FP4;
int FPR;
int MPA;
int MPI;
int LED1;

int FP1temp;
int FP2temp;
int FP3temp;
int FP4temp;
int FPRtemp;
int MPA;
int MPI;
int posizMPA;
int posizMPI;

int k;

unsigned long time;
unsigned long MPAtime;
unsigned long MPItime;
unsigned long letturadati;
unsigned long letturafinec_time;


void setup()
    {
     pinMode(FP1, INPUT); //Impostaz. dei piedini di Arduino come INPUT o OUTPUT
     pinMode(FP2, INPUT);
     pinMode(FP3, INPUT);
     pinMode(FP4, INPUT);
     pinMode(FPR, INPUT);
     pinMode(MPA, INPUT);
     pinMode(MPI, INPUT);
     Serial.begin(9600);

     time=millis();

     MPAtime=millis();
     MPItime=millis();
     letturadati=millis();
     letturafinec_time=millis();

     k=0;
     FP1=0;
     FP2=0;
     FP3=0;
     FP4=0;
     FPR=0;

    }

void loop()
    {
      time=millis();
        if (time>letturafinec_time+5)
          {
            FP1=digitalRead(FP1);
            FP2=digitalRead(FP2);
            FP3=digitalRead(FP3);
            FP4=digitalRead(FP4);
            FPR=digitalRead(FPR);
           
            k=k+1;
            FP1temp=FP1temp+FP1;
            FP2temp=FP2temp+FP2;
            FP3temp=FP3temp+FP3;
            FP4temp=FP4temp+FP4;
            FPRtemp=FPRtemp+FPR;
          }
     

      if(k==20)
        {
          k=0;

          letturaFP1=FP1temp/20;
          letturaFP2=FP2temp/20;
          letturaFP3=FP3temp/20;
          letturaFP4=FP4temp/20;
          letturaFPR=FPRtemp/20;

          FP1temp=0;
          FP2temp=0;
          FP3temp=0;
          FP4temp=0;
          FPRtemp=0;
                   
         
        }

       if(time>MPAtime+15)
        {
          posizMPA=digitalRead(letturaFP1);
         
          posizMPA=(posizMPA,0,1);  //Non capisco che tipo di comando devo mettere...

          digitalWrite(MPA,HIGH);  //Non capisco che tipo di comando devo mettere...
         
          MPAtime=millis();
         
        }

       if(time>letturadati+3000)
        {
          Serial.print("FP1: ");
          Serial.println(letturaFP1, DEC);
          Serial.print("FP2: ");
          Serial.println(letturaFP2, DEC);
          Serial.print("Posizione MPA: ");
          Serial.println(posizMPA, DEC);
          Serial.print("Posizione MPI: ");
          Serial.println(posizMPI, DEC);
          Serial.print("FP3: ");
          Serial.println(letturaFP3, DEC);
          Serial.print("FP4: ");
          Serial.println(letturaFP4, DEC);
          Serial.print("FPR: ");
          Serial.println(letturaFPR, DEC);
   

              letturadati=millis();
        }

           
    }





orzowilde

Non so se sbaglio qualcosa nel modo di porre le mie domande...
Come mai nessuno mi risponde?

gpb01

... ci vuole molta pazienza e, come spiega il regolamento, aspettare almeno 48 ore prima di fare "up" ;) ... non sempre tutti sono qui e disponibili :)

Però ... non hai fatto un passo per volta come ti avevo detto, ma già hai messo molta carne al fuoco ...
... perché NON cominci semplicemente a capire SOLO come far girare la pedana (... che mi sembra già per te un primo problema) ?

T'ho detto, metti tutto da parte, parti con un programma VUOTO ed inizia UNA COSA PER VOLTA ... o non ne esci.

Quindi ...
1. metti uno schema di come hai collegato il motore che fa girare la pedana
2. metti il codice che serve SOLO a far girare la pedana

Quando il tutto sarà giusto (HW + SW) si passerà al controllo delle 4 posizioni.

Guglielmo
Search is Your friend ... or I am Your enemy !

brunello22

Quote
Come mai nessuno mi risponde?
perche' ad esempio l'ultimo codice che hai inserito è talmente contorto, privo di senso e con tanti di quegli errori che è quasi impossibile commentarlo.
e' come trovarsi davanti a un eschimese e chiedere dove trovare della mozzarella..
cosa c'entra questo con la tua richiesta ? Niente, è questo il problema

Comunque, siamo tutti quà, fai come dice Guglielmo, inizia con farci vedere come hai collegato il motore e inizia con uno sketch semplice,.

orzowilde

Avete ragione @gpb01 e @brunello, devo fare un passo per volta... domani disegnerò gli schemi e abbozzerò uno sketch semplice che mi consenta di far girare la pedana....

Grazie ancora

orzowilde

Salve, sono di nuovo qui! :)

Ho disegnato lo schema dei soli motori con arduino.

https://drive.google.com/file/d/0B35zM9TEzeXJRHNJZDBabHRTRnM/view?usp=sharing

e qui incollo il semplice codice che mi attiva il motore della pedana in avanti...

Code: [Select]
/* AUTOMAZIONE PIAZZETTA SIGNURARA
 
*/


# define MPA 9    //Relè Motore avanti pedana
# define MPI  10   //Relè Motore indietro pedana


void setup()
    {
 
     pinMode(MPA, OUTPUT);
     pinMode(MPI, OUTPUT);

    }

void loop()


    {
      digitalWrite(MPA,HIGH);
     
          }


Intanto sto creando lo schema dei finecorsa sempre della pedana.

Qual'è il prossimo passo?

orzowilde

Questo credo che possa essere il prossimo passo...

Dei finecorsa che chiuderanno verso massa il circuito restituendo un livello logico zerocon resistenza di pull-up (10K) tra piedino di Arduino e +5V.

Allego schema circuito motori pedana più finecorsa pedana.

https://drive.google.com/file/d/0B35zM9TEzeXJSEVCZWJ4aFF3elU/view?usp=sharing

Grazie

Go Up