Ben arrivato! Fate login o registratevi per fruire di tutte le funzionalità del forum e del sito.
Se eri già registrato e non ti ricordi la password usa questo link per recuperare l'accesso
Sito e forum dedicati al fermodellismo, il nostro hobby viene praticato in molte maniere diverse, tutte ugualmente valide: hai un plastico? oppure sei un collezionista? oppure un semplice appassionato? Non esitare a scrivere nel forum, tutti gli interventi sono benvenuti ... Postate foto e video del vostro plastico e chiedete aiuto per ogni problema o curiosità inerente al nostro hobby.

Aiutino con sketch Arduino

Il sistema digitale (DCC) applicato al modellismo ferroviario.

Moderatori: cararci, MrMassy86, adobel55, lorelay49

Messaggio
Autore
Avatar utente
SteaMarco
Messaggi: 831
Iscritto il: domenica 6 dicembre 2015, 8:30
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Stato: Non connesso

Aiutino con sketch Arduino

#1 Messaggio da SteaMarco »

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
Messaggi: 831
Iscritto il: domenica 6 dicembre 2015, 8:30
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Stato: Non connesso

Re: Aiutino con sketch Arduino

#2 Messaggio da SteaMarco »

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: 3780
Iscritto il: domenica 26 aprile 2015, 17:22
Nome: Salvatore
Regione: Emilia Romagna
Città: Bologna
Ruolo: Moderatore
Stato: Non connesso

Re: Aiutino con sketch Arduino

#3 Messaggio da sal727 »

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
Messaggi: 831
Iscritto il: domenica 6 dicembre 2015, 8:30
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Stato: Non connesso

Re: Aiutino con sketch Arduino

#4 Messaggio da SteaMarco »

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: 3780
Iscritto il: domenica 26 aprile 2015, 17:22
Nome: Salvatore
Regione: Emilia Romagna
Città: Bologna
Ruolo: Moderatore
Stato: Non connesso

Re: Aiutino con sketch Arduino

#5 Messaggio da sal727 »

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
Messaggi: 831
Iscritto il: domenica 6 dicembre 2015, 8:30
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Stato: Non connesso

Re: Aiutino con sketch Arduino

#6 Messaggio da SteaMarco »

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
Messaggi: 831
Iscritto il: domenica 6 dicembre 2015, 8:30
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Stato: Non connesso

Re: Aiutino con sketch Arduino

#7 Messaggio da SteaMarco »

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: 131
Iscritto il: mercoledì 31 dicembre 2014, 13:52
Nome: Antonino
Regione: Campania
Città: C.mare
Stato: Non connesso

Re: Aiutino con sketch Arduino

#8 Messaggio da antogar »

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
Messaggi: 831
Iscritto il: domenica 6 dicembre 2015, 8:30
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Stato: Non connesso

Re: Aiutino con sketch Arduino

#9 Messaggio da SteaMarco »

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
Messaggi: 831
Iscritto il: domenica 6 dicembre 2015, 8:30
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Stato: Non connesso

Re: Aiutino con sketch Arduino

#10 Messaggio da SteaMarco »

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: 3780
Iscritto il: domenica 26 aprile 2015, 17:22
Nome: Salvatore
Regione: Emilia Romagna
Città: Bologna
Ruolo: Moderatore
Stato: Non connesso

Re: Aiutino con sketch Arduino

#11 Messaggio da sal727 »

Sarebbe interessante sapere come hai risolto.
Ciao, Salvatore

Avatar utente
SteaMarco
Messaggi: 831
Iscritto il: domenica 6 dicembre 2015, 8:30
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Stato: Non connesso

Re: Aiutino con sketch Arduino

#12 Messaggio da SteaMarco »

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: 10524
Iscritto il: giovedì 10 novembre 2011, 21:17
Nome: Fabrizio
Regione: Piemonte
Città: Piossasco
Ruolo: co-amministratore
Stato: Non connesso

Re: Aiutino con sketch Arduino

#13 Messaggio da Fabrizio »

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

Avatar utente
SteaMarco
Messaggi: 831
Iscritto il: domenica 6 dicembre 2015, 8:30
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Stato: Non connesso

Re: Aiutino con sketch Arduino

#14 Messaggio da SteaMarco »

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: 131
Iscritto il: mercoledì 31 dicembre 2014, 13:52
Nome: Antonino
Regione: Campania
Città: C.mare
Stato: Non connesso

Re: Aiutino con sketch Arduino

#15 Messaggio da antogar »

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
Messaggi: 831
Iscritto il: domenica 6 dicembre 2015, 8:30
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Stato: Non connesso

Re: Aiutino con sketch Arduino

#16 Messaggio da SteaMarco »

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: 10524
Iscritto il: giovedì 10 novembre 2011, 21:17
Nome: Fabrizio
Regione: Piemonte
Città: Piossasco
Ruolo: co-amministratore
Stato: Non connesso

Re: Aiutino con sketch Arduino

#17 Messaggio da Fabrizio »

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

Avatar utente
SteaMarco
Messaggi: 831
Iscritto il: domenica 6 dicembre 2015, 8:30
Nome: Marco
Regione: Piemonte
Città: Moncalieri
Stato: Non connesso

Re: Aiutino con sketch Arduino

#18 Messaggio da SteaMarco »

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: 3780
Iscritto il: domenica 26 aprile 2015, 17:22
Nome: Salvatore
Regione: Emilia Romagna
Città: Bologna
Ruolo: Moderatore
Stato: Non connesso

Re: Aiutino con sketch Arduino

#19 Messaggio da sal727 »

Bisogna abilitare AbobeFlash sul browser
Ciao, Salvatore

Avatar utente
Fabrizio
Socio GAS TT
Messaggi: 10524
Iscritto il: giovedì 10 novembre 2011, 21:17
Nome: Fabrizio
Regione: Piemonte
Città: Piossasco
Ruolo: co-amministratore
Stato: Non connesso

Re: Aiutino con sketch Arduino

#20 Messaggio da Fabrizio »

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

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

Avatar utente
lorelay49
Socio GAS TT
Messaggi: 3122
Iscritto il: venerdì 25 gennaio 2013, 18:32
Nome: giuliano
Regione: Lombardia
Città: Locate di Triulzi
Ruolo: Moderatore
Stato: Non connesso

Re: Aiutino con sketch Arduino

#21 Messaggio da lorelay49 »

Nemmeno io [264]
Giuliano

Torna a “DIGITALE”