====== Idee ====== Das 7 Segment Display im HQ wird über die GPIOs eines Raspis gesteuert. Daruch werden viele GPIOs "verbraucht". Es soll ein Mikrocontroller per SPI mit dem Raspi verbunden werden, der die Ansteurung des Displays übernimmt. ====== Hardware ====== {{:projekte:display:imag0316.jpg?200|}} ===== Mikrocontroller ===== Es wird ein [[http://www.atmel.com/devices/ATMEGA16.aspx|Atmega16APU]] in Standardbeschaltung mit dem internen Takt von 1 MHz verwendet. Das JTAG-Interface ist deaktiviert um PORTC komplett nutzen zu können. Dies kann mit avrdude und folgenden Parametern gemacht werden: -U lfuse:w:0xc1:m -U hfuse:w:0xd9:m ===== Multiplexing ===== Die Elemente sind "gemultiplext". Eine schöne Erklärung gibt es [[https://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige#Mehrere_7-Segment_Anzeigen_.28Multiplexen.29|hier]]. ===== 7-Segmentanzeige ===== Als Anzeige dient eine [[https://www.getdigital.de/LED-Holzuhr.html|LED-Holzuhr]] von getDigital. Die Uhr hat 4 7-Segmentanzeigen mit gemeinsamer Anode, werden die einzelnen Segmente auf 0V gelegt, beginnen sie zu leuchten. Logisch "an" wird deshalb durch eine '0' dargestellt, logisch "aus" durch eine '1'. Die 1000er und 100er (früher Stunden) sind vom Hersteller verkehrt herum eingebaut. Somit ergeben sich folgende Bitmuster für eine Hexadezimale Anzeige: {{:projekte:display:7segment.png?100|}} 10er und 1er Stelle ^Zeichen^G^F^E^D^C^B^A^ |0|0|0|0|0|0|0|1| |1|1|0|0|1|1|1|1| |2|0|1|0|0|1|0|0| |3|0|1|1|0|0|0|0| |4|0|0|1|1|0|0|1| |5|0|0|1|0|0|1|0| |6|0|0|0|0|0|1|1| |7|1|1|1|1|0|0|0| |8|0|0|0|0|0|0|0| |9|0|0|1|0|0|0|0| |A|0|0|0|1|0|0|0| |B|0|0|0|0|0|1|1| |C|1|0|0|0|1|1|0| |D|0|1|0|0|0|0|1| |E|0|0|0|0|1|1|0| |F|0|0|0|1|1|1|0| 1000er und 100er Stelle ^Zeichen^G^F^E^D^C^B^A^ |0|1|0|0|0|0|0|0| |1|1|0|0|1|1|1|1| |2|0|1|0|0|1|0|0| |3|0|0|0|0|1|1|0| |4|0|0|0|1|0|1|1| |5|0|0|1|0|0|1|0| |6|0|0|1|1|0|0|0| |7|1|0|0|0|1|1|1| |8|0|0|0|0|0|0|0| |9|0|0|0|0|0|1|0| |A|0|0|0|0|0|0|1| |B|0|0|1|1|0|0|0| |C|1|1|1|0|0|0|0| |D|0|0|0|1|1|0|0| |E|0|1|1|0|0|0|0| |F|0|1|1|0|0|0|1| ===== Verkabelung ===== ^ Segment ^ Pin (Atmega) ^ | a | PC0 | | b | PC1 | | c | PC2 | | d | PC3 | | e | PC4 | | f | PC5 | | g | PC6 | Zur Steuerung der Transistoren für das Multiplexing werden die Pins PB0 bis PB3 verwendet. ====== Software ===== ====== Protokoll ====