Aiutino con sketch Arduino
Moderatori: adobel55, lorelay49, cararci, MrMassy86
- SteaMarco
- Messaggi: 830
- Iscritto il: domenica 6 dicembre 2015, 8:30
- Nome: Marco
- Regione: Piemonte
- Città: Moncalieri
- Stato: Non connesso
Aiutino con sketch Arduino
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ò...
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???
}
}
- SteaMarco
- Messaggi: 830
- Iscritto il: domenica 6 dicembre 2015, 8:30
- Nome: Marco
- Regione: Piemonte
- Città: Moncalieri
- Stato: Non connesso
Re: Aiutino con sketch Arduino
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???
}
}
- sal727
- Messaggi: 4065
- 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
https://forum.arduino.cc/index.php?board=34.0
- SteaMarco
- Messaggi: 830
- Iscritto il: domenica 6 dicembre 2015, 8:30
- Nome: Marco
- Regione: Piemonte
- Città: Moncalieri
- Stato: Non connesso
Re: Aiutino con sketch Arduino
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
- sal727
- Messaggi: 4065
- 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
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
- SteaMarco
- Messaggi: 830
- Iscritto il: domenica 6 dicembre 2015, 8:30
- Nome: Marco
- Regione: Piemonte
- Città: Moncalieri
- Stato: Non connesso
Re: Aiutino con sketch Arduino
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.
- SteaMarco
- Messaggi: 830
- Iscritto il: domenica 6 dicembre 2015, 8:30
- Nome: Marco
- Regione: Piemonte
- Città: Moncalieri
- Stato: Non connesso
Re: Aiutino con sketch Arduino
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;
}
}
- antogar
- Messaggi: 148
- Iscritto il: mercoledì 31 dicembre 2014, 13:52
- Nome: Antonino
- Regione: Campania
- Città: Castellammare di Stabia
- Stato: Non connesso
Re: Aiutino con sketch Arduino
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è ?
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 ?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...
saluti
- SteaMarco
- Messaggi: 830
- Iscritto il: domenica 6 dicembre 2015, 8:30
- Nome: Marco
- Regione: Piemonte
- Città: Moncalieri
- Stato: Non connesso
Re: Aiutino con sketch Arduino
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.
- SteaMarco
- Messaggi: 830
- Iscritto il: domenica 6 dicembre 2015, 8:30
- Nome: Marco
- Regione: Piemonte
- Città: Moncalieri
- Stato: Non connesso
Re: Aiutino con sketch Arduino
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
- sal727
- Messaggi: 4065
- 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
- SteaMarco
- Messaggi: 830
- Iscritto il: domenica 6 dicembre 2015, 8:30
- Nome: Marco
- Regione: Piemonte
- Città: Moncalieri
- Stato: Non connesso
Re: Aiutino con sketch Arduino
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
- Fabrizio
- Socio GAS TT
- Messaggi: 11114
- Iscritto il: giovedì 10 novembre 2011, 21:17
- Nome: Fabrizio
- Regione: Piemonte
- Città: Piossasco
- Ruolo: co-amministratore
- Età: 40
- Stato: Non connesso
Re: Aiutino con sketch Arduino
- SteaMarco
- Messaggi: 830
- Iscritto il: domenica 6 dicembre 2015, 8:30
- Nome: Marco
- Regione: Piemonte
- Città: Moncalieri
- Stato: Non connesso
Re: Aiutino con sketch Arduino
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
- antogar
- Messaggi: 148
- Iscritto il: mercoledì 31 dicembre 2014, 13:52
- Nome: Antonino
- Regione: Campania
- Città: Castellammare di Stabia
- Stato: Non connesso
Re: Aiutino con sketch Arduino
ah ah ahDevo dire che mi devo ricredere devo aver fatto pena a qualcuno che di fatto ha fatto il lavoro!
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!
- SteaMarco
- Messaggi: 830
- Iscritto il: domenica 6 dicembre 2015, 8:30
- Nome: Marco
- Regione: Piemonte
- Città: Moncalieri
- Stato: Non connesso
Re: Aiutino con sketch Arduino
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.
- Fabrizio
- Socio GAS TT
- Messaggi: 11114
- Iscritto il: giovedì 10 novembre 2011, 21:17
- Nome: Fabrizio
- Regione: Piemonte
- Città: Piossasco
- Ruolo: co-amministratore
- Età: 40
- Stato: Non connesso
Re: Aiutino con sketch Arduino
- SteaMarco
- Messaggi: 830
- Iscritto il: domenica 6 dicembre 2015, 8:30
- Nome: Marco
- Regione: Piemonte
- Città: Moncalieri
- Stato: Non connesso
Re: Aiutino con sketch Arduino
- sal727
- Messaggi: 4065
- 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
- Fabrizio
- Socio GAS TT
- Messaggi: 11114
- Iscritto il: giovedì 10 novembre 2011, 21:17
- Nome: Fabrizio
- Regione: Piemonte
- Città: Piossasco
- Ruolo: co-amministratore
- Età: 40
- Stato: Non connesso
Re: Aiutino con sketch Arduino
Edit. Vedo che mi aveva già risposto Sal. Tutto ok.