Arduino als NAND

Allgemeines

In der Elektronik bezeichnet man digitale integrierte Schaltkreise als Logikbausteine, die einfache bis komplexe logische Schaltfunktionen realisieren können. Die Palette reicht von Bauelementen mit mehreren einfachen Logikgattern, wie UND-, ODER- und NAND-Gattern, sowie Flipflops bis hin zu programmierbaren Bauelementen wie PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), Gate-Arrays und ASICs (Application-Specific Integrated Circuits, applikationsspezifische integrierte Schaltungen).

Typische Vertreter von TTL-Logikbausteinen sind zum Beispiel:

  • SN7400: Vierfach-NAND

  • SN7402: Vierfach-NOR

  • SN7404: Sechsfach-NICHT

  • SN7408: Vierfach-UND

  • SN7432: Vierfach-ODER

  • SN7486: Vierfach-XOR

Das NAND-Gatter

Das NAND-Gatter ist eine Kombination aus einem UND-Gatter und einem NICHT-Gatter, die in Reihe geschaltet sind.

Ein NAND-Gatter ist ein Logikbaustein mit mit zwei oder mehr Eingängen. Die Eingänge werden üblicherweise mit A, B, C usw. bezeichnet. Die Ausgänge mit Q oder Y.

NAND-Gatter spielen in der Digitaltechnik eine wichtige Rolle, da sich mit ihnen alle weiteren logischen Verknüpfungen, sowie komplexe Schaltungen, realisieren lassen. Es ist ein universelles Logikgatter.

Das Logiksymbol

Das Logiksymbol eines NAND-Gatters.

Die Wahrheitstabelle
A (Eingang) B (Eingang) Q (Ausgang)
0 0 1
1 0 1
0 1 1
1 1 0

Links ist die Wahrheitstabelle für ein NAND-Gatters abgebildet.

Nur wenn beide Eingänge A und B= 1 sind, wird er Ausgang 0.

Arduino Sketch

Mit dem Arduino können wir die Logik, die die Logikbausteine integrieren, sehr einfach simulieren. Wir wollen nun ein NAND-Gatter mit zwei Tastern für die Eingänge A (=S1) und B (=S2) und einer LED (H1) für den Ausgang Q bauen.

Die beiden Eingangspins D2 und D3 sind jeweils mit einem Schalter verbunden. Die Eingangspins sind intern über einen Pull-Up-Widerstand durch die Konfiguration INPUT_PULLUP mit der Versorgungsspannung verbunden. Die Schalter S1 und S2 können die Eingänge unabhängig voneinander gegen Masse (LOW) schalten. Der Arduino liest die Zustände seiner Eingänge nun kontinuierlich ein, verknüpft sie logisch und gibt das Ergebnis an Pin D5 aus. Die LED am Ausgang D5 erlischt, wenn die beiden Eingänge D2 und D3 das Signal HIGH haben.

Bauteilliste (BOM)

Folgende Bauteile werden zum Aufbau des Versuchs benötigt:

Bauteil Anzahl Beschreibung
Arduino Nano oder Uno 1 Mikrocontroller
Breadboard mit Kabel 1 Set Aufbau und Verbindung
Taster oder Schalter 2 Schließerkontakt
LED, 2mA 1 Low-Current-LED 3 oder 5mm Durchmesser
Widerstand, 1,5kOhm 1 bedrahtet

Arduino-Code

Der Code, der den Arduino zum NAND-Glied macht, sieht folgendermaßen aus:


// Arduino simuliert NAND-Glied
const int IN_BTN_A = 2;
const int IN_BTN_B = 3;
const int OUT_PIN_Q = 5;

void setup()
{
    //Eingänge
    pinMode(IN_BTN_A, INPUT_PULLUP);
    pinMode(IN_BTN_B, INPUT_PULLUP);
    //Ausgang
    pinMode(OUT_PIN_Q, OUTPUT);
}

void loop()
{
    bool a, b, q;

    a = digitalRead(IN_BTN_A) == LOW;   //Eingänge einlesen 
    b = digitalRead(IN_BTN_B) == LOW; 
    q = !(a && b);                      //Signale verknüpfen

    if(q)     //Ergebnis anzeigen
    {
      digitalWrite(OUT_PIN_Q, HIGH);  
    } 
    else
    {
      digitalWrite(OUT_PIN_Q, LOW);
    }  
}

Aufbauhinweise

  • LEDs mit passenden Widerständen verwenden.

  • Schalter richtig anschließen.

Erweiterungsmöglichkeiten

Die Schaltung ist sehr rudimentär und kann durch jeder Zeit erweitert werden.

  • Weitere Ein- und Ausgänge beschalten.

  • Display zur Anzeige der Ein- und Ausgangssignale.

  • Signale der Ein- und Ausgänge über die serielle Schnittstelle an den PC senden.

  • Weitere Logikfunktionen wie UND, ODER, EXOR etc. implementieren und anhand ihrer Wahrheitstabellen die Funktionalität überprüfen.



TEILEN

Jetzt herunterladen.

Lade mein Freebie - "Die 10 wichtigsten Konzepte, die du wirklich verstehen musst" hier herunter.

ÜBER MICH

Ich möchte dich durch inspirierende Projekte und nützliche Anleitungen unterstützen, um deine digitalen Fähigkeiten zu verbessern und selbstbewusst in die Welt der Elektronik einzutauchen.

Erstellt mit © systeme.io • Datenschutzerklärung • AGB