Show Posts
Pages: 1 [2]
16  International / Software / Re: Un delay che cambia tutto... on: January 24, 2013, 11:04:50 am
Qui il punto è rimane perchè!

 smiley-mad
17  International / Software / Re: Un delay che cambia tutto... on: January 24, 2013, 09:13:59 am
Allora! smiley il deley non mi serve, ne prima ne dopo; non è questo il punto!
Il nodo della questione è: i dati son sono random puoi resettare 10 volte e avrai sempre le stesse letture:
Con deley: menu=1 level=1
Senza: menu=0 level=0
I tasti li posso collegare o scollegare ma non cambia nulla!
18  International / Software / Re: Un delay che cambia tutto... on: January 24, 2013, 06:24:10 am
La libreria dovrebbe funzionare così:

if (bitRead(state,CURRENT) != bitRead(state,PREVIOUS)){
        bitWrite(state,CHANGED,true);

Leggi il tasto, prima era o ed adesso è 1 ;
                      prima era 1 ed adesso è 0;            
bene lo stato è cambiato!

La libreria non ha delay ne millis...

lo stato iniziale era dei pin ai quali (non) sono collegati i bottoni è dichiarato a 0, i bottoni non ci sono! (quindi il problema non è hardware)
Scusate ma proprio non capisco!

19  International / Software / Re: Un delay che cambia tutto... on: January 24, 2013, 05:27:40 am
Ciao, forse non sono riuscito a spiegarmi;
Questo da problemi!

prendo l'arduino, senza collegamenti eccetto l'USB, (senza bottoni, led, sonde, nulla di nulla)

copi il codice che ho inserito sopra,

fai l'upload senza delay, apri la seriale e dice:   menu= 0  Level =0  ...poi...
fai l'upload con il delay, april la seriale e dice:  menu= 1  Level =1

Vi prego di verifcare, sono certo di queste condizioni,

Il delay è male, lo sò... ma il delay non manda tutto a pallino!
Se avessi chiesto: "perchè se metto un delay di 2 ore non funziona nulla?" la risposta sarebbe ovvia per tutti,
Invece, in questo caso, il delay, da solo, altera 2 variabili!

20  International / Software / Re: Un delay che cambia tutto... on: January 24, 2013, 04:40:24 am
Scusate... mi serve un po di rodaggio....

Code:
#include <Button.h>                                                    // Libreria Uniquepress (antirimbalzo)
//-----------------------DICHIARAZIONE VARIABILI-----------------------
byte menu=0;                              //Menu                       // Contatore menù 1
byte level=0;                             //Menu                         // Contatore livello (menux = 0  livello = 1) come x e y nello schema del menu
//-----------------------DICHIARAZIONE per LIBRERIE -------------------

Button tastomenu  = Button(9, BUTTON_PULLUP_INTERNAL, true, 50);       // Identifica il Pin al quale è collegato il tasto Menu
Button tastoset  = Button(11, BUTTON_PULLUP_INTERNAL, true, 50);         // Identifica il Pin al quale è collegato il tasto Set
Button tastomeno = Button(10, BUTTON_PULLUP_INTERNAL, true, 50);       // Identifica il Pin al quale è collegato il tasto Tastomeno
//-----------------------VOID SETUP () --------------------------------
void setup() {
               Serial.begin(9600);                                     // Apre la porta seriale a 9600            
             }
//-----------------------VOID LOOP () --------------------------------
void loop()
{
  delay(1000);                                                              //!!!!!!!!!! DELAY INCRIMINATO !!!!!!!!!!!!!!!!
//-----------------------Gestione menù ---------------------------------
  
        
    if((tastomenu.uniquePress() && level==0)) { (menu=menu++); }                    
    if(tastoset.uniquePress() )  { (level++);  }
                        
    if (menu == 1 && level == 0) {}                                                    
    if (menu == 1 && level == 1) {}                                                      
    if (menu == 1 && level == 2) {}                                                      
    if (menu == 1 && level == 3) {}                                                      
    if (menu == 1 && level == 4) {}                                                      
    if (menu == 1 && level == 5) { (level=0);}

    if (menu ==2)  {}                                                    
    if (menu ==3)  {}                                                      
    if (menu ==4)  {}                                                    
    if (menu ==5)  {}                                                    
            
    if (menu ==6)  { delay(500); (menu=0); }            

    Serial.print("Dopo :"); Serial.print(menu); Serial.println(level);
      
    if (menu==0 && level==0) {}
    if (menu==0 && level==1) {}

}                                                  // Fine Loop

21  International / Software / Re: Un delay che cambia tutto... on: January 23, 2013, 06:58:12 pm
Certo, lo allego ridotto ai minimi termini....
22  International / Software / Un delay che cambia tutto... on: January 23, 2013, 06:06:14 pm
Ciao a tutti, le premesse usuali le vorrei rislvere in breve, ho riflettuto a lungo, letto e riletto, provato e riprovato... ma non trovo nulla del genere!
Sono stato un perito elettonico (ora grafico pubbliciario!) e dopo aver cercato una centralina in grado di gestire un orchidiario ho deciso di costruirla.
Un arduino, 4 resistenze, 3 bulsanti... Ora veniamo al codice:

arduino uno e lcs 16x2,
al menu accedo correttamente con 3 pulsanti e fino ad ora tutto bene:

se menu=1 e livello=0   temperatura
se menu=1 e livello =1  illuminazione...

Un incremento gestisce la cosa, button.h garantisce l'antirimbalzo.
Tutto funzionante! Il problema è questo, se aggiungo un delay>40  va tutto a pallino!
Insomma, chiedo in Serial.print menu e livello mi da 1 ed 1, se tolgo il delay mi da 0 e 0.

Chiedo quindi se qualcuno ha qualche spiegazione o qualche idea...
 
Pages: 1 [2]