Progetto fermo saliscendi tv con scheda motor shild adafruit V1 ed arduino uno

Buon pomeriggio a tutti.
è da pochissimo che sono nel mondo di arduino. sarà solo 4 anni ^^ ma solo ora ho capito come far lampeggiare un led. il problema è che ho sempre seguito progetti già costruiti incollando nell’ide i listati …
ora mi trovo a fare un piccolo progetto (relativamente semplice).
ma che mi nasconde parecchi problemucci.

primo
arduino uno

funzione.

far spostare con 2 pulsanti sempre aperti un motore dc (motoriduttore) avanti ed indietro su un binario

2 finecorsa di inizio e fine.
che servono per dire al motore (di fermarsi e tornare leggermente indietro ) cosi da non rimanere premuti…

allego il mio listato è molto semplice ma il tutto non rispode come dovrebbe…premetto che ho effettuato ogni collegamento di ogni bottone o fine corsa con le opportune resistenze.–

in futuro questo programma mi servira per creare (UNO SPINGI CULLA AUTOMATICO ) (UN TIMONE PER KAYAK – COSI DA NON DOVER PER FORSA STACCARE LE MANI DALLA PAGAIA) E PER CREARE UN SALISCENDI TV DA SALOTTO (ACQUISTANDO UN MOTORIDUTTORE PIU POTENTE SEMPRE DA 12V.)

CHE NE DITE? GIOCHIAMO A TROVA L’ERRORE?

----------------------------------------------------------------------------------------

#include <AFMotor.h>
#define pulsante 13  // crea il pulsante sulla uscita 13 
#define pulsantez 10 // crea il pulsante sulla uscita 10
#define FINEA 3  // crea il pulsante sulla uscita 3 
#define FINEB 2 // crea il pulsante sulla uscita 2
#define led 4   // outpot led

AF_DCMotor motor(1, MOTOR12_64KHZ); // crea il motore sull'uscita 1
int onoff=0;
int valore=0;

/**********************************************************
* 
*/
void setup () {
 Serial.begin(9600);           // set up Serial library at 9600 bps
 Serial.println("Motor test!");  
 motor.setSpeed(255);     // imposta la velocità a 255 -  il massimo
 pinMode (pulsantez, INPUT );   // PULSANTE 
 pinMode (pulsante, INPUT ); // PULSANTE
 pinMode (FINEA, INPUT );  // FINECORSA
 pinMode (FINEB, INPUT ); // FINECORSA
 pinMode (led, OUTPUT);
 Serial.println( "Fine Setup" );
}

void loop () 
{
 valore = digitalRead (pulsantez);
 if (valore==0)
 valore = digitalRead (pulsante);
 if (valore==0)
 valore = digitalRead (FINEA);
 if (valore==0)
 valore = digitalRead (FINEB);
 if (valore==0)
  {
   motor.run(RELEASE);
   digitalWrite(led, LOW);
   Serial.println( "stanby" );
   }
 else {
 valore = digitalRead (pulsantez);
 if (valore==1)
 {
   motor.run(FORWARD);
   digitalWrite(led, HIGH);
   Serial.println( "indietro" ); 
   }
   else {
 valore = digitalRead (pulsante);
 if (valore==1)
 {
   motor.run(BACKWARD);
  digitalWrite(led, HIGH);
   Serial.println( "avanti" ); 
      
       }
     }  
   }
valore = digitalRead (FINEA);  // forse in questo ordine il tutto dovrebbe funzionare
 if (valore==1)
 {
 motor.run(BACKWARD);
 Serial.println( "finea indietro" );
 digitalWrite(led, HIGH);
 delay (2000);
 motor.run(RELEASE);
 }
 else {  
 valore = digitalRead (FINEB);
 if (valore==1)
 motor.run(FORWARD);
 Serial.println( "fineb avanti" );
 digitalWrite(led, HIGH);
 delay (2000);
 motor.run(RELEASE);
   
 }
}

Prima che Guglielmo ti sgridi ... racchiudi il codice negli appositi tag "code" ... ;)

E poi ricordati che la scheda di controllo motore non è che funziona magicamente, avrà bisogno di alcuni pin ( che non puoi usare per altre cose ). quindi controlla se quelli che hai assegnato ai pulsanti e led, sono liberi

#define pulsante 13  // crea il pulsante sulla uscita 13 
#define pulsantez 10 // crea il pulsante sulla uscita 10
#define FINEA 3  // crea il pulsante sulla uscita 3 
#define FINEB 2 // crea il pulsante sulla uscita 2
#define led 4   // outpot led

Ad esempio i pin 3 e 4 sono gia' usati dalla motor shield https://learn.adafruit.com/adafruit-motor-shield/faq#faq-12

>andreglo: … come Etem ti ha già detto, in conformità al regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More → Modify) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Guglielmo

Etemenanki:
Prima che Guglielmo ti sgridi … racchiudi il codice negli appositi tag “code” … :wink:

grazie scusate ancora

gpb01:
>andreglo: … come Etem ti ha già detto, in conformità al regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More → Modify) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Guglielmo

Brunello:
E poi ricordati che la scheda di controllo motore non è che funziona magicamente, avrà bisogno di alcuni pin ( che non puoi usare per altre cose ).
quindi controlla se quelli che hai assegnato ai pulsanti e led, sono liberi

#define pulsante 13  // crea il pulsante sulla uscita 13 

#define pulsantez 10 // crea il pulsante sulla uscita 10
#define FINEA 3  // crea il pulsante sulla uscita 3
#define FINEB 2 // crea il pulsante sulla uscita 2
#define led 4   // outpot led




Ad esempio i pin 3 e 4 sono gia' usati dalla motor shield 
https://learn.adafruit.com/adafruit-motor-shield/faq#faq-12

cioa grazie per il consiglio ma ho già controllato i pin utilizzati
e non utilizzo nessun pin che la scheda gia non utilizza…
uso solo l’uscita n°1
non le altre …
e poi il problema mi capita lo stesso anche se utilizzo solo pin analogici…

ho converitto gia il codice.
ma nulla funziona in entrambi i modi solo se elimino i fine corsa.!!

come fo ?