Bool

Beschrijving
Een bool bevat één van twee waarden, ‘true’ (waar) of ‘false’ (onwaar). (Elke bool variabele neemt één byte geheugen in beslag.).

Syntax
bool var = waarde;

Parameters
var: variabelenaam.
waarde: de waarde die je toekent aan die variabele.

Voorbeeld

// Hier maak je een variabele die aangeeft op welke pin het ledje aangesloten zit.
int pin1 = 22; // GPIO22

// Deze pin lees je de status van de drukknop uit
int pin3 = 36; // GPIO36

// status van de drukknop wordt in deze bool variabele opgeslagen
bool statusPin = false;

// de setup functie wordt een keer uitgevoerd als je het Single Board Computer start of reset.
void setup() {
   // initializeert de digital pinnen 'pin1' en 'pin2' als uitvoer.
   pinMode(pin1, OUTPUT);
   pinMode(pin3, INPUT);
}

// de loop functie loopt keer op keer opnieuw, het is een eindeloze lus.
void loop() {

  // de status van de drukknop wordt opgeslagen in statusPin
  statusPin = digitalRead(pin3); // statusPin krijgt hier de waarde 0 of 1.

  digitalWrite(pin1, statusPin ); // led brandt als statusPin een waarde '1', 'true' of 'HIGH' heeft.

  delay(100);
}

Toelichting voorbeeld
In het voorbeeld hierboven wordt op regel 8 de variabele ‘statusPin’ als bool gedefinieerd en krijgt de waarde ‘false’. Op regel 21 krijgt deze een nieuwe waarde toegekend door het uitlezen van de drukknop met de functie digitalRead. Op regel 23 wordt deze waarde gebruikt door de functie digitalWrite om een led aan of uit te zetten. Lees de opmerking hieronder.

Opmerking

bool waarden en constanten
In de Arduino IDE C++ zijn een aantal constanten (dit zijn variabelen die niet gewijzigd kunnen worden) gedefinieerd. Enkele van die constanten zijn ‘true’, ‘false’, ‘HIGH’ en ‘LOW’. Deze hebben een waarde 0 of 1. Dus de bool-waarden ‘true’, ‘HIGH’ of ‘1’ zijn gelijk. En de bool-waarden ‘false’, ‘HIGH’ en ‘0’ zijn ook gelijk. Hieruit kun je afleiden dat een bool variabele maar 2 waardes kan hebben, 0 of 1.

Hieronder een voorbeeld waar je kunt zien dat ‘1’, ‘true’ en ‘HIGH’ hetzelfde zijn. Daaronder staat de uitvoer van dit programma.

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  delay(5000);
  Serial.println("-- Begin --");
  Serial.println();
}

void loop() {
  // put your main code here, to run repeatedly:
  bool x = false;
  bool y = LOW;
  bool z = 0;
  int waarde = 10;

  Serial.println("De volgende variabelen zijn als volgt gedefinieerd:");
  Serial.println("bool x = false;");
  Serial.println("bool y = LOW;");
  Serial.println("bool z = 0;");
  Serial.println("waarde = 10;");
  Serial.println("--------------------------------------------------");
  Serial.println();

  Serial.print("x: ");
  Serial.println(x);

  Serial.print("y: ");
  Serial.println(y);

  Serial.print("z: ");
  Serial.println(z);

  Serial.print("Waarde: ");
  Serial.println(waarde);

  waarde = x;
  Serial.print("Waarde = x: ");
  Serial.println(waarde);

  waarde = y;
  Serial.print("Waarde = y: ");
  Serial.println(waarde);

  waarde = z;
  Serial.print("Waarde = z: ");
  Serial.println(waarde);
  Serial.println();
  Serial.println();
  Serial.println();


  x = true;
  y = HIGH;
  z = 1;
  waarde = 15;

  Serial.println("De variabelen zijn opnieuw als volgt gedefinieerd:");
  Serial.println("bool x = true;");
  Serial.println("bool y = HIGH;");
  Serial.println("bool z = 1;");
  Serial.println("waarde = 15;");
  Serial.println("--------------------------------------------------");
  Serial.println();

  Serial.print("x: ");
  Serial.println(x);

  Serial.print("y: ");
  Serial.println(y);

  Serial.print("z: ");
  Serial.println(z);

  Serial.print("Waarde: ");
  Serial.println(waarde);

  waarde = x;
  Serial.print("Waarde = x: ");
  Serial.println(waarde);

  waarde = y;
  Serial.print("Waarde = y: ");
  Serial.println(waarde);

  waarde = z;
  Serial.print("Waarde = z: ");
  Serial.println(waarde);
  Serial.println();

  delay(240000);
}
-- Begin --

De volgende variabelen zijn als volgt gedefinieerd:
bool x = false;
bool y = LOW;
bool z = 0;
waarde = 10;
--------------------------------------------------

x: 0
y: 0
z: 0
Waarde: 10
Waarde = x: 0
Waarde = y: 0
Waarde = z: 0



De variabelen zijn opnieuw als volgt gedefinieerd:
bool x = true;
bool y = HIGH;
bool z = 1;
waarde = 15;
--------------------------------------------------

x: 1
y: 1
z: 1
Waarde: 15
Waarde = x: 1
Waarde = y: 1
Waarde = z: 1