HR-SR04

In diesem Artikel wollen wir uns mit dem HC-SR04 Ultraschallsensor beschäftigen. Mit einem solchen Ultraschallsensor, den man bereits für sehr kleines Geld (2..3€) im Internet bekommt, kann man Distanzen messen. Der HC-SR04 ist dabei für einen Messbereich von 2 bis 300 cm vorgesehen. Ich setze eines dieser Module bei meinem Roboter Robby RP6 ein um ihn einen Weitblick zu verschaffen. Den Sensor habe ich auf einer Erweiterungsplatine angebracht um den direkt darunter befindlichen Infrarot-Empfänger nicht zu blockieren. In meiner Konfiguration wird der SR04 von einem PIC18F45K22 angesteuert und ausgewertet.

DS18S20 / DS18B20

Bei dem DS18x20  ( Datenblatt DS18S20 / Datenblatt DS18B20Beschreibung [PDF] ) von Dallas/Maxim handelt es sich um ein Baustein der 1-Wire Familie. Der DS18x20 ist ein einfach anzusprechender Temperatursensor, der mit einer Auflösung von 12 bzw. 9 Bit arbeitet. Er kann im Bereich von -55 °C bis +125 °C eingesetzt werden und liefert hierbei eine Genauigkeit / maximalen Fehler von +/- 0,5 °C. Die Umwandlung einer Temperatur benötigt maximal 750 ms. Eine weitere Besonderheit des DS18x20 ist die Alarmfunktion, welche ich aber noch nicht ausprobiert habe. Für den Anschluss an den PIC benötigt man lediglich eine Datenleitung (IO eines Controllers). Selbstverständlich benötigt der Sensor auch eine Versorgungsspannung. Es gibt die Möglichkeit auch die 5 V bzw. 3,3 V Verbindung wegzulassen indem man den Sensor über die selbe Leitung versorgt, über welche man mit ihm kommuniziert. Dieser Mode heißt: Parasitärer Modus. Als Anfänger ist hiervon allerdings abzuraten. In jedem Fall müsst ihr einen I/O Pin des Mikrocontrollers einplanen. Der größte Vorteil des DS18x20 ist aber, dass man beliebig viele Sensoren an einen Bus legen kann, da die Sensoren jeweils eine einmalige 64 Bit lange Adresse haben wodurch sie eine Verwechslung ausschließen lässt. Ich beschreibe hier allerdings vorerst nur wie man arbeitet, wenn ein einzelner Sensor am Bus angeschlossen ist. Das ist für den Einstieg einfacher. Wenn ihr weitere Sensoren an eurem Bus betreiben möchtet habt ihr dann schon mal das Prinzip verstanden und könnt selbstständig weiter arbeiten.

Drehgeber

Als Inkrementalgeber (auch Drehgeber oder Encoder) werden Sensoren zur Erfassung von Lagerveränderungen genannt. Ein weit verbreitetes Beispiel ist der Lautstärkeregler am Autoradio. Hierbei ist jedoch zu beachten, dass Drehgeber zur Lautstärkeregelung erst bei neueren Radios eingesetzt werden, bei alten Autoradios wurden schlicht logarithmische Potentiometer verbaut, die zum Beispiel das Eingangssignal eines Verstärkers abschwächen. Drehgeber erkennt man daran, dass man sie unendlich lange drehen kann – sie haben keinen Anfang und kein Ende. In diesem Artikel möchte ich auf die Auswertung dieser kleinen, sehr nützlichen Sensoren etwas näher eingehen. Es sei noch darauf hingewiesen, dass in diesem Artikel handbetriebene Drehgeber behandelt werden.

SSD1306

Displays gibt es ja wirklich viele. Doch dieses mal betrachten wir kein gewöhnliches Display sondern ein OLED-Display. Das winzige Display, das ich euch heute vorstellen möchte ist gerade mal 0,96′ groß und eignet sich somit sehr gut für sehr kleine Schaltungen die Informationen über eine HMI (Human Machine Interface) bereitstellen müssen / möchten. Die Platine inklusive vormontiertem OLED-Display hat die Maße von 23 x 27 mm. Angesprochen wird das Display via I2C-Bus und kann dabei auf der Rückseite über umzulötenden SMD-Widerstand von Slave-Adresse 0x78 (default) auf 0x7A geändert werden um einen eventuell vorhandenen Adressenkonflikt zu lösen. Wenn man ein klein wenig Geduld mitbringt, dass ist das Display schon für unter 5€ bei ebay zu haben. Das nachfolgende Foto zeigt das winzige Display, dass wirklich hervorragend ablesbar ist. Auf dem Foto kommt es zwar nicht so gut rüber, doch die Schrift ist weiß auf schwarzem Hintergrund (bei ebay gibt es unter anderem auch Varianten mit blauer Schrift).

KS0066

Hier geht es um die Ansteuerung eines HD44780 kompatiblen LCD Displays (Controller KS0066). Um genau zu sein habe ich das EA DIPS082-HN gewählt. Hierbei handelt es sich um ein 2×8 Zeichen LCD von electronic Assembly. Bei Reichelt gibt es das Modul für ca. 15€ inklusive LED Hintergrundbeleuchtung. Das Display eignet sich hervorragend für kleinere Projekte, bei denen vergleichsweise wenig Infos zur Anzeige gebracht werden müssen.

ILI9341 Bibliothek

In diesem Artikel stelle ich euch meine Bibliothek zum ILI9341-Displaycontroller vor. Warum dieser Controller? Nun es gibt beim Internetauktionshaus sehr viele Anbieter, die RGB-TFT-Displays zu sehr günstigen Preisen anbieten und diese haben des öfteren den ILI9341 als Displaycontroller verbaut. Damit diese Displays praktikabel werden ist es notwendig eine entsprechende Bibliothek zur Verfügung zu haben. Wer das Display nicht unbedingt innerhalb von einer Woche benötigt findet auf eBay problemlos Angebote für gerade einmal 6€ inklusive Versand. Und das für ein RGB-Display mit einer Auflösung von 320 \cdot 240 Pixeln.

HD44780

Ich möchte Euch in diesem Artikel zeigen, wie Ihr ein LCD Display mit einem HD44780 oder kompatiblen Controller ganz einfach mit Hilfe von fertigen Bibliotheken ansteuern könnt. Genauer gesagt stammen die Bibliotheken vom alten C18-Compiler von Microchip. Dieser wird bzw. wurde vom neuen  XC8 Compiler abgelöst. Die Compiler sind jedoch weitesgehend kompatibel und so lassen sich die LCD-Bibliotheken des C18 auch mit dem neuen XC8 verwenden.

EA DOGS

Bei dem EA DOGS handelt es sich um ein besonders kompaktes LCD-Display von Electronic Assembly  Das Display ist mit einem UC1701 Controller ausgestattet und unterscheidet sich in der Ansteuerung kaum von großen Bruder dem EA DOGL mit dem ST7565  Controller, das ich Euch in einem anderen Artikel bereits vorgestellt habe. Bei dem Display handelt es sich um ein Grafikfisplay mit 102×64 Pixel, welche in 7 Seiten (Pages) in der Höhe und in 64 Spalten (Columns) in der Breite aufgeteilt werden. Es gibt das Display in verschiedenen Ausführungen. Die Varianten unterscheiden sich in Art der Darstellung sowie der passenden Hintergrundbeleuchtung. Ich habe von Reichelt das EA DOGS 102N-6 entschieden. Dies wird ohne Beleuchtung betrieben. Zusätzlich kann man das Display mit einer Touchscreen-Folie versehen, was ich jedoch bei der Größe eher als Spielerei empfinde.

Beispielprogramme

In diesem Artikel möchte ich nach und nach Programmbeispiele vorstellen, die Problemstellungen verschiedenster Art betrachten. Die Beispiele beziehen sich, sofern nicht anders erwähnt, auf die Hardware des StartPIC18-Entwicklungsboards. Die Programmbeispiele dienen als Anwendung der erlernten Theorie aus dem  PIC18-Tutorial und dem  PIC-C-Tutorial. Die Beispiele sind natürlich nicht auf die Hardware des StartPIC18 beschränkt, jedoch direkt auf ihr anwendbar 🙂 Sie sind zu nahezu jedem PIC-Controller kompatibel, sofern der Controller das jeweilig notwendige Interface/Modul o.ä. unterstützt.