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 ....
Grazie
/* 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();
}
}