Buongiorno!
Posto qui di seguito un mio codice che non fa quello che dovrebbe fare!
Non riesco a capire il perchè..
Quando premo il bottone dovrebbe aggiungere 1 alla variabile conta (messa per alternare la scelta dell'algoritmo) e fare la divisione.
Se il resto è 0 avvia il primo algoritmo e se è 1 avvia il secondo..
Praticamente ogni volta che premo il bottone deve cambiarmi algoritmo!
Però non lo fa e giuro che non riesco a capire il perchè!
Nel codice ho spiegato tutto. Richiedo l'aiuto degli esperti!
int Bottone = 2; // Input del Bottone
int Faretto = 3; // Input del Bottone
int LedArduino = 13;
// ----------------------------------------------------------------
void setup(){
Serial.begin(9600); // Apro porta seriale e setto Boud Rate a 9600 bps
pinMode(Faretto, OUTPUT); // Dichiaro Bottone come Input
pinMode(Bottone, INPUT); // Dichiaro Bottone come Input
pinMode(LedArduino, OUTPUT); // Per l'algoritmo 1
}
// ----------------------------------------------------------------
void loop(){
int ValBottone = digitalRead(Bottone); // Leggo Valore del Bottone
int conta = 1;
int resto = 0;
if ( ValBottone == LOW ){
conta = conta++;
resto = conta % 2;
Serial.println(" ### Bottone Premuto");
// Faccio stampare conta per controllare.
Serial.println(conta);
}
else { Serial.println(" ### Bottone Non Premuto"); }
if ( resto == 0) {
Serial.println("------- ALGORITMO NUMERO 1 -------");
// Richiamo il primo metodo
Algoritmo1();
}
else {
Serial.println("------- ALGORITMO NUMERO 2 -------");
// Richiamo secondo metodo
Algoritmo2();
}
delay(100);
}
// ------------------ METODO NUMERO 1 ----------------------------------------------------------------------------------
void Algoritmo1(){
int ValoreLuce;
ValoreLuce = analogRead(0); // Entrata analogica Numero 0
Serial.println(ValoreLuce,DEC);
// ----------- ACCENSIONE LED SE E' BUIO ----------------
if(ValoreLuce<650){
Serial.println("LED SPENTO");
digitalWrite(Faretto, HIGH); // Accendo il faretto.
}
else {
Serial.println("LED ACCESO");
digitalWrite(Faretto, LOW); // Spengo il faretto.
}
delay(150);
// ----------- Codice stupido per capire che è l'algoritmo 1
digitalWrite(LedArduino, HIGH);
delay(800);
digitalWrite(LedArduino, LOW);
delay(800);
}
// ------------------ METODO NUMERO 2 ----------------------------------------------------------------------------------
void Algoritmo2(){
int ValoreLuce;
ValoreLuce = analogRead(0); // Entrata analogica Numero 0
Serial.println(ValoreLuce,DEC);
// ----------- ACCENSIONE LED SE E' BUIO ----------------
if(ValoreLuce<650){
Serial.println("LED SPENTO");
digitalWrite(Faretto, HIGH); // Accendo il faretto.
}
else {
Serial.println("LED ACCESO");
digitalWrite(Faretto, LOW); // Spengo il faretto.
}
delay(150);
// -----------
Serial.println("Codice stupido dell'algoritmo 2");
}
Samuele