Go Down

Topic: aiuto software please (Read 412 times) previous topic - next topic

lupastro81

Sep 22, 2012, 11:31 pm Last Edit: Sep 23, 2012, 12:41 am by UweFederer Reason: 1
ciao, in questo codice, ingresso con antirimbalzo, e uscita, quando si riavvia l'arduino mega mi manda l'uscita a "1", mentre vorrei fosse a "0" ... come posso fare?
grazie

Code: [Select]
#define P1 22  //INPUT PULSANTE -k1  CENTROVOLTA CUCINA
#define K1 2  //OUTPUT relè  CENTROVOLTA CUCINA

#define debounce 150  //Tempo di antirimbalzo


// variabili interne
int stateK1 = HIGH;  //Stato del pin OUTPUT LED
int readingK1;  //Lettura corrente del pin INPUT PULSANTE
int previousK1 = LOW;  //Lettura precedente del pin INPUT PULSAN
long timeK1 = 0;  //Ultimo tempo in cui il pin di OUTPUT è stato attivato

void setup()

{
    pinMode(P1, INPUT);  //Imposto il pulsante come INPUT
    pinMode(K1, OUTPUT);  //Imposto il LED come OUTPUT
}

void loop()
// K1  P1

{  {
    readingK1 = digitalRead(P1);  //Leggo il valore in ingresso dato dal pulsante

    //Se abbiamo premuto in pulsante (HIGH) e la volta prima il suo stato
    //era LOW ed è trascorso il tempo necessario
    if (readingK1 == HIGH && previousK1 == LOW && millis() - timeK1 > debounce) {
        //Inverte l'OUTPUT
        if (stateK1 == HIGH)
            stateK1 = LOW;
        else
            stateK1 = HIGH;

        //Ricorda quando l'ultima volta è stato premuto il pulsante  
        timeK1 = millis();
    }

digitalWrite(K1, stateK1);  //Scrivo lo stato sul LED

previousK1 = readingK1;

}

uwefed

forse perché scrivi all inizio:
Code: [Select]
int stateK1 = HIGH;  //Stato del pin OUTPUT LED
Ciao Uwe

lupastro81


Go Up