Aiutino con sketch Arduino

Il sistema digitale (DCC) applicato al modellismo ferroviario.

Moderatore: roy67

Rispondi
Avatar utente
SteaMarco
Socio GAS TT
Messaggi: 831
Iscritto il: dom dic 06, 2015 8:30 am
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Età: 43
Stato: Non connesso

Aiutino con sketch Arduino

Messaggio da SteaMarco » lun nov 26, 2018 1:34 pm

Per favore avrei bisogno di una mano,
lo sò che è da un pò che non mi faccio vivo ma la vita i figli... La bambina ha vomitato il gatto puzza e la moglie... Vabbè... HAhHAHhaha!

Ho realizzato un'ovale da mettere in vetrina del nezozio e volevo mettere arduino come temporizzatore, pensavo che ci vuole una cavolata...
Invece crisi nera non riesco a fra funzionare lo sketch!
Il funzionamento dovrebbe una volta data corrente ad arduino , 1 far lampeggiare 2 led su C.Sant'Andrea o segnale carino che sto realizzando, dopo 3 min spegnersi e far uscire il treno e una volta rientrato in galleria premere il tasto, stop treno riaccendere il segnale e dopo 3 min ripartire...

Il mio problema nello sketch sotto è nella funzione del bottone perchè è programmato per essere premuto per la funzione start.

Ringrazio tutti coloro che hanno un pò di tempo da dedicarmi e Diego ha già l'anteprima del tipo di locomotiva che impiegherò... :mrgreen:

Posto tutto giurin giuretta Marco.



// descrizione: Partenza Treno, si spegne la croce di S.andrea, il treno rientra in galleria preme un contatto e si interrompe la corsa al treno,
si riaccende la Croce di S.Andrea e dopo 3 min riparte il treno




const int BUTTON = 2; // pin di input a cui è collegato il pulsante
const int LED_A = 13; // led A croce di S.Andrea
const int LED_B = 11; // led B croce di S.Andrea
const int TRENO = 10; // Treno collegato al pin digitale 13
// Variabili globali (tutti interi)
int statoButton = 0; // stato del pulsante (inizialmente non premuto)
int lastStatoButton = 0; // ultimo stato del pulsante (per ora non premuto)
int countButton = 0; // Conteggio del bottone

// Avvio dell'applicazione
void setup()
{
pinMode(LEDA, OUTPUT); // imposta il pin digitale come output
pinMode(LEDB, OUTPUT);
pinMode(TRENO, OUTPUT);
pinMode(BUTTON, INPUT); // imposta il pin digitale come input
}

// Avvio del loop
void loop()
{

// Verifico se l'utente ha premuto il bottone ???
if(digitalRead(BUTTON))
{
// Aspetto 15ms per far alzare il dito all'utente
delay(15);
// Cambio l'ultimo stato del bottone
if(lastStatoButton==0) lastStatoButton=1;
else lastStatoButton=0;
// Aumento il count del bottone
if(countButton<=3) countButton=countButton+1;
else countButton=0;
}

// In base allo stato del bottone scelgo l'azione del led
switch (countButton)
{
// Led lampeggia ogni mezzo secondo
case 1:
digitalWrite(LEDA, HIGH); // accende il LED
delay(500); // aspetta un secondo
digitalWrite(LEDB, LOW); // spegne il LED
delay(500); // aspetta un secondo
digitalWrite(LEDB, HIGH); // accende il LED
delay(500); // aspetta un secondo
digitalWrite(LEDA, LOW); // spegne il LED
delay(30000);
digitalWrite(LEDA, LOW);
digitalWrite(LEDB, LOW);
digitalWrite(TRENO, HIGH); // dopo 3 min parte il treno
break;
// quando il treno arriva in galleria c'è lo switch o tasto ma la funzione dovrebbe portarmi il riavvio dell loop come faccio???
}
}
Marco - Non è il mezzo che fà la differenza ma l'uomo

Avatar utente
SteaMarco
Socio GAS TT
Messaggi: 831
Iscritto il: dom dic 06, 2015 8:30 am
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Età: 43
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da SteaMarco » lun nov 26, 2018 1:53 pm

Trovato un piccolo errore PIN_A e B ho dimenticato il trattino,
ma ancora non và. :(

Marco


// descrizione: Partenza Treno, si spegne la croce di S.andrea, il treno rientra in galleria preme un contatto e si interrompe la corsa al treno,
//si riaccende la Croce di S.Andrea e dopo 3 min riparte il treno




const int BUTTON = 2; // pin di input a cui è collegato il pulsante
const int LED_A = 13; // led A croce di S.Andrea
const int LED_B = 11; // led B croce di S.Andrea
const int TRENO = 10; // Treno collegato al pin digitale 13
// Variabili globali (tutti interi)
int statoButton = 0; // stato del pulsante (inizialmente non premuto)
int lastStatoButton = 0; // ultimo stato del pulsante (per ora non premuto)
int countButton = 0; // Conteggio del bottone

// Avvio dell'applicazione
void setup()
{
pinMode(LED_A, OUTPUT); // imposta il pin digitale come output
pinMode(LED_B, OUTPUT);
pinMode(TRENO, OUTPUT);
pinMode(BUTTON, INPUT); // imposta il pin digitale come input
}

// Avvio del loop
void loop()
{

// Verifico se l'utente ha premuto il bottone ???
if(digitalRead(BUTTON))
{
// Aspetto 15ms per far alzare il dito all'utente
delay(15);
// Cambio l'ultimo stato del bottone
if(lastStatoButton==0) lastStatoButton=1;
else lastStatoButton=0;
// Aumento il count del bottone
if(countButton<=3) countButton=countButton+1;
else countButton=0;
}

// In base allo stato del bottone scelgo l'azione del led
switch (countButton)
{
// Led lampeggia ogni mezzo secondo
case 1:
digitalWrite(LED_A, HIGH); // accende il LED
delay(500); // aspetta un secondo
digitalWrite(LED_B, LOW); // spegne il LED
delay(500); // aspetta un secondo
digitalWrite(LED_B, HIGH); // accende il LED
delay(500); // aspetta un secondo
digitalWrite(LED_A, LOW); // spegne il LED
delay(30000);
digitalWrite(LED_A, LOW);
digitalWrite(LED_B, LOW);
digitalWrite(TRENO, HIGH); // dopo 3 min parte il treno
break;
// quando il treno arriva in galleria c'è lo switch o tasto ma la funzione dovrebbe portarmi il riavvio dell loop come faccio???
}
}
Marco - Non è il mezzo che fà la differenza ma l'uomo

Avatar utente
sal727
Messaggi: 3134
Iscritto il: dom apr 26, 2015 5:22 pm
Nome: Salvatore
Regione: Emilia Romagna
Città: Bologna
Ruolo: Moderatore
Età: 62
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da sal727 » lun nov 26, 2018 2:22 pm

Forse è meglio che posti il problema sul forum di Arduino, ci sono persone molto più competenti
https://forum.arduino.cc/index.php?board=34.0
Ciao, Salvatore

Avatar utente
SteaMarco
Socio GAS TT
Messaggi: 831
Iscritto il: dom dic 06, 2015 8:30 am
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Età: 43
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da SteaMarco » lun nov 26, 2018 2:28 pm

Grazie Salvatore,
ma sul forum di Arduino ti aiutano più che altro a mandarti studiare con un link, ti danno il compitino... Ma io avrei bisogno di un'aiuto concreto...

Grazie lo stesso, Marco
Marco - Non è il mezzo che fà la differenza ma l'uomo

Avatar utente
sal727
Messaggi: 3134
Iscritto il: dom apr 26, 2015 5:22 pm
Nome: Salvatore
Regione: Emilia Romagna
Città: Bologna
Ruolo: Moderatore
Età: 62
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da sal727 » lun nov 26, 2018 2:56 pm

Unica cosa che ti posso correggere, in base alla mia modesta conoscenza è la sequenza del lampeggio, non garantisco che funzioni, non ho neanche provato

digitalWrite(LED_A, HIGH); // accende il LED_A
delay(500); // aspetta 1/2 secondo
digitalWrite(LED_A, LOW); // spegne il LED_A
digitalWrite(LED_B, HIGH); // accende il LED_B
delay(500); // aspetta 1/2 secondo
digitalWrite(LED_B, LOW); // spegne il LED_B
delay(30000);
digitalWrite(TRENO, HIGH); // dopo 3 min parte il treno
Ciao, Salvatore

Avatar utente
SteaMarco
Socio GAS TT
Messaggi: 831
Iscritto il: dom dic 06, 2015 8:30 am
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Età: 43
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da SteaMarco » lun nov 26, 2018 11:43 pm

Rieccomi,

dopo essermi preso un pò di pesci in faccia di ignoranza che è vero, dal sito di Arduino ho capito che và usato il contatore millis e comunque sia non sò come applicarlo, ho troppe nozioni e confuse nel mio cervello...
Finirà che uso arduino come sò e il treno male che và si fonde il motore e pazienza... Ne ho una un certo tot in casetta...

P.S. Posterò il lavoro fatto sperando sia cosa gradita, Marco.
Marco - Non è il mezzo che fà la differenza ma l'uomo

Avatar utente
SteaMarco
Socio GAS TT
Messaggi: 831
Iscritto il: dom dic 06, 2015 8:30 am
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Età: 43
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da SteaMarco » mar nov 27, 2018 11:15 pm

Sono arrivato quà con l'aiuto da parte del Forum Arduino e prendendomi del salame...

Ma ora funziona così:

Avvio Arduino, lampeggia la croce di S.Andrea e il treno non parte, modifico il valore del "bytesto " = 1 il treno parte insiame al lampeggio ma non si ferma più... BOH!

Domani se riesco faccio altre prove poi ci rinuncio ho troppo stress e poca concentrazione.

Ciao Marco


// descrizione: Partenza Treno, si spegne la croce di S.andrea, il treno rientra in galleria preme un contatto e si interrompe la corsa al treno,
//si riaccende la Croce di S.Andrea e dopo 3 min riparte il treno




const int BUTTON = 2; // pin di input a cui è collegato il pulsante
const int LED_A = 13; // led A croce di S.Andrea
const int LED_B = 11; // led B croce di S.Andrea
const int TRENO = 10; // Treno collegato al pin digitale 13
// Variabili globali (tutti interi)
int statoButton = 0; // stato del pulsante (inizialmente non premuto)
int lastStatoButton = 0; // ultimo stato del pulsante (per ora non premuto)
int countButton = 0; // Conteggio del bottone

unsigned long tempo=0;
byte stato=0; // Se stato vale zero il treno funziona, se stato vale 1 il treno si ferma

// Avvio dell'applicazione


void setup()
{
pinMode(LED_A, OUTPUT); // imposta il pin digitale come output
pinMode(LED_B, OUTPUT);
pinMode(TRENO, OUTPUT);
pinMode(BUTTON, INPUT); // imposta il pin digitale come input
}

// Avvio del loop
void loop()
{

// Verifico se l'utente ha premuto il bottone ???
if(digitalRead(BUTTON))
{
// Aspetto 15ms per far alzare il dito all'utente
delay(15);
// Cambio l'ultimo stato del bottone
if(lastStatoButton==0) lastStatoButton=1;
else lastStatoButton=0;
// Aumento il count del bottone
if(countButton<=3) countButton=countButton+1;
else countButton=0;
}

// In base allo stato del bottone scelgo l'azione del led
switch (countButton)
{
// Led lampeggia ogni mezzo secondo
case 1:
digitalWrite(LED_A, HIGH); // accende il LED
delay(500); // aspetta un secondo
digitalWrite(LED_B, LOW); // spegne il LED
delay(500); // aspetta un secondo
digitalWrite(LED_B, HIGH); // accende il LED
delay(500); // aspetta un secondo
digitalWrite(LED_A, LOW); // spegne il LED
stato=1; // Ferma il treno
tempo=millis(); // Inizia il conteggio

break;
// quando il treno arriva in galleria c'è lo switch o tasto ma la funzione dovrebbe portarmi il riavvio dell loop come faccio???
}
if(stato){// Ferma il treno se stato vale 1

digitalWrite(LED_A, LOW);
digitalWrite(LED_B, LOW);
digitalWrite(TRENO, LOW);

}else{

digitalWrite(TRENO, HIGH); // Se stato vale 0 il treno è in moto
}

if(stato==1 && millis()-tempo >= (3*60*1000)){
/* Se stato è uguale a uno e sono passati
tre minuti, mette stato a zero e quindi accende il treno */
stato=0;
}
}
Marco - Non è il mezzo che fà la differenza ma l'uomo

Avatar utente
antogar
Messaggi: 56
Iscritto il: mer dic 31, 2014 1:52 pm
Nome: Antonino
Regione: Campania
Città: C.mare
Età: 53
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da antogar » gio nov 29, 2018 5:26 pm

Ciao Marco,
potresti spiegare un po' meglio come deve funzionare ? magari fai anche un disegno delle connessioni esterne. Ad esempio, il pin che deve dare il via libera al treno è connesso ad un relè ?
Il funzionamento dovrebbe una volta data corrente ad arduino , 1 far lampeggiare 2 led su C.Sant'Andrea o segnale carino che sto realizzando, dopo 3 min spegnersi e far uscire il treno e una volta rientrato in galleria premere il tasto, stop treno riaccendere il segnale e dopo 3 min ripartire...
la descrizione non è molto chiara... innanzitutto prevedi che sia tutto automatico all' infinito o vuoi un pulsante/interruttore esterno che avvii o fermi il tutto ? "bottone" e "pulsante" nel tuo sketch sono la stessa cosa ?

saluti
Antonino

Avatar utente
SteaMarco
Socio GAS TT
Messaggi: 831
Iscritto il: dom dic 06, 2015 8:30 am
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Età: 43
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da SteaMarco » gio nov 29, 2018 11:45 pm

Ciao Autogar,

il funzionamento dovrebbe essere un loop cntinuo è per farlo girare su un'ovale con dei carri e la scritta auguri.

Partenza al'avvio di arduino e lampeggio dei due led tipo C.di S.Andrea, arrivo in galleria eccita il reed e si ferma e si spengono anche le luci, dopo 2o3 min il treno ricomincia la sua corsa finchè non tolgo l'alimentazione.

Grazie Marco.
Marco - Non è il mezzo che fà la differenza ma l'uomo

Avatar utente
SteaMarco
Socio GAS TT
Messaggi: 831
Iscritto il: dom dic 06, 2015 8:30 am
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Età: 43
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da SteaMarco » ven nov 30, 2018 5:20 pm

Ho risolto!

Se posso fare un link al forum di Arduino, mi hanno dato una Grossa mano e mi hanno praticamante dato la famosa pappa pronta...

Grazie comunque anche a voi per l'interesse.

Marco
Marco - Non è il mezzo che fà la differenza ma l'uomo

Avatar utente
sal727
Messaggi: 3134
Iscritto il: dom apr 26, 2015 5:22 pm
Nome: Salvatore
Regione: Emilia Romagna
Città: Bologna
Ruolo: Moderatore
Età: 62
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da sal727 » ven nov 30, 2018 5:55 pm

Sarebbe interessante sapere come hai risolto.
Ciao, Salvatore

Avatar utente
SteaMarco
Socio GAS TT
Messaggi: 831
Iscritto il: dom dic 06, 2015 8:30 am
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Età: 43
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da SteaMarco » ven nov 30, 2018 11:07 pm

Se mi autorizzate a fare CrosForum lo faccio, sò che è proibito in molti forum sul nostro non ricordo.

Comunque sul forum di arduino cercate "Aiuto per un vecchio appassionato" e salta fuori la mia discussione...
Devo dire che mi devo ricredere devo aver fatto pena a qualcuno che di fatto ha fatto il lavoro!

Comunque sia è uno sketch che a dispetto di tutti si può inserire in una loco navetta... Io ci proverò la inserirò all'interno + batteria tampone...
Come ho modificato la BR 89... In lo vedrete! AHhaha!

A presto Marco
Marco - Non è il mezzo che fà la differenza ma l'uomo

Avatar utente
Fabrizio
Socio GAS TT
Messaggi: 9893
Iscritto il: gio nov 10, 2011 9:17 pm
Nome: Fabrizio
Regione: Piemonte
Città: Piossasco
Ruolo: co-amministratore
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da Fabrizio » ven nov 30, 2018 11:40 pm

Ciao Marco, puoi tranquillamente inserire qui il link al forum dove hai trovato ciò che ti serviva. Per noi nessun problema.
Fabrizio Borca

Avatar utente
SteaMarco
Socio GAS TT
Messaggi: 831
Iscritto il: dom dic 06, 2015 8:30 am
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Età: 43
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da SteaMarco » ven nov 30, 2018 11:54 pm

Eccolo quà!
Non ricordavo che potessi farlo, su certi forum ti bloccano persino!
Comunque sia con pochi euro si fà un temporizzatore che è molto versatile, l'unica cosa che mi rammarica un pò e che non ci sono arrivato, d'altronde son già molto bello mica posso esser tutto io! AHhahahaa!


https://forum.arduino.cc/index.php?topic=581746.30

Ciao Marco
Marco - Non è il mezzo che fà la differenza ma l'uomo

Avatar utente
antogar
Messaggi: 56
Iscritto il: mer dic 31, 2014 1:52 pm
Nome: Antonino
Regione: Campania
Città: C.mare
Età: 53
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da antogar » sab dic 01, 2018 9:59 am

Devo dire che mi devo ricredere devo aver fatto pena a qualcuno che di fatto ha fatto il lavoro!
ah ah ah
ma no, i forum servono a questo....

mi fa piacere sentire che hai risolto, però oltre al link, fai anche qualche foto o schema della realizzazione. E' interessante per la platea capire come hai realizzato il comando che fa avanzare il treno (un relè ?) e come rilevi la presenza del treno stesso con il reed.

ciao!
Antonino

Avatar utente
SteaMarco
Socio GAS TT
Messaggi: 831
Iscritto il: dom dic 06, 2015 8:30 am
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Età: 43
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da SteaMarco » mar dic 04, 2018 10:37 pm

Rieccomi,

ho fatto il video e non sò come posso fare per postrlo o linkarlo in qualche modo?

Lo mando a Fabrizio vediamo se riesce a caricarlo? Eccolo!! View My Video

Auguri in anticipo Marco.
Marco - Non è il mezzo che fà la differenza ma l'uomo

Avatar utente
Fabrizio
Socio GAS TT
Messaggi: 9893
Iscritto il: gio nov 10, 2011 9:17 pm
Nome: Fabrizio
Regione: Piemonte
Città: Piossasco
Ruolo: co-amministratore
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da Fabrizio » mar dic 04, 2018 10:49 pm

Ciao Marco, non so se gli altri vedono qualcosa, ma io non riesco a vedere nulla. So che il software del forum permette una semplice condivisione dei video (basta fare copia incolla del link) quando caricati su Youtube, per le altre piattaforme, a dirti il vero, non so se si possa fare.
Fabrizio Borca

Avatar utente
SteaMarco
Socio GAS TT
Messaggi: 831
Iscritto il: dom dic 06, 2015 8:30 am
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Età: 43
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da SteaMarco » mar dic 04, 2018 10:52 pm

Se clicchi sopra View My Video dovrebbe aprire il link come a me... Boh!
Marco - Non è il mezzo che fà la differenza ma l'uomo

Avatar utente
sal727
Messaggi: 3134
Iscritto il: dom apr 26, 2015 5:22 pm
Nome: Salvatore
Regione: Emilia Romagna
Città: Bologna
Ruolo: Moderatore
Età: 62
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da sal727 » mar dic 04, 2018 10:55 pm

Bisogna abilitare AbobeFlash sul browser
Ciao, Salvatore

Avatar utente
Fabrizio
Socio GAS TT
Messaggi: 9893
Iscritto il: gio nov 10, 2011 9:17 pm
Nome: Fabrizio
Regione: Piemonte
Città: Piossasco
Ruolo: co-amministratore
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da Fabrizio » mar dic 04, 2018 10:56 pm

Bisognava abilitare flash, ora lo vedo. Simpatico lavoro, Marco [264]

Edit. Vedo che mi aveva già risposto Sal. Tutto ok.
Fabrizio Borca

Avatar utente
lorelay49
Socio GAS TT
Messaggi: 2387
Iscritto il: ven gen 25, 2013 6:32 pm
Nome: giuliano
Regione: Lombardia
Città: Locate di Triulzi
Età: 69
Stato: Non connesso

Re: Aiutino con sketch Arduino

Messaggio da lorelay49 » mer dic 05, 2018 10:31 am

Nemmeno io [264]
Giuliano

Rispondi

Torna a “DIGITALE”