Go Down

Topic: fermare e far ripartire secTimer (Read 324 times) previous topic - next topic

comtel

salve,ho realizzato un circuito con arduino ,un disply 20 x 4 ,keypad 4 x 4 ,scheda 8 relè.
ho impostato il tasto uno come stop, il tasto 2 come start.
quando premo il tasto 2 il contatore parte regolare.se ad un certo punto premo stop, non riesco più a farlo ripartire se non resettando.
mi scuso perchè ho già scritto un post ma non lo vedo pubblicato per cui mi ripeto

comtel

scusate ho sbagliato file allego quello giusto

fratt

credo sia sbagliato anche questo.

invece di allegarlo prova a inserirlo nel messaggio (usando gli appositi tag code)

comtel

si hai ragione ho scaricato l'agiornamento di w10 e non trovo più lo sketch

comtel

ecco il file corretto

comtel

non trovo # per inserire il file

comtel


Patrick_M

#7
Sep 23, 2018, 09:46 pm Last Edit: Sep 23, 2018, 09:47 pm by Patrick_M
:D lo sai che volendo puoi anche modificare un messaggio gia scritto senza aggiungerne uno nuovo?...

ma è da febbraio che sta lavatrice non funziona? :)

p.s.
se fai come è scritto qui sotto sai come allegare un programma ;)
per inserire (lo sketch) il programma, dall'IDE clicca modifica, clicca copia per il forum poi vieni qui e incolla nel tuo post (ctrl+v) ;)

comtel

no la le lavatrici funzionano purtroppo ho fatto un sciocchezza nel formattare il portatile ho perso lo sketch.
ho provato a recuperarlo con recuva ma tutto quello che ho trovato son tanti quadratini.
quindi mi sono rimesso a fare il file da capo cercando di migliorarlo in alcuni aspetti.
come ad esempio fare fermare la macchina in qualsiasi momento,e qui ci sono.
adesso vorrei fare una funzione esterna per poter inserire i tempi necessari da tastierino keypad 4x4,
ma qui mi incasino perchè non ho proprio idea di come fare.
ho provato alcune cose ma non riesco proprio.
devo fare una serie di 7 tempi diversi (es.time1=( 12 minuti);time2 =(10 minuti) ecc ) ovviamente i minuti li devo inserire da keypad .ho provato a fare un array ma keypad da char e ho bisogno unsigned long
tengo a precisare che ho provato senza sapere bene quello che succedeva perchè il compilatore mi ha dato l'errore di cui sopra. se qualche anima pia può darmi un suggerimeto oun esempio.
sarei grato.

Patrick_M

#9
Sep 24, 2018, 09:58 am Last Edit: Sep 24, 2018, 10:00 am by Patrick_M
il keypad ti da char quindi facendo
int x= mioChar -'0' in x ci va il numero del tasto

se devi avere dei minuti non hai bisogno di unsigned long, ti bastano gli int fino a 32.000 minuti ;)
per inserire (lo sketch) il programma, dall'IDE clicca modifica, clicca copia per il forum poi vieni qui e incolla nel tuo post (ctrl+v) ;)

comtel

ok mi rifaccio vivo. sto provando a creare un menu , ed ho visto che ci sono delle librerie .sto provando ad usare
menbackend. però quando carico il file di esempio il compilatore dice:
menuseEvent was not declared at this scope perchè?

comtel

Code: [Select]

#include <MenuBackend.h>

/*
This is the structure of the modelled menu

Settings
Pin
Debug
Options
Delay (D)
100 ms
200 ms
300 ms
400 ms
*/

//this controls the menu backend and the event generation
MenuBackend menu = MenuBackend(menuUseEvent,menuChangeEvent);
//beneath is list of menu items needed to build the menu
MenuItem settings = MenuItem("Settings");
MenuItem pin = MenuItem("Pin");
MenuItem debug = MenuItem("Debug");
MenuItem options = MenuItem("Options");
MenuItem setDelay = MenuItem("Delay",'D');
MenuItem d100 = MenuItem("100 ms");
MenuItem d200 = MenuItem("200 ms");
MenuItem d300 = MenuItem("300 ms");
MenuItem d400 = MenuItem("400 ms");

//this function builds the menu and connects the correct items together
void menuSetup()
{
Serial.println("Setting up menu...");
//add the file menu to the menu root
menu.getRoot().add(settings);
//setup the settings menu item
settings.addRight(pin);
//we want looping both up and down
pin.addBefore(debug);
pin.addAfter(debug);
debug.addAfter(pin);
//we want a left movement to pint to settings from anywhere
debug.addLeft(settings);
pin.addLeft(settings);
settings.addBefore(options);
settings.addAfter(options);
options.addRight(setDelay);
setDelay.addLeft(options);
setDelay.addRight(d100);
d100.addBefore(d100); //loop to d400
d100.addAfter(d200);
d200.addAfter(d300);
d300.addAfter(d400);
d400.addAfter(d100); //loop back to d100
//we want left to always be bak to delay
d100.addLeft(setDelay);
d200.addLeft(setDelay);
d300.addLeft(setDelay);
d400.addLeft(setDelay);
options.addAfter(options);
}

/*
This is an important function
Here all use events are handled

This is where you define a behaviour for a menu item
*/
void menuUseEvent(MenuUseEvent used)
{
Serial.print("Menu use ");
Serial.println(used.item.getName());
if (used.item == setDelay) //comparison agains a known item
{
Serial.println("menuUseEvent found Dealy (D)");
}
}

/*
This is an important function
Here we get a notification whenever the user changes the menu
That is, when the menu is navigated
*/
void menuChangeEvent(MenuChangeEvent changed)
{
Serial.print("Menu change ");
Serial.print(changed.from.getName());
Serial.print(" ");
Serial.println(changed.to.getName());
}

void setup()
{
Serial.begin(9600);

menuSetup();
Serial.println("Starting navigation:\r\nUp: w   Down: s   Left: a   Right: d   Use: e");
}

void loop()
{
if (Serial.available()) {
byte read = Serial.read();
switch (read) {
case 'w': menu.moveUp(); break;
case 's': menu.moveDown(); break;
case 'd': menu.moveRight(); break;
case 'a': menu.moveLeft(); break;
case 'e': menu.use(); break;
}
}
}



Patrick_M

perchè è scritto così:  menuUseEvent
e non menuseEvent
per inserire (lo sketch) il programma, dall'IDE clicca modifica, clicca copia per il forum poi vieni qui e incolla nel tuo post (ctrl+v) ;)

comtel

si ma lo sketch non i'ho riscritto ho avviato il file di esempio eppure mi da l'errore .qui  ho riportato male io.

Patrick_M

prova ad aggiungere
Code: [Select]

void menuUseEvent(MenuUseEvent used){}

all'inizio, proprio sopra
Code: [Select]

//this controls the menu backend and the event generation
MenuBackend menu = MenuBackend(menuUseEvent, menuChangeEvent);


per inserire (lo sketch) il programma, dall'IDE clicca modifica, clicca copia per il forum poi vieni qui e incolla nel tuo post (ctrl+v) ;)

Go Up