diff --git a/20231109/400_points_breadboard.jpg b/20231109/400_points_breadboard.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8ba048255851581a84db16c4d5a50802f7521486
Binary files /dev/null and b/20231109/400_points_breadboard.jpg differ
diff --git a/20231109/hp-2023ws-p2.pdf b/20231109/hp-2023ws-p2.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..f5e458a3e21ddbb169161002ad8995835ed3dcdc
Binary files /dev/null and b/20231109/hp-2023ws-p2.pdf differ
diff --git a/20231109/hp-2023ws-p2.tex b/20231109/hp-2023ws-p2.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3b5868deaa42a08c9d238c9e778dc330b81c76bb
--- /dev/null
+++ b/20231109/hp-2023ws-p2.tex
@@ -0,0 +1,180 @@
+% hp-2023ws-p2.pdf - Labor Notes on Low-Level Programming
+% Copyright (C) 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022  Peter Gerwinski
+%
+% This document is free software: you can redistribute it and/or
+% modify it either under the terms of the Creative Commons
+% Attribution-ShareAlike 3.0 License, or under the terms of the
+% GNU General Public License as published by the Free Software
+% Foundation, either version 3 of the License, or (at your option)
+% any later version.
+%
+% This document is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this document.  If not, see <http://www.gnu.org/licenses/>.
+%
+% You should have received a copy of the Creative Commons
+% Attribution-ShareAlike 3.0 Unported License along with this
+% document.  If not, see <http://creativecommons.org/licenses/>.
+
+% README: Versuch 2: Druckknopfampel
+
+\documentclass[a4paper]{article}
+
+\usepackage{pgscript}
+\usepackage{multicol}
+\usepackage{amsmath}
+\usepackage{sfmath}
+
+\sloppy
+\raggedcolumns
+\pagestyle{empty}
+\addtolength{\textheight}{1cm}
+\newcommand{\sep}{~$\cdot$~}
+\newcommand{\mylicense}{CC-by-sa (Version 3.0) oder GNU GPL (Version 3 oder höher)}
+
+\begin{document}
+
+  \makebox(0,0.005)[tl]{\includegraphics[scale=0.72]{logo-hochschule-bochum-cvh-text-v2.pdf}}\hfill
+  \makebox(0,0)[tr]{\includegraphics[scale=0.5]{logo-hochschule-bochum.pdf}}
+  \par\bigskip\bigskip
+  \begin{center}
+    \Large\textbf{Praktikumsversuch 2: Druckknopfampel}
+    \par\medskip
+    \normalsize Hardwarenahe Programmierung\sep
+    Wintersemester 2023/24\sep
+    Prof.~Dr.~Peter Gerwinski
+  \end{center}
+
+  Aufgabe: Programmieren Sie einen Mikrocontroller so,
+  daß er eine Druckknopfampel steuern kann.
+
+  \begin{multicols}{2}
+
+    \begin{itemize}
+      \item
+        Normalerweise zeigt eine Druckknopfampel rotes Licht für die
+        Fußgänger und grünes Licht für die Straße.
+      \item
+        Nach Knopfdruck wechselt die Straße über Gelb nach Rot.
+        Danach bekommen die Fußgänger Grün.
+        Nach einer gewissen Zeit bekommen die Fußgänger wieder Rot,
+        und die Straße wechselt über Rot-Gelb wieder zu Grün.
+
+      \medskip
+      \item
+        Als Mikrocontroller-Entwicklungsplattform stellen wir Ihnen
+        einen \emph{Arduino Uno\/} zur Verfügung.
+      \item
+        Software-Entwiklung für den Arduino geschieht üblicherweise
+        mit Hilfe der Entwicklungswerkzeuge \emph{GCC, binutils und
+        glibc für AVR} sowie \emph{avrdude\/} für das Herunterladen
+        des geschriebenen Programms vom PC auf den Mikrocontroller.
+
+        Die Arduino-Entwicklungsumgebung (siehe z.\,B.\
+        \url{https://www.arduino.cc/en/Main/Software}) integriert
+        alle diese Komponenten.
+      \item
+        Wir schreiben unser Programm in C und nicht in der INO-Sprache.
+        Wenn die Quelltext-Dateien in der Arduino-Entwicklungsumgebung
+        die Endung \file{.ino} haben, ist das kein Problem,
+        sofern der Inhalt der Datei in C geschrieben ist.
+      \item
+        Den Schaltplan des Arduino Uno sowie das Datenblatt des
+        ATmega328p finden Sie per Web-Recherche.
+
+      \columnbreak
+
+      \item
+        Sie können Ihr Programm direkt aus der Arduino-Entwicklungsumgebung heraus
+        compilieren und auf den Mikrocontroller herunterladen.
+        Wenn Sie dies von der Kommandozeile aus machen möchten,
+        geht dies folgendermaßen:
+
+        \lstinline[style=cmd]{avr-gcc -Wall -Os -mmcu=atmega328p \}\\
+        \lstinline[style=cmd]{dateiname.c -o dateiname.elf}
+
+        \lstinline[style=cmd]{avr-objcopy -O ihex \}\\
+        \lstinline[style=cmd]{dateiname-4.elf dateiname-4.hex}
+
+        \lstinline[style=cmd]{avrdude -P /dev/ttyACM0 -c arduino \}\\
+        \lstinline[style=cmd]{-p m328p -U flash:w:dateiname.hex}
+
+%        Notfalls: \lstinline[style=cmd]{sudo chmod 666 /dev/ttyACM0}
+
+      \medskip
+      \item
+        Die Verdrahtung erfolgt auf Steckplatinen -- siehe
+        Abb.~\ref{Steckplatine}.
+        Die mit roten und blauen Streifen markierten Lochreihen sind
+        in Längsrichtung elektrisch verbunden, alle anderen in
+        Querrichtung mit einer Trennung in der Mitte. Üblicherweise
+        verwendet man die Längsrichtung für die Stromversorgung: Rot
+        = Versorgungsspannung, Blau = 0\,V.
+      \item
+        LEDs sind keine Glühlampen! Sie haben einen Pluspol (länger)
+        und einen Minuspol (kürzer, Gehäuse abgeflacht), und sie dürfen
+        \textbf{nur mit Vorwiderstand} betrieben werden,
+        andernfalls besteht die Gefahr einer Zerstörung der LED
+        und/oder des Arduino.
+      \item
+        Anstelle eines Drucktasters verwenden wir ein Stück Draht.
+      \item
+        Bevor Sie Ihre Schaltung unter Strom setzen, lassen Sie
+        diese \textbf{durch einen Betreuer prüfen}.
+    \end{itemize}
+
+    \vspace*{-\medskipamount}
+
+    \strut\hfill\emph{Viel Erfolg!}\\[-3.5cm]
+
+  \end{multicols}
+
+  \vspace*{-1.5\bigskipamount}
+
+  \begin{figure}[h]
+    \begin{minipage}{7.3cm}
+      \includegraphics[width=8cm]{400_points_breadboard.jpg}
+      \vspace*{-1cm}
+      \caption{Steckplatine\label{Steckplatine}}
+      \vspace*{1cm}
+    \end{minipage}%
+    \begin{minipage}{9cm}
+      \small\raggedright
+      \vspace*{1cm}
+      Bildquelle:
+      \href{https://commons.wikimedia.org/wiki/File:400_points_breadboard.jpg}%
+           {\nolinkurl{https://commons.wikimedia.org/}\\
+            \nolinkurl{wiki/File:400_points_breadboard.jpg}}\\
+      Autor: \url{https://www.flickr.com/people/33504192@N00}\\
+      Lizenz: CC-BY-SA 2.0 Generic
+    \end{minipage}
+  \end{figure}
+
+  \vspace*{-1.5\bigskipamount}
+
+  \vfill
+
+  \begingroup
+
+    \small
+
+    \setlength{\leftskip}{3cm}
+
+    Stand: 9.\ November 2023
+
+%    Soweit nicht anders angegeben:\\
+    Copyright \copyright\ 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023\quad Peter Gerwinski\\
+    Lizenz: \mylicense
+
+    Sie können diese Praktikumsunterlagen einschließlich \LaTeX-Quelltext
+%    und Beispielprogramme\\
+    herunterladen unter:\\
+    \url{https://gitlab.cvh-server.de/pgerwinski/hp}
+
+  \endgroup
+
+\end{document}
diff --git a/README.md b/README.md
index d128bc2664dee18913b849b94dd49a441d04f66e..a6235d5cb3b725dd9a94bf26f0dfb554238d3348 100644
--- a/README.md
+++ b/README.md
@@ -45,6 +45,7 @@ Musterlösungen:
 Praktikumsunterlagen:
 ---------------------
  * [Versuch 1: RSA-Verschlüsselung](https://gitlab.cvh-server.de/pgerwinski/hp/raw/2023ws/20231012/hp-2023ws-p1.pdf)
+ * [Versuch 2: Druckknopfampel](https://gitlab.cvh-server.de/pgerwinski/hp/raw/2023ws/20231109/hp-2023ws-p2.pdf)
 
 Alte Klausuren:
 ---------------