Raspberry Pi Pico als CD4093

4-fach NAND mit Schmitt-Trigger-Eingängen

Das CMOS-IC vom Typ 4093 ist ein digitales Logikbauelement mit 4 unabhängigen NAND-Gattern mit je 2 Schmitt-Trigger-Eingängen und einem Ausgang.
Ein NAND-Gatter wird wegen seiner universellen Eigenschaft besonders oft gebraucht. Durch die zusätzlichen Schmitt-Trigger-Eingänge kann das logische NAND-Gatter auch abweichende, analoge Spannungen in digitale Pegel umwandeln und dann als logische Zustände verarbeiten. Auf diese Weise kann man kombinierte Analog-Digital-Schaltungen bauen.

Der Raspberry Pi Pico ist ein Mikrocontroller-Board der über viele analoge und digitale Eingänge und Ausgänge verfügt. Er lässt sich einfach programmieren und beispielsweise für Steuerungsaufgaben verwenden.

Die Idee ist, wenn kein CD4093 verfügbar ist, den Raspberry Pi Pico so zu programmieren, dass er einem CD4093 mit 4 NICHT-UND (NAND) entspricht.

Es ist sicherlich wenig sinnvoll einen CD4093 durch einen programmierten Mikrocontroller zu ersetzen. Trotzdem ergeben sich vielleicht sinnvolle Anwendungen:

  • Digitale Logik-Simulation oder -Schulung
  • Aufbau logischer Schaltungen ohne dedizierte ICs
  • Test von Schaltzuständen in Mikrocontroller-Projekten

Aufbau und Bauteile

Raspberry Pi Pico als CD4093

Programmcode

Der Programmcode implementiert vier digitale NAND-Gatter auf einem Mikrocontroller.
Das Programm simuliert vier NAND-Gatter (NICHT-UND). Jedes NAND-Gatter besitzt zwei Eingänge und einen Ausgang.

# Bibliotheken laden
from machine import Pin
import time

# GPIOs festlegen
gpio_in_A1 = 0   # Pin 1
gpio_in_B1 = 1   # Pin 2
gpio_out_X1 = 2  # Pin 4

gpio_in_A2 = 5   # Pin 7
gpio_in_B2 = 4   # Pin 6
gpio_out_X2 = 3  # Pin 5

gpio_in_A3 = 6   # Pin 9
gpio_in_B3 = 7   # Pin 10
gpio_out_X3 = 8  # Pin 11

gpio_in_A4 = 11  # Pin 15
gpio_in_B4 = 10  # Pin 14
gpio_out_X4 = 9  # Pin 12

# GPIOs initialisieren
in_A1  = Pin(gpio_in_A1, Pin.IN, Pin.PULL_DOWN)
in_B1  = Pin(gpio_in_B1, Pin.IN, Pin.PULL_DOWN)
out_X1 = Pin(gpio_out_X1, Pin.OUT, value=0)

in_A2  = Pin(gpio_in_A2, Pin.IN, Pin.PULL_DOWN)
in_B2  = Pin(gpio_in_B2, Pin.IN, Pin.PULL_DOWN)
out_X2 = Pin(gpio_out_X2, Pin.OUT, value=0)

in_A3  = Pin(gpio_in_A3, Pin.IN, Pin.PULL_DOWN)
in_B3  = Pin(gpio_in_B3, Pin.IN, Pin.PULL_DOWN)
out_X3 = Pin(gpio_out_X3, Pin.OUT, value=0)

in_A4  = Pin(gpio_in_A4, Pin.IN, Pin.PULL_DOWN)
in_B4  = Pin(gpio_in_B4, Pin.IN, Pin.PULL_DOWN)
out_X4 = Pin(gpio_out_X4, Pin.OUT, value=0)

# Hauptprogramm
while True:
    out_X1.value(0 if in_A1.value() and in_B1.value() else 1)
    out_X2.value(0 if in_A2.value() and in_B2.value() else 1)
    out_X3.value(0 if in_A3.value() and in_B3.value() else 1)
    out_X4.value(0 if in_A4.value() and in_B4.value() else 1)
    time.sleep(0.1)

Erweiterung

Wenn man diese Lösung einmal realisiert hat, kommt man schnell auf die Idee, statt einem NAND, das Ganze mit anderen Logischen Funktionen zu realisieren. Beispielsweise mit einem UND, ODER oder Exklusiv-ODER.

Anwendungen mit dem CD4093

Mit dieser softwaremäßigen Lösung des CD4093 ist es möglich, folgende Experimente und Anwendungen zu realisieren. Dabei ist zu beachten, dass der Raspberry Pi Pico eine andere Pinbelegung hat, als das IC vom CD4093.

Hinweis: Wenn man den programmierten Raspberry Pi Pico als CD4093-Ersatz verwendet und die folgenden Schaltungen ausprobiert, dann merkt man schnell, wie sinnlos das erscheint. Insbesondere Zeit-abhängige Funktionen lassen sich viel schneller und präziser programmieren, als die selbe Funktion mit Schaltungen mit Widerständen und Kondensatoren zu bauen.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren