realizzazione di un ascensore a 3 piani

Se non alleghi lo sketch la vedo dura risponderti

/*
 * MotorKnob
 *
 * A stepper motor follows the turns of a potentiometer
 * (or other sensor) on analog input 0.
 *
 * http://www.arduino.cc/en/Reference/Stepper
 * This example code is in the public domain.
 */

#include <Stepper.h>

// change this to the number of steps on your motor
#define STEPS 100

// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to
Stepper stepper(STEPS, 8, 9, 10, 11);

// the previous reading from the analog input
int previous = 0;

void setup() {
  // set the speed of the motor to 30 RPMs
  stepper.setSpeed(30); //questo valore solitamente lo metto a 100 
}

void loop() {
  // get the sensor value
  int val = analogRead(0);

  // move a number of steps equal to the change in the
  // sensor reading
  stepper.step(val - previous);

  // remember the previous value of the sensor
  previous = val;
}

Ma che motore hai ?

ho uno step motor da 5v
fa circa 35 giri al minuto e ho visto un video su youtube che lo fa girare al max e penso vada minimo al doppio del mio
altra cosa un led dei 4 sul driver non si accende nonostante sia collegato.... speriamo non si sia fulminata una delle 4 bobine

Ah, ho capito quale stepper hai.....

qui trovi tutto quello che c'è da sapere , anche il fatto che hai definito male i pin
https://arduino-info.wikispaces.com/SmallSteppers

grazie mille risolto il problema va alla grande!

ragazzi ho provato a fare uno sketch ma non mi sente il motore
secondo voi per quale motivo?
questo è il codice

#include <Stepper.h>
//---------------------------------------------------COLLEGAMENTI-----------------------------------------------//
int pulsante0pin=1;
int pulsante1pin=2;
int pulsante2pin=3;
int microswitch0=4;
int microswitch1=5;
int microswitch2=6;
//--------------------------------------------------- VARIABILI LED----------------------------------------------//
int LED_PT_R=14;
int LED_PT_V=15;
int LED_P1_R=16;
int LED_P1_V=17;
int LED_P2_R=18;
int LED_P2_V=19;
//--------------------------------------------------VARIABILI PER PULSANTI--------------------------------------//
int val0=0;
int val1=0;
int val2=0;
//--------------------------------------------------VARIABILI E PASSI DEL MOTORE---------------------------------//
int Steps2Take;
#define StepsPerMotorRevolution 32
#define StepsdaZeroaDue 94*94
#define StepsdaZeroaUno 68*68
#define StepsdaUnoaDue  64*64
Stepper small_stepper(StepsPerMotorRevolution,8,9,10,11);
//=================================================================================================================
void setup() {

pinMode(pulsante0pin,INPUT);
pinMode(pulsante1pin,INPUT);
pinMode(pulsante2pin,INPUT);
pinMode(microswitch0,INPUT);
pinMode(microswitch1,INPUT);
pinMode(microswitch2,INPUT);
pinMode(LED_PT_R,OUTPUT);
pinMode(LED_PT_V,OUTPUT);
pinMode(LED_P1_R,OUTPUT);
pinMode(LED_P1_V,OUTPUT);
pinMode(LED_P2_R,OUTPUT);
pinMode(LED_P2_V,OUTPUT);
Serial.begin(9600);
StepMotor.setSpeed(10);
//=================================================================================================================
}
/*costruzione dei blocchi if else in modo tale che l'ascensore arrivi nel piano desiderato*/
void loop () {
val0 = digitalRead(pulsante0pin); // caso in cui l'ascensore si trova al piano 1 e deve andare al piano 0
if ((val0 == HIGH) && (microswitch1 == HIGH)) { // se il pulsante piano0 è spinto ed è spinto anche il microswitch piano 1 l'ascensore dovrà scendere di tot passi
  Steps2Take = -StepsdaUnoaDue; //ascensore scendi di 64x64 passi 
  small_stepper.setSpeed(700);//alla velocità di 700 
}
else if ((val0 == LOW) && (microswitch1 == HIGH)) {
  small_stepper.setSpeed(0);
  delay(5000);
}
if ((val0 == HIGH) && (microswitch2 == HIGH)) {
   Steps2Take =  -StepsdaZeroaDue;
   small_stepper.setSpeed(700);
}
else if ((val0 == LOW) && (microswitch2 == HIGH)) {
  small_stepper.setSpeed(0);
  delay(5000);
}
if ((val0 == HIGH) && (microswitch0 == HIGH)) {
  delay(10000);
  small_stepper.setSpeed(0);
}
if ((val0 == LOW) && (microswitch0 == HIGH)) {
  delay(10000);
  small_stepper.setSpeed(0);
}
val1 = digitalRead(pulsante1pin);
if ((val1 == HIGH) && (microswitch0 == HIGH)) {
  Steps2Take = StepsdaZeroaUno; //salita 0-1 
  small_stepper.setSpeed(700);
}
else if ((val1 == LOW) && (microswitch0 == HIGH)) {
  delay(10000);
  small_stepper.setSpeed(0);
}
if ((val1 == HIGH) && (microswitch2 == HIGH)) {
  Steps2Take = -StepsdaUnoaDue; //scendi da 2 a 1 
  small_stepper.setSpeed(700);
}
else if  ((val1 == LOW) && (microswitch2 == HIGH)) {
  delay(10000);
  small_stepper.setSpeed(0);
}
if ((val1 == HIGH) && (microswitch1 == HIGH)) {
  delay(10000);
  small_stepper.setSpeed(0);
}
else if ((val1 == HIGH) && (microswitch1 == HIGH)) {
  delay(10000);
  small_stepper.setSpeed(0);
}
val2 = digitalRead(pulsante2pin);
if ((val2 == HIGH) && (microswitch0 == HIGH)) {
  Steps2Take = StepsdaZeroaDue; //salire da 0 a 2  
  small_stepper.setSpeed(700);  
}
else if ((val2 == LOW) && (microswitch0 == HIGH)) {
  delay(10000);
  small_stepper.setSpeed(0);
}
if ((val2 == HIGH) && (microswitch1 == HIGH)) {
   Steps2Take = StepsdaUnoaDue; //sali dal piano 1 al piano 2 
   small_stepper.setSpeed(700);
}
else if ((val2 == LOW) && (microswitch1 == HIGH)) {
  delay(10000);
  small_stepper.setSpeed(0);
}
if ((val2 == HIGH) && (microswitch2 == HIGH)) {
delay(10000);
  small_stepper.setSpeed(0);
}
if ((val2 == LOW) && (microswitch2 == HIGH)) {
delay(10000);
  small_stepper.setSpeed(0);
}

perchè vedo solo

small_stepper.setSpeed(700);

dopo manca il codice per muovere lo stepper, ad esempio

small_stepper.step(Steps2Take);

si avevo notato prima di leggere il tuo messaggio che mancava il corrispettivo pezzo del codice,
aggiungendolo a tutte le mie condizioni noto che stranamente il motore non accenna ad accendersi mentre con altri pezzi di codice ad esempio quello che mi hai postato tu giorni fa va tranquillamente....il che mi fa pensare che non senta per niente ne pulsante ne microswitch e così facendo non accende il motore....possibile?
Anche se il cablaggio l'ho ricontrollato più volte ma niente

cominciamo dall'inizio

if ((val0 == HIGH) && (microswitch1 == HIGH)) {

Questo, come tutti gli altri devono diventare

if ((val0 == HIGH) && ( digitalRead (microswitch1) == HIGH)) {

ho provato a riscrivere il codice pensando che il problema fosse il confronto dei 2 switch e micros quando invece dovevo confrontarne 3 alla volta.
Adesso noto che l'ascensore non fa niente
esegue solo senza nessuna pressione del pulsante dal micros1(piano1) va al piano 2 e poi si mette con i due Led accesi in attesa non facendo niente per nessun pulsante
dove può stare il problema ?

#include <Stepper.h>
//---------------------------------------------------COLLEGAMENTI-----------------------------------------------//
int pulsante0pin=1;
int pulsante1pin=2;
int pulsante2pin=3;
int microswitch0=4;
int microswitch1=5;
int microswitch2=6;
//--------------------------------------------------- VARIABILI LED----------------------------------------------//
int LED_PT_R=14;
int LED_PT_V=15;
int LED_P1_R=16;
int LED_P1_V=17;
int LED_P2_R=18;
int LED_P2_V=19;


//--------------------------------------------------VARIABILI E PASSI DEL MOTORE---------------------------------//
int Steps2Take;
int Steps3Take;
int Steps4Take;
#define StepsPerMotorRevolution 32
#define StepsdaZeroaDue 94*94
#define StepsdaZeroaUno 68*68
#define StepsdaUnoaDue  64*64
Stepper small_stepper(StepsPerMotorRevolution,8,10,9,11);
//=================================================================================================================
void setup() {

pinMode(pulsante0pin,INPUT);
pinMode(pulsante1pin,INPUT);
pinMode(pulsante2pin,INPUT);
pinMode(microswitch0,INPUT);
pinMode(microswitch1,INPUT);
pinMode(microswitch2,INPUT);
pinMode(LED_PT_R,OUTPUT);
pinMode(LED_PT_V,OUTPUT);
pinMode(LED_P1_R,OUTPUT);
pinMode(LED_P1_V,OUTPUT);
pinMode(LED_P2_R,OUTPUT);
pinMode(LED_P2_V,OUTPUT);
Serial.begin(9600);

//==================================================PT===============================================================
}
void loop () {
  if (digitalRead(4) == HIGH && digitalRead(5) == LOW && digitalRead(6) == LOW) //STATO SWITCH PIANO 0
  {
  digitalWrite(LED_PT_R,LOW); digitalWrite(LED_PT_V,HIGH);//PT LED VERDE ACCESO LED ROSSO SPENTO
  digitalWrite(LED_P1_R,HIGH);digitalWrite(LED_P1_R,LOW);//P1 LED VERDE SPENTO LED ROSSO ACCESO 
  digitalWrite(LED_P2_R,HIGH);digitalWrite(LED_P2_V,LOW);//P2 LED VERDE SPENTO LED ROSSO ACCESO 
  
   //===============================================================================================================

 if(digitalRead(1) == HIGH && digitalRead(2) == LOW && digitalRead(3) == LOW) //CHIAMATA PT
 {
  digitalWrite(LED_PT_R,LOW); digitalWrite(LED_PT_V,HIGH);//PT LED VERDE ACCESO LED ROSSO SPENTO
  digitalWrite(LED_P1_R,HIGH);digitalWrite(LED_P1_R,LOW);//P1 LED VERDE SPENTO LED ROSSO ACCESO 
  digitalWrite(LED_P2_R,HIGH);digitalWrite(LED_P2_V,LOW);//P2 LED VERDE SPENTO LED ROSSO ACCESO 
  delay (1000); // NON FARE NIENTE E ATTENDI IL PASSO SUCCESSIVO 
 }
  
 }
//=================================================================================================================
else if (digitalRead(1) == LOW && digitalRead(2) == HIGH && digitalRead(3) == LOW)//CHIAMATA P1
{
  digitalWrite(LED_PT_R,HIGH); digitalWrite(LED_PT_V,LOW);//PT LED VERDE SPENTO LED ROSSO ACCESO 
  digitalWrite(LED_P1_R,HIGH);digitalWrite(LED_P1_R,LOW);//P1 LED VERDE SPENTO LED ROSSO ACCESO 
  digitalWrite(LED_P2_R,HIGH);digitalWrite(LED_P2_V,LOW);//P2 LED VERDE SPENTO LED ROSSO ACCESO 
  
Steps2Take = StepsdaZeroaUno; // FAI 68*68 PASSI ORARIO
small_stepper.setSpeed(700);   
small_stepper.step(Steps2Take);
digitalWrite(LED_P1_R,LOW);digitalWrite(LED_P1_R,HIGH);//ARRIVATO AL PIANO 1 V ON R OFF

 }
 else if (digitalRead(1) == LOW && digitalRead(2) ==LOW && digitalRead(3) == HIGH)//CHIAMATA P2
 {
  digitalWrite(LED_PT_R,HIGH); digitalWrite(LED_PT_V,LOW);//PT LED VERDE SPENTO LED ROSSO ACCESO 
  digitalWrite(LED_P1_R,HIGH);digitalWrite(LED_P1_R,LOW);//P1 LED VERDE SPENTO LED ROSSO ACCESO 
  digitalWrite(LED_P2_R,HIGH);digitalWrite(LED_P2_V,LOW);//P2 LED VERDE SPENTO LED ROSSO ACCESO 

Steps3Take = StepsdaZeroaDue; // FAI 94*94 PASSI ORARIO 
small_stepper.setSpeed(700);   
small_stepper.step(Steps3Take);

digitalWrite(LED_P2_R,LOW);digitalWrite(LED_P2_V,HIGH);
 }
 //===================================PIANO1=======================================================================
 else if (digitalRead(4) == LOW && digitalRead(5) == HIGH && digitalRead (6) == LOW)
 {
 digitalWrite(LED_PT_R,HIGH); digitalWrite(LED_PT_V,LOW);//PT LED VERDE SPENTO LED ROSSO ACCESO 
 digitalWrite(LED_P1_R,LOW);digitalWrite(LED_P1_R,HIGH);//P1 LED VERDE SPENTO LED ROSSO ACCESO 
 digitalWrite(LED_P2_R,HIGH);digitalWrite(LED_P2_V,LOW);//P2 LED VERDE SPENTO LED ROSSO ACCESO 
//=================================================================================================================
if (digitalRead(1) == HIGH && digitalRead(2) == LOW && digitalRead (3) == LOW)
{
 digitalWrite(LED_PT_R,HIGH); digitalWrite(LED_PT_V,LOW);//PT LED VERDE SPENTO LED ROSSO ACCESO 
 digitalWrite(LED_P1_R,HIGH);digitalWrite(LED_P1_R,LOW);//P1 LED VERDE SPENTO LED ROSSO ACCESO 
 digitalWrite(LED_P2_R,HIGH);digitalWrite(LED_P2_V,LOW);//P2 LED VERDE SPENTO LED ROSSO ACCESO 

Steps2Take = -StepsdaZeroaUno; // FAI 68*68 ANTIORARIO
small_stepper.setSpeed(700);   
small_stepper.step(Steps2Take);

digitalWrite(LED_PT_R,LOW); digitalWrite(LED_PT_V,HIGH);//PT LED VERDE SPENTO LED ROSSO ACCESO 
}
else if (digitalRead(1) == LOW && digitalRead(2) == HIGH && digitalRead(3) == LOW ) //CHIAMATA P1
{
digitalWrite(LED_PT_R,HIGH); digitalWrite(LED_PT_V,LOW);//PT LED VERDE SPENTO LED ROSSO ACCESO 
digitalWrite(LED_P1_R,LOW);digitalWrite(LED_P1_R,HIGH);//P1 LED VERDE SPENTO LED ROSSO ACCESO 
digitalWrite(LED_P2_R,HIGH);digitalWrite(LED_P2_V,LOW);//P2 LED VERDE SPENTO LED ROSSO ACCESO 
delay (1000);
}
//=================================================================================================================
else if (digitalRead(1) == LOW && digitalRead(2) == LOW && digitalRead(3) == HIGH ) // CHIAMATA P2 
{
 digitalWrite(LED_PT_R,HIGH); digitalWrite(LED_PT_V,LOW);//PT LED VERDE SPENTO LED ROSSO ACCESO 
 digitalWrite(LED_P1_R,HIGH);digitalWrite(LED_P1_R,LOW);//P1 LED VERDE SPENTO LED ROSSO ACCESO 
 digitalWrite(LED_P2_R,HIGH);digitalWrite(LED_P2_V,LOW);//P2 LED VERDE SPENTO LED ROSSO ACCESO 

Steps4Take = StepsdaUnoaDue; //FAI 64*64 PASSI ORARIO
small_stepper.setSpeed(700);   
small_stepper.step(Steps4Take);
 
digitalWrite(LED_P2_R,LOW);digitalWrite(LED_P2_V,HIGH);
}
//===================================PIANO2=======================================================================
else if(digitalRead(4) == LOW && digitalRead(5) == LOW && digitalRead(6) == HIGH ) 
{
 digitalWrite(LED_PT_R,HIGH); digitalWrite(LED_PT_V,LOW);//PT LED VERDE SPENTO LED ROSSO ACCESO 
 digitalWrite(LED_P1_R,HIGH);digitalWrite(LED_P1_R,LOW);//P1 LED VERDE SPENTO LED ROSSO ACCESO 
 digitalWrite(LED_P2_R,LOW);digitalWrite(LED_P2_V,HIGH);//P2 LED VERDE SPENTO LED ROSSO ACCESO 
//=================================================================================================================
if (digitalRead(1) == HIGH && digitalRead(2) == LOW && digitalRead(3) == LOW )//CHIAMATA PT
{
 digitalWrite(LED_PT_R,HIGH); digitalWrite(LED_PT_V,LOW);//PT LED VERDE SPENTO LED ROSSO ACCESO 
 digitalWrite(LED_P1_R,HIGH);digitalWrite(LED_P1_R,LOW);//P1 LED VERDE SPENTO LED ROSSO ACCESO 
 digitalWrite(LED_P2_R,HIGH);digitalWrite(LED_P2_V,LOW);//P2 LED VERDE SPENTO LED ROSSO ACCESO 

Steps3Take = -StepsdaZeroaDue; // FAI 94*94 PASSI AO 
small_stepper.setSpeed(700);   
small_stepper.step(Steps3Take);

 digitalWrite(LED_PT_R,LOW); digitalWrite(LED_PT_V,HIGH);
}
//=================================================================================================================
else if (digitalRead(1) == LOW && digitalRead(2) == HIGH && digitalRead(3) == LOW)//CHIAMATA P1 
{
digitalWrite(LED_PT_R,HIGH); digitalWrite(LED_PT_V,LOW);//PT LED VERDE SPENTO LED ROSSO ACCESO 
digitalWrite(LED_P1_R,HIGH);digitalWrite(LED_P1_R,LOW);//P1 LED VERDE SPENTO LED ROSSO ACCESO 
digitalWrite(LED_P2_R,HIGH);digitalWrite(LED_P2_V,LOW);//P2 LED VERDE SPENTO LED ROSSO ACCESO 

Steps4Take = -StepsdaUnoaDue; //FAI 64*64 PASSI AO
small_stepper.setSpeed(700);   
small_stepper.step(Steps4Take);

digitalWrite(LED_P1_R,LOW);digitalWrite(LED_P1_R,HIGH);
}
//==================================================================================================================
else if ( digitalRead (1) == LOW && digitalRead(2) == LOW && digitalRead(3) == HIGH)//CHIAMATA P2
{
 digitalWrite(LED_PT_R,HIGH); digitalWrite(LED_PT_V,LOW);//PT LED VERDE SPENTO LED ROSSO ACCESO 
digitalWrite(LED_P1_R,HIGH);digitalWrite(LED_P1_R,LOW);//P1 LED VERDE SPENTO  LED ROSSO ACCESO 
digitalWrite(LED_P2_R,LOW);digitalWrite(LED_P2_V,HIGH);//P2 LED VERDE ACCESO  LED ROSSO SPENTO

 delay (1000);
}
}
}
}

non mi metto a controllarlo tutto ma solo 2 considerazioni

allora il primo if considera il caso in cui le condizioni sono 4 High 5 e 6 low
poi ti manca l'if 5 high 4 e 6 low
e if 6 high 4 e 5 low

I nomi delle variabili servono a capire cosa fai e devono essere non troppo lunghe altrimenti ti ci perdi
vedi ad esempio
LED_P1_R
LED_P1_V
microswitch1

non è più comprensibile ad esempio

P1Rosso
P1Verde

o al limite ledP1Rosso ledP1Verde
e micro1

comunque a prescindere da come li definisci
se hai definito questi

int microswitch0=4;
int microswitch1=5;
int microswitch2=6;

perchè poi usi questa

 if (digitalRead(4) == HIGH && digitalRead(5) == LOW && digitalRead(6) == LOW) 

// al posto di questo?

 if (digitalRead(microswitch0) == HIGH && digitalRead(microswitch1) == LOW && digitalRead(microswitch2) == LOW)

quindi se microswitch0 è alto
deve fare tutto questo

//                   rosso                    verde
  digitalWrite(LED_PT_R,LOW); digitalWrite(LED_PT_V,HIGH);//PT LED VERDE ACCESO LED ROSSO SPENTO

//                   rosso                    rosso
  digitalWrite(LED_P1_R,HIGH);digitalWrite(LED_P1_R,LOW);//P1 LED VERDE SPENTO LED ROSSO ACCESO

//                   rosso                     verde
  digitalWrite(LED_P2_R,HIGH);digitalWrite(LED_P2_V,LOW);//P2 LED VERDE SPENTO LED ROSSO ACCESO

  delay (1000); // NON FARE NIENTE E ATTENDI IL PASSO SUCCESSIVO

quindi al piano 1 il led verde non esiste

e questa linea non attende il passo successivo, SI FERMA TUTTO per un secondo

 delay (1000); // NON FARE NIENTE E ATTENDI IL PASSO SUCCESSIVO

Io quando ho un problema simile in un codice ho imparato a fare una cosa:
spengo il computer, stacco Arduino, esco a fare un giro (a me piace camminare, si possono usare altri mezzi) e intanto ripenso da capo il progetto chiarendo bene cosa deve fare e come, e facendo in modo di non dare nulla per sottinteso.
Una volta fatto questo (che può durare ore come giorni, ovviamente intervallato da gite in cucine e bagni e letti) riaccendo il computer, apro un secondo file NUOVO e comincio a tradurre quello che ho pensato in arduinese.
Faccio questo perché un programma con troppa storia è come un vestito con troppi rammendi, non si sa più cosa fosse il vestito e cosa il buco, ma si sa che ti sta stretto e che hai speso una fortuna in stoffe.
Chiarisci bene, quindi, a te stesso come a noi, cosa deve fare l'ascensore in ogni dettaglio, e POI prova a scriverlo in C

allora il funzionamento è il seguente:
l'ascensore ha 3 piani
è composto da un microswitch per piano micros0 micros1 micros2 con corrispondente pulsante0 ''1 ''2 e un motore passo passo.
ho costruito il codice in base a dove si trovasse l'ascensore esempio:
si trova al piano 0? quindi se il micros0 =ALTO and(&&) gli altri due micros1-2 si trovano LOW quindi confermato che l'ascensore si trovi al piano 0 nel caso in cui venga spinto uno dei 3 pulsante tradotto con ELSE IF
pulsante 1(faccio un esempio ) HIGH l'ascensore dovrà salire di tot passi (contati piano per piano grazie al funzionamento del motore passo passo) e si fermetà una volta conclusa la sua corsa
detto ciò si troverà successivamente al piano 1 nel caso sia stato spinto il puls2 e avrà delle nuove condizioni per poi ripetere il procedimento per ogni piano
PROBLEMA
la cabina è troppo pesante quindi ho dovuto ricorrere a un metodo diverso per spingere il motore passo passo oltre alla sua velocità classica che si può trovare con i classici esempi di Arduino,che mi è stato gentilmente linkato da un componente del forum che corrisponde a questo qui
https://arduino-info.wikispaces.com/SmallSteppers
quindi io non dichiaro una velocità costante nel void setup ma vado a dichiarare ogni volta la velocità del mio motore nel void loop con le varie condizioni come è ben visibile nel codice
ed oltre ad esso avendo dei passi diversi per ogni piano vado a dichiare le 3 variabili intstep2-3-4take
per dichiare successivamente quanti passi deve fare.
Adesso io non so se quello che voglio realizzare è possibile farlo nel metodo usato, spero solo di essere stato chiaro con ciò che voglio realizzare e che qualcuno con più esperienza di me mi possa delucidare qualche idea!
grazie mille a chi riesce ad aiutarmi
la situazione di adesso è la seguente
l'ascensore sente solo quando si trova al piano 1 e va automaticamente al piano 2 senza la spinta di alcun pulsante.....

Cominciamo con il dire una cosa:
Il programma si può semplificare e rendere scalabile usando array e funzioni. Sai di cosa sto parlando?
Se si allora trasforma tutte le variabili indicanti cose uguali in un unico array che ne contenga i valori (array per tutti i sensori, array per tutti i pulsanti, array per tutti i passi...) e poi vediano come continuare.
Vantaggi:

  1. con array il tutto é facilmente scalabile
  2. tratti tutti gli elementindi un array allo stesso modo per definizione (usando cicli for) e quindi se il problema é di codice non va nessun pezzo dell'array, altrimenti il probkema é chiaramente hardware
  3. con le funzioni usi lo stesso identico modo per fare le stesse cose in parti diverse del programma, accorciando lo stesso e riducendo gli errori di scrittura possibili

non ho mai usato nulla del genere....

Ok.
Hai un manuale/libro di C? Cerca cosa é e come si crea e usa un array. É facile e molto utile

sto provando a seguire da questo sito:
http://www.alberti-porro.gov.it/wordpress/wp-content/uploads/2014/01/ProgrammareArduino.pdf
ho trovato la parte degli array,ho capito come dichiarare i vari sensori-pulsanti-led
ma una volta che li dichiaro come faccio a descrivere tutto quello che facevo con il mio codice?
il fatto che deve andare di tot passi in senso O e AO solo se determinate variabili corrispondono?

nel tuo listato ci sono dei goto, finche' non spariscono e' inutile ragionarci su :slight_smile:

leggi l'ultimo codice.... quello iniziale della prima pagina l'avevo preso come esempio e l'ho modificato nel tempo
mai usati goto