Funkcja wywołana raz w “loop”

bool asked = false;

void loop()
{
if(!asked)
{
askquestion();
asked = true;
}
getanswer();
}
Advertisements

Przycisk jako włącznik / wyłącznik

Problem:

Z braku przełącznika musiałem napisać program dla przycisku, który działać ma jak przełącznik.

Podłączenie:

Switch_yar

Kod:


/*
* Przycisk jako włącznik/wyłącznik
* autor yarogniew,
* Arduino dla strasznych lamerów
*/

int switchPin = 4; // przycisk podłączony do pinu D4
int val;
int buttonState;
int butPressCount = 0;

void setup() {
pinMode(switchPin, INPUT); // Ustawienie pinu jako wejście

Serial.begin(9600); // Ustawienie portu komunikacji na 9600bps
buttonState = digitalRead(switchPin); // odczyt wejściowego stanu pinu
}

void loop(){
val = digitalRead(switchPin); // odczyt stanu przycisku
delay(1);

if (val != buttonState) { // jeśli przycisk zmienił stan
if (val == LOW) { // sprawdzenie czy przycisk został włączony
butPressCount++; // liczymy ilość naciśnięć
//Serial.print("butPressCount = ");
//Serial.println( butPressCount);

if (!isEven(butPressCount)) // sprawdzamy czy liczba wciśnięć jest parzysta
{Serial.println("Wyłącz");
butPressCount=0;} // zerujemy licznik wciśnięć, żeby nie mnożyć bytów
else
{Serial.println("Włącz");}

} else { // przycisk został puszczony
//Serial.println("Button just released");

}
}

buttonState = val; // save the new state in our variable
}

int isEven(int x)
{
if ((x%2)==0) return 0;
else return 1;
}