Sono ormai circa 8 ore che non riesco a capire perchè il sottostante sketch funziona (trovato in rete e modificato da me)...
const int Puls = 2;
const int Led = 13;
int ContaPuls = 0;
int StatoPuls = 0;
int UltimoStatoPuls = 0;
void LeggiPuls()
{
StatoPuls = digitalRead(Puls);
}
void Spento()
{
digitalWrite(Led, LOW);
}
void Acceso()
{
digitalWrite(Led, HIGH);
}
void Set_IO()
{
pinMode(Puls, INPUT);
pinMode(Led, OUTPUT);
}
void setup()
{
Set_IO();
Serial.begin(9600);
}
void loop()
{
LeggiPuls();
if (StatoPuls != UltimoStatoPuls)
{
if (StatoPuls == HIGH)
{
ContaPuls++;
Serial.println("ON");
Serial.print("number of button pushes: ");
Serial.println(ContaPuls);
}
else
{
Serial.println("OFF");
}
}
UltimoStatoPuls = StatoPuls;
if (ContaPuls % 4 == 0)
{
Acceso();
}
else
{
Spento();
}
}
mentre invece il sottostante no.....
const int Led=13;
const int Puls=1;
int ContaPuls=0;
int StatoPuls=0;
int UltimoStatoPuls=0;
void LeggiPuls()
{
StatoPuls=digitalRead(Puls);
}
void Acceso()
{
digitalWrite(Led, HIGH);
}
void Spento()
{
digitalWrite(Led, LOW);
}
void Set_IO()
{
pinMode(Led, OUTPUT);
pinMode(Puls, INPUT);
}
void setup()
{
Set_IO();
Serial.begin(9600);
}
void loop()
{
LeggiPuls();
if(StatoPuls != UltimoStatoPuls)
{
if(StatoPuls==HIGH)
{
ContaPuls++;
Serial.println("ON");
Serial.println("Numero di volte che il pulsante è stato premuto: ");
Serial.println(ContaPuls);
}
else
{
Serial.println("OFF");
}
}
UltimoStatoPuls = StatoPuls;
if (ContaPuls % 4 == 0)
{
Acceso();
}
else
{
Spento();
}
}
Allora il primo come gia detto l'ho trovato in rete e modificato. Il secondo è stato modificato ulteriormente ma non funzionando sono piano piano tornato indietro fino ad avere nuovamente il primo sketch... insomma sono praticamente uguali ma il secondo non funziona.... ovvero è come se io premessi il pulsante in continuazione ottenendo così, tramite seriale la visualizzazione di ogni volta che suppostamente il pulsante è stato premuto e per quanto riguarda il led, bè, lui lampeggia... debbo dire anche con una regolarità affascinante. Ma comunque sia a parte il lampeggio non fa assolutamente quello che fa il primo pur essendo essenziamente uguali