Ho commesso degli errori??
a parte l'uso errato di int
unsigned int pausa = 300000 ;
che va' corretto in
unsigned long pausa = 300000 ;
Se ti funziona di errori non dovrebbero essercene
comunque ecco lo sketch come chiedevi
# define FP1 2 //Finecorsa1 pedana
# define FP2 3 //Finecorsa2 pedana
# define FP3 4 //Finecorsa3 pedana
# define FP4 5 //Finecorsa4 pedana
# define FPR 6 //Finecorsa pedana RITORNO
# define MPA 9 //Relè Motore avanti pedana
# define MPI 10 //Relè Motore indietro pedana
# define FC1 8 //Finecorsa1 cubo
# define FC2 7 //Finecorsa2 cubo
# define MCA 11 //Relè Motore avanti cubo
# define MCI 12 //Relè Motore indietro cubo
# define LED1 25 //Relè faretto 1
# define LED2 23 //Relè faretto 2
# define LED3 27 //Relè faretto 3
# define LED4 29 //Relè faretto 4
# define LED5 31 //Relè faretto 5
# define LED6 33 //Relè faretto 6
# define LED7 35 //Relè faretto 7
# define LED8 37 //Relè faretto 8
# define LED9 39 //Relè faretto 9
# define LED10 41 //Relè faretto 10
# define LED11 43 //Relè faretto 11
# define MUSIC 45 //Relè musica
byte stato_fp = 1 ;
byte stato_fc = 1 ;
unsigned int ritardo = 30000 ; // tempo in cui pedana stà ferma tra uno step ed un altro
unsigned long pausa = 300000 ; // tempo in cui pedana stà ferma dopo reset
void setup()
{
Serial.begin (9600);
pinMode(FP1, INPUT_PULLUP); // sensore posizione iniziale
pinMode(FP2, INPUT_PULLUP);
pinMode(FP3, INPUT_PULLUP);
pinMode(FP4, INPUT_PULLUP);
pinMode(FPR, INPUT_PULLUP);
pinMode(FC1, INPUT_PULLUP);
pinMode(FC2, INPUT_PULLUP);
pinMode(MPA, OUTPUT);
pinMode(MPI, OUTPUT);
pinMode(MCA, OUTPUT);
pinMode(MCI, OUTPUT);
digitalWrite(MCI, HIGH); // disattiva i relè
digitalWrite(MCA, HIGH);
digitalWrite(MPI, HIGH);
digitalWrite(MPA, HIGH);
pinMode(LED1, 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);
pinMode(LED11, OUTPUT);
pinMode(MUSIC, OUTPUT);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
digitalWrite(MUSIC, HIGH);
motore_cubo_stop();
motore_pedana_stop();
led_spento(); //Tutti i faretti sono spenti
Serial.println("inizia pedana fino alla posizione di Start");
reset_pedana(); // il motore va' fino a posizione di Start
Serial.println("Inizia cubo fino alla posizione di Start");
reset_cubo(); //Il motore sposta il cubo fino alla posizione di Start
led_spento(); //Tutti i faretti sono spenti
}
void loop() {
// 1° Step *************************************
digitalWrite(MUSIC, LOW);
led_primo_step();
delay(ritardo);
led_spento();
Serial.println("Inizia Primo Step");
motore_pedana_avanti() ;
motore_cubo_avanti();
stato_fp = 1 ;
stato_fc = 1 ;
while (stato_fp != 0 || stato_fc != 0 ) {
if (digitalRead(FP2) == 0 ) {
motore_pedana_stop();
stato_fp = 0 ;
}
if (digitalRead(FC2) == 0 ) {
motore_cubo_stop();
stato_fc = 0 ;
}
}
motore_pedana_stop();
motore_cubo_stop();
Serial.println("finito Primo Step");
led_secondo_step(); // attivare led
delay(ritardo);
led_spento();
// 2° Step *************************************
Serial.println("Inizia Secondo Step");
motore_pedana_avanti() ;
motore_cubo_indietro();
stato_fp = 1 ;
stato_fc = 1 ;
while (stato_fp != 0 || stato_fc != 0 ) {
if (digitalRead(FP3) == 0 ) {
motore_pedana_stop();
stato_fp = 0 ;
}
if (digitalRead(FC1) == 0 ) {
motore_cubo_stop();
stato_fc = 0 ;
}
}
motore_pedana_stop();
motore_cubo_stop();
Serial.println("finito Secondo Step");
led_terzo_step(); // attivare led
delay(ritardo);
led_spento();
// 3° Step *************************************
Serial.println("Inizia Terzo Step");
motore_pedana_avanti() ;
motore_cubo_avanti();
stato_fp = 1 ;
stato_fc = 1 ;
while (stato_fp != 0 || stato_fc != 0 ) {
if (digitalRead(FP4) == 0 ) {
motore_pedana_stop();
stato_fp = 0 ;
}
if (digitalRead(FC2) == 0 ) {
motore_cubo_stop();
stato_fc = 0 ;
}
}
motore_pedana_stop();
motore_cubo_stop();
Serial.println("finito Terzo Step");
led_quarto_step();// attivare led
delay(ritardo);
led_spento();
digitalWrite(MUSIC, HIGH);
/*
// 4° Step *************************************
Serial.println("Inizia Quarto Step");
motore_pedana_avanti() ;
motore_cubo_indietro();
stato_fp = 1 ;
stato_fc = 1 ;
while (stato_fp != 0 || stato_fc != 0 ) {
if (digitalRead(FPR) == 0 ) {
motore_pedana_stop();
stato_fp = 0 ;
}
if (digitalRead(FC1) == 0 ) {
motore_cubo_stop();
stato_fc = 0 ;
}
}
motore_pedana_stop();
motore_cubo_stop();
Serial.println("finito Quarto Step");
// attivare led
delay(ritardo);
*/
// fine del ciclo. Torna a posizione di Start
Serial.println();
Serial.println("Torna a Start e rincomincia");
reset_pedana();
reset_cubo();
delay(pausa);
} // Fine LOOP ***************************
void reset_pedana() {
while (digitalRead(FP1) == HIGH) { // legge sensore di posizione iniziale
motore_pedana_indietro(); // avvia motore indietro fino al sensore di posizione iniziale
}
Serial.println("finito reset. Posizionato su Start"); // esce dal while quando si attiva il sensore di posizione iniziale
motore_pedana_stop();
}
void reset_cubo() {
while (digitalRead(FC1) == HIGH) { // legge sensore di posizione iniziale
motore_cubo_indietro(); // avvia motore indietro fino al sensore di posizione iniziale
}
Serial.println("finito reset. Posizionato cubo su Start"); // esce dal while quando si attiva il sensore di posizione iniziale
motore_cubo_stop();
}
void motore_pedana_avanti() {
digitalWrite(MPA, LOW);
digitalWrite(MPI, HIGH);
}
void motore_pedana_indietro() {
digitalWrite(MPA, HIGH);
digitalWrite(MPI, LOW);
}
void motore_pedana_stop() {
digitalWrite(MPA, HIGH);
digitalWrite(MPI, HIGH);
}
void motore_cubo_avanti() {
digitalWrite(MCA, LOW);
digitalWrite(MCI, HIGH);
}
void motore_cubo_indietro() {
digitalWrite(MCA, HIGH);
digitalWrite(MCI, LOW);
}
void motore_cubo_stop() {
digitalWrite(MCA, HIGH);
digitalWrite(MCI, HIGH);
}
void led_spento() {
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
}
void led_primo_step() {
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
}
void led_secondo_step() {
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, LOW);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
}
void led_terzo_step() {
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
}
void led_quarto_step() {
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, LOW);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
digitalWrite(LED11, HIGH);
}
bella la pedana, l'hai fatta girare per Pasqua ?