Log. Operatoren / Logische Verknüpfungen

Nicht

nicht-block

Block

Der NICHT Block ist ein Logik-Block, der das Signal eines digitalen Blocks umkehren kann. Ein digitaler Block kann entweder wahr (true) oder falsch (false) sein. Durch den NICHT Block wird diese Eigenschaft umgekehrt. Wenn der Pin 2 normalerweise als digitaler Eingang festgelegt wird, dann ist dieser wahr, wenn eine Spannung von 5 Volt an ihm anliegt und falsch, wenn keine Spannung anliegt. Ist der digitalRead Block allerdings mit dem NICHT Block verknüpft, dann kehrt sich diese Eigenschft genau um. Es können auch die logischen Vergleich UND und ODER mit einem NICHT Block verknüpft werden. Genau so wie alle Vergleichsoperatoren (==, !=, <, >... usw.). Auch bei diesen ist die Logik dann genau umgekehrt. Ist der Block false, dann ändert der NICHT Block das Signal zu true. Ist der Block true, dann ändert der NICHT Block das Signal zu false.

Beispiel

Der Pin 2 ist als digitaler Eingang definiert. Nun soll bei jedem Durchlauf der Hauptschleife eine Nachricht auf dem seriellen Monoitor ausgegeben werden, wenn der Pin LOW ist. Dazu wird der digitalRead, der falls und der Serial print Block verwendet.

In ArduBlock kann diese Funktion folgendermaßen mit einem NICHT Block realisiert werden:

nicht-block-beispiel

Code

Im Code kann der NICHT Block auf zwei verschiedene Weisen realisiert werden. Zum einen kann vor das Statement, welches negiert werden soll ein Ausrifezeichen (!) gesetzt werden.
Beispiel: Wenn Variable var größer als 10 ist, dann soll das Statement falsch sein:
!(var > 10) Alternativ kann der Befehl not() verwendet werden, wobei zwischen die Klammern dann der Ausdruck geschrieben wird, auf den der "nicht" Befehl angewendet werden soll.
Beispiel von oben:
not(var > 10)

Das Beispiel mit dem digitalen Eingang von oben würde im Code folgendermaßen aussehen:

void loop() {
  if (!( digitalRead(2) )) {
    Serial.print("Der digitale Pin 2 ist LOW ");
    Serial.println();
  }
}

Alternativ:

void loop() {
  if (not( digitalRead(2) )) {
    Serial.print("Der digitale Pin 2 ist LOW ");
    Serial.println();
  }
}