Hulp bij changeButtomState

Arduino specifieke Software
Berichten: 2
Geregistreerd: 05 Mei 2013, 18:13

Hulp bij changeButtomState

Berichtdoor fdus » 05 Mei 2013, 20:15

Hallo,
Ben al een tijdje bezig met Arduino’s hardware en programmeren en veel zaken (tutorials) :P kun je teruglezen op internet.
Ik heb nu een werkende code waarbij de pin(41) netjes wordt gedetecteerd en via de monitor te volgen is. Alleen zie ik die melding telkens voorbij scrollen!
Mijn issue is het nu dat ik maar een melding naar de PC wil versturen als de status van een poort wijzigt.
Uitleg: De "1" is (pullup weerstand) uit maar als die wijzigt naar een “0” (pin(41) aan [gnd] dan wordt deze met een Serial.print & println (loop) via de seriële verbinding naar de PC verstuurt.
Met de monitor (Arduino software) zie ik echter dat de boodschap zo lang herhaalt wordt als de drukknop blijft ingedrukt. Logisch maar ik wil alleen de eerste wijziging naar de PC versturen... dus of "1" of "0". Hoe kan ik dat zo programmeren dat alle andere meldingen ondervangen worden? Kan iemand mij daarmee helpen?
Dit is een deel van de code:

void sendID () {
// send identification string
Serial.print("ID=ArduinoMega#1;");
Serial.println();
}
void readPins() {
//read the pushbutton value into a variable
int sensorVal = digitalRead(41);
//print out the value of the pushbutton
if(sensorVal == 0)

{
Serial.print("ID=AM#1-41: Nightfall: value=");
Serial.println(sensorVal);
delay(100);
}
if (sensorVal == HIGH) {
digitalWrite(13, LOW);
}
else {
digitalWrite(13, HIGH);
}
}

Wanneer ik onderste regel in de loop lus plaats dan zie ik maar een regel, zoals ik het graag zie... maar dan stopt de applicatie ook omdat while altijd true blijft.
// do nothing while:
while(sensorVal == 0);

Alvast bedankt voor jullie hulp,
Fdus
Laatst gewijzigd door fdus op 05 Mei 2013, 20:36, in totaal 1 keer gewijzigd.

Advertisement

Berichten: 85
Geregistreerd: 10 Jan 2013, 14:51
Woonplaats: Waddinxveen

Re: Hulp bij changeButtomState

Berichtdoor Karel » 05 Mei 2013, 20:36

Ik kan het in je code stoppen, maar het is misschien leuker om het zelf te doen:

Je neemt een extra variabele om de vorige sensorwaarde in op te slaan (bijv. previous_value). In die variabele sla je de waarde van sensorVal op nadat deze is veranderd.

dus alleen als sensorVal == 0 en previous_value == 1 moet er dus een boodschap worden getoond. Direct daarna wordt de waarde van previous_value ook 0, en dan wordt er dus ook geen boodschap meer getoond.

Vergeet niet om bij het wijzigen van sensorVal naar 1 ook de previous_value op 1 te zetten.

Succes, Karel
If you think education is expensive, try ignorance! (Derek Bok)

Berichten: 2
Geregistreerd: 05 Mei 2013, 18:13

Re: Hulp bij changeButtomState

Berichtdoor fdus » 26 Jun 2013, 12:13

Bedankt!!! Helaas door omstandigheden niet eerder kunnen reageren daarom beter laat dan nooit!!

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 36 gasten