Entwicklerboard V2.1
1
von Peter
2
Inhaltsverzeichnis Vorwort …………………………………………………………………………….………..…………….. 3 Einleitung ………………………………………………………………………………..…….………….. 4 Aufbau …………………………………………………………………………...……..……….……….... 5 Programmierung ……………………………………………………………………..…….……….…… 7 Stromversorgung …………………………………………………………………..………………..…... 9 Eingabe und Ausgabe …………………………………………………………..….………………..…. 11 LED und Taster ………………………………………………………………….…..…………………… 13 LCD Modul ……………………………………………………………………….….…………………….. 14 OLED Modul ……………………………………………………………………….……………………… 16 7 Segmentanzeige ………………………………………………………………….……………………. 17 Echtzeituhr DS1307 .…………………………………………………………………………………….. 18 Temperatur Sensor DS18B20 .…………………………………………………………………………. 19 AD-Wandler ……………………………………………………………………………………………….. 20 Stromsensor INA 219 ………………………………………………………………………………….… 21 Funkuhr DCF-77 ……………………………………………………………………………………….…. 22 EEPROM ………………………………………………………………………………………...…….…... 23 Digital Poti MCP 42010 ……………………………………………………………………………….…. 24 Drehimpulsgeber ……..……………………………………………………………………………….…. 25 Erweiterungs Bus ………………………………………………………………………………………... 26 Schaltplan …………………………………………………………………………………………………. 27 Stückliste komplett ………………………………………………………………………………………. 28 Stückliste minimal ……………………………………………………………………………………….. 33 Bezugsquelle der Platine ……………………………………………………………………………….. 37
3
Vorwort: Ich stelle euch hier mein Entwickler Board vor, welches von mir entwickelt wurde. Die unbestückte Platine kann über mich bezogen werden. Dazu aber später mehr. Ich habe sie so entwickelt das auch Anfänger damit gut zurechtkommen, die zum ersten Mal in die Programmierung des Mikrocontrollers einsteigen wollen. Programmiert wird hier von der Firma Microchip der PIC 18F45K50. Es kann aber auch ein anderer Controller verwendet werden, solange er Pin-Kompatible ist. Die Programmiersprache in dem der PIC programmiert werden kann, ist jedem selbst überlassen. Ob in C, Basic, Pascal oder was es sonst noch für Sprachen gibt, kann jeder für sich selbst entscheiden. Die Programmiersprache ist weder vom Board noch vom Mikrocontroller abhängig. Ich selber programmiere in MIkroBasic Pro von der Firma MikroElektronika. Zu jeder Hardware, die auf dem Board ist, kann ich auch Beispiele für geben. Natürlich dann nur in der Sprache in der ich programmiere. Aber im Forum gibt es genug User die auch andere Sprachen können. Und noch ein Satz zur Benutzung dieser Anleitung. Alle Wörter, die in blau geschrieben sind, enthalten einen Link, wo man weitere Informationen findet. Einfach auf das blaue Wort klicken und ihr werdet dorthin geleitet. Es kann sein, dass ihr eine Warnmeldung bekommt, wenn ihr auf den Link klickt. Dies zeigt nur an, dass ihr auf eine Seite im Internet weitergeleitet werdet. Da dies alles vertrauenswürdige Seiten sind, könnt ihr die Weiterleitung akzeptieren und bekommt so weitere Informationen angeboten.
4
Einleitung: Hier mal alle Funktionen des Boards aufgelistet: - Mikrocontroller ist ein PIC 18F45K50. Takt ist 48MHz - alle Ports sind nach draußen geführt - programmiert wird über USB oder ICSP Schnittstelle - LCD-Anzeige 16x2 Zeichen - GLCD Anzeige 64x32 Pixel - Drehimpulsgeber - Strommessmodul INA 218 - Temperatursensor DS18B20 - Real Clock DS1307 - 4x 7-Segmentanzeige - Poti für AD-Wandler - Funkuhr DCF-77 - EEPROM 256K - Digital Poti MCP42010 - 8 Taster zur Eingabe - 8 LEDs zur Ausgabe - 5V oder 3V Betrieb möglich durch Umschaltung - Erweiterungs Bus (dazu später mehr) - hinzu kommen noch die ganzen Funktionen, die der Mikrocontroller in sich hat. Siehe dazu im Datenblatt nach. Im Weiteren werden nun die einzelnen Komponenten auf dem Board beschrieben. Ich werde im Einzelnen auf die Hardware eingehen und deren Funktion beschreiben. Wer noch mehr über die einzelnen Komponenten wissen möchte, findet im Internet zu jedem IC ein Datenblatt, wo dann alles beschrieben ist, was der Mikrocontroller kann. Alle Bauteile, die auf dem Board sind, bekommt man alle bei Reichelt Elektronik. (außer das GLCD) In der Stückliste ist der Name angegeben unter welcher man das Bauteil bei Reichelt findet. In der Stückliste, sind am Ende, einige Bauteile in grün und rot gekennzeichnet. Die in grün gekennzeichnete Bauteile, kann man zu Hause haben. Wenn nicht dann mit bestellen. Die in rot gekennzeichnete Bauteile sind für die Funktion des Boards nicht erforderlich. Man kann sie dazu bestellen. Da sollte jeder dann mal bei Reichelt schauen um was es sich handelt und dann entscheiden, ob man es auch haben will. Sonst einfach Rücksprache mit mir halten, wenn man es nicht genau weis ob man es kaufen soll.
5
Aufbau Die Platine ist vollständig beschriftet. Es kann sein das aus Platzgründen, manche Bauteile keinen Wert haben. Dann kann man aber mit dem Bauteilname in der Stückliste den Wert bekommen. Die Elkos haben Plus, Minus und man muss auf die Einbaulage achten. Auf dem Board sind der Plus beschriftet. Auf den Elkos ist der Minus beschriftet. Den Quarz sollte man mit einem kleinen Abstand zur Platine auflöten. Es reicht schon, wenn man ein Stück Papier zwischen Quarz und Platine legt und nach dem Auflöten kann man dann das Papier wieder entfernen. Den 3,3V Spannungsregler, lötet man am besten in seiner ganzen Länge ein. Also nicht ganz auf das Board den Regler drücken, sondern soweit in die Löscher führen das er gerade durchkommt. So kann man später den Kühlkörper leichter drauf montieren. Arbeitet man mit den 5V so braucht man keinen Kühlkörper. Braucht man die 3,3V so muss man drauf achten, dass der Regler nicht zu heiß wird. Wird er so heiß, dass man ihn nicht mehr anfassen kann, so ist zwingend ein Kühlkörper erforderlich. Bei dem Einbau der Dioden ist auch auf die Richtung zu achten. Eine Diode besitzt eine Anode und Kathode. Die Kathode ist auf der Diode immer mit einem weißen oder schwarzen Ring gekennzeichnet. Diese Kennzeichnung findet man auch auf dem Board wieder. Die Widerstandsnetzwerke haben auf einer Seite einen Punkt, hier auf dem Bild links zu erkennen. Auf dem Board ist der erste Pin mit einem Rechteck umrandet. Der Anschlußpin mit dem Punkt ist der erste und kommt auf dem Board mit dem Rechteck gekennzeichneten Lötpunkt. Auf die Einbaulage der ICs muss man auch drauf achten. Auf den Bildern kann man erkennen, wie rum der IC Sockel eingebaut werden muss. Jeder IC Sockel hat auf einer Seite eine kleine Einkerbung. Diese sollte mit dem Bild auf der Platine übereinstimmen. Hat das Bild auf der Platine keine Einkerbung, so ist es mit einer eins beschriftet und dort muss die Einkerbung des IC Sockel hin. Unten auf den Bildern zu erkennen.
6
Die ICs können auch eine Einkerbung haben. Hier links zu sehen. Es kann aber auch sein das sie einen Punkt in einer Ecke haben. Dreht man das IC nun so dass man die Aufschrift des ICs lesen kann, so befindet sich die Einkerbung oder der Punkt immer auf der linken Seite. Der erste Pin, der nun links unten ist, ist der 1. Pin. Nun werden die anderen Pins, gegen den Uhrzeigersinn durchnummeriert. Sollten noch Fragen zum Aufbau sein, so kann man jeder Zeit im Forum nachfragen. Ich habe hier mal das Board so bestückt, wie ich meine es für Anfänger am einfachsten ist, in die Programmierung rein zu kommen. Sieht im Moment nicht viel aus, aber wenn man gerade mit der Programmierung anfängt, dann ist weniger mehr. Man wird nicht von Hardware erschlagen, man behält die Übersicht und je nach Wissenstand und können in der Programmierung kann man dann das Board, nach und nach mit weiterer Hardware bestücken. Ich habe deswegen mal 2 Bestückungslisten gemacht. Einmal für diese Bestückung und einmal die Vollbestückung. Wie man das Board aufbaut und benutzt, ist natürlich jedem Selbst überlassen.
7
Programmierung Auf dem Board befindet sich ein PIC 18F45K50 Mikrocontroller. Er hat einen 16MHz Quarz als externe Taktquelle. Um nun ein Programm auf den PC zu schreiben, benötigt man einen Compiler. Im Internet gibt es verschiedene Compiler, die entweder umsonst sind oder Geld kosten. Genauso gibt es verschiedene Programmiersprachen in der man programmieren kann. Als Programmiersprachen gibt es z.B. Basic, Pascal, C, Assembler usw. In welcher Sprache man den Mikrocontroller programmiert, ist eigentlich egal. Da schaut man sich als Anfänger am besten mal die verschiedenen Sprachen an und nimmt jene die einem am besten liegt. Da es verschiedene Compiler gibt, kann man auch nicht sagen, welcher gut ist und welcher nicht. Denn es hängt sehr davon ab wie man mit dem Compiler zurechtkommt. Der eine kommt mit diesem Compiler am besten zurecht der andere mit einem anderen Compiler besser zurecht. Da hilft eigentlich nur ausprobieren. Da die meisten Compiler nichts kosten oder eine Demo Version haben, kann man sich diese Versionen runterladen und es selbst ausprobieren, wie gut man damit zurechtkommt. Als Compiler gibt es einmal den MPLAB von Microchip. Dann noch den GREAT COW BASIC. Und als drittes Beispiel noch die Compiler von MIKROELEKTRONIKA. Das sind nicht alle, es gibt da noch weitere, aber man kann nicht alle aufzählen und alle kenne ich auch nicht. Wenn man nun seinen Compiler und seine Programmiersprache gefunden hat, muss das Programm, vom PC noch auf den Mikrocontroller übertragen werden. Das Board bietet dafür 2 Möglichkeiten an, um das geschriebene Programm auf den Controller zu übertragen. Die erste Möglichkeit wäre, die Programmierung über die ICSP Schnittstelle. An dieser Schnittstelle kann man ein Programmiergerät oder auch Brenner genannt, anschließen. Es wird zusätzlich Hardware benötigt. Die Schnittstelle ist genormt auf ein PICKIT3 oder PICKIT4. Es können auch andere Programmiergeräte angeschlossen werden, dann muss man nur die Belegung der ICSP Schnittstelle mit Kabelbrücken ändern. Das PICKIT wird über USB an den Rechner angeschlossen. Nun kann der Brenner das Programm auf den Controller übertragen. Das Programm bleibt nun solange im Controller, bis ein neues Programm in den Controller gebrannt wird. Auch ohne Spannung am Controller, bleibt das Programm in ihm erhalten. Nach wieder anlegen der Spannung an den Controller, fängt das Programm im Controller wieder von vorne an zu laufen. Die zweite Möglichkeit wäre, die Programmierung über die USB-Schnittstelle. Hierbei wird keine weitere Hardware benötigt. Man verbindet über diese Buchse das Board mit dem PC. Dafür benötigt man so ein Kabel.
8
Viele Drucker besitzen ebenfalls so ein Kabel. Daher kann man auch das Kabel vom Drucker nehmen. Ist die Verbindung mit dem PC hergestellt, so leuchtet die orange Led auf. Um nun sein selbst geschriebenes Programm, in den Mikrocontroller zu bekommen, braucht der Mikrocontroller einen Bootloader. Ein Bootloader ist ein kleines Programm welches die Kommunikation und die Übertragung des eigenen Programms, übernimmt. Der Bootloader legt sich ans Ende des Speichers, vom Mikrocontroller und kann nicht von dem selbstgeschriebenen Programm überschrieben werden. Um den Bootloader in den Controller zu bekommen, braucht man einen Brenner. Hat man einen Brenner braucht man keinen Bootloader mehr, denn dann kann man den Controller direkt programmieren, über die ICSP Schnittstelle. Wer sich am Anfang noch keinen Brenner kaufen will, kann mich gerne anschreiben und ich brenne den dann in den Controller und schick ihn dann zu oder einfach im Forum nachfragen ob es jemand machen kann. Da findet man immer Leute die sowas gerne machen. Mit dieser Anleitung wird auch das Programm, dass der Bootloader ist, mitgeliefert. Wenn nun der Bootloader auf dem Mikrocontroller ist, so kann man dann ohne weitere Hardware den Controller beschreiben. Dazu ist folgendes zu machen. Jeder Compiler erzeugt beim Kompilieren, ein xx.HEX File. Dieses File kann man mit diesem Programm in den Mikrocontroller laden. Es heißt Mikrobootloader. Der Bootloader startet immer, wenn ein Reset ausgelöst wird, oder wenn der Controller, Spannung bekommt. Dabei wartet er 5 Sekunden ob ein Connect von dem Programm Mikrobootloader kommt. Einfach innerhalb von 5 Sekunden auf den Botton Connect drücken und man ist mit dem Controller verbunden. Dann einfach noch das File (.hex) aussuchen und auf Uploaden gehen und schon ist es im Controller vorhanden. Das Programm Mikrobootloader hat selbst auch nochmal eine Anleitung drin. Es hört sich komplizierter an, als es ist. Wie gesagt, das Programm Mikrobootloader und das Programm für den Bootloader, wird mit dieser Anleitung, mitgeliefert. Im Compiler, den man benutzt, muss man die CPU-Clock auf 48MHz stellen, denn damit läuft der Controller. Programmiert man später über die ICSP Schnittstelle, so wird der Bootloader gelöscht. Will man den Bootloader wieder benutzen, so muss er neu auf den Controller aufgespielt werden.
9
Stromversorgung: Das Board braucht eine Spannung von 5V und 3,3V. Aus den 5V Spannung werden auf dem Board auch die 3,3V Spannung erzeugt. Alle Komponenten auf dem Board laufen mit 5V. Sollte weitere Hardware an das Board angeschlossen werden, so ist drauf zu achten ob diese Hardware mit 5V oder 3,3V läuft. Mit dem Jumper K3 wird zwischen 3V und 5V gewechselt. Es gibt zwei Möglichkeiten das Board mit Spannung zu versorgen. Einmal über die USB-Buchse und einmal über die Klemme links neben der USB-Buchse. Versorgt man das Board über den USB-Anschluss so reicht ein normales Handy Ladegerät. Es sollte aber einen Strom abgeben von mindestens 1A Strom oder mehr. Ihr benötigt für die Verbindung vom Netzteil zum Board, das oben abgebildete Kabel. Ist aber auch in der Stückliste enthalten. Wollt ihr das Board über die Klemme, neben der USB-Buchse versorgen, so ist drauf zu achten, dass die Spannung höchstens 5V sein darf. Damit das Board vor zu hoher Spannung geschützt ist, besitzt es eine Schutzschaltung. Die drei roten LEDs signalisieren einen Fehler mit der Spannungsversorgung. Es darf keine der drei LEDs leuchten. Wenn das der Fall ist, dann sofort die Spannung ausschalten und auf Korrektheit überprüfen. Dabei signalisiert die untere LED, dass eine Spannung größer 5V anliegt. Das Board lässt sich dann auch nicht einschalten. Die mittlere LED signalisiert das eine Überlast aufgetreten ist. Das bedeutet das die Thermosicherung ausgelöst hat. Die Sicherung hat 500mA, braucht das Board mehr so erhitzt sie sich und unterbricht so die Spannung zum Board. Das Auslösen kann mehrere Sekunden dauern. Ist die Überlast behoben, so ist die Sicherung wieder einsatzfähig und man braucht sie nicht zu wechseln. Man hätte auch eine Glassicherung nehmen können, nur ist diese dann defekt und muss gewechselt werden. Wenn man das Board mit einem Netzteil betreibt, so sind diese meistens gegen Kurzschluss oder Überlast geschützt. Daher reicht hier die Thermosicherung (Polyfuse genannt).
10
Die obere LED zeigt an, wenn man Plus, Minus, vertauscht. Die Spannung wird dabei über eine Diode, direkt kurzgeschlossen. So wird verhindert, dass die falsche Spannung nicht weiter auf das Board gelangt und schützt so die Hardware. Schließt man an die Klemme eine Spannung an, so sollte man zuerst einmal den Schalter auf Aus lassen. Leuchtet nach ein paar Sekunden keine rote LED, dann scheint mit der Spannung alles ok zu sein und man kann den Schalter auf An stellen und so das Board mit Spannung versorgen. Und hier der Schaltplan zu der Schutzschaltung: Schutzschaltung:
11
Eingabe und Ausgabe Der Mikrocontroller besitzt mehrere Ein und Ausgänge, diese werden PORTS genannt. Dieser Controller besitzt die Ports A, Ports B, Ports C, Ports D und Ports E. Jeder Port ist nochmal unterteilt von 0-7. Nicht jeder Controller hat Ports von 0-7. Das kann unterschiedlich sein. Genauso die Anzahl der Ports kann unterschiedlich sein. Alle Ports, die der Controller hat, sind auf eine zweireihige Stiftleiste heraus geführt. An der Beschriftung sieht man welche Ports und welche Nummer, wo hingeführt wurde. Einige Portnummern sind nicht herausgeführt. Das liegt daran das diese Ports für interne Zwecke, verwendet werden. Diese können dann auch nicht benutzt werden. Es ist darauf zu achten, dass an diesen Stiftleisten, eine maximale Spannung von 5V nicht überschritten wird. Ansonsten würde der Mikrocontroller Schaden nehmen. An den Stiftleisten kann man diese Kabel anschließen. Man nennt sie, flexible Drahtbrücken. Hiermit bekommt man eine Verbindung vom Controller zu seinem Steckboard, wo dann weitere Schaltungen aufgebaut werden können.
12
Hier der Schaltplan.
13
LED und Taster Das Board besitzt insgesamt 8 Leds und 8 Taster. Diese können einzeln angesteuert werden. Die Taster und Leds sind am Port RD0 bis RD7 angeschlossen. Mit dem Dip-Schalter 3, werden die Leds mit Strom versorgt. Die Taster sind immer abfragbar und brauchen keine Einstellung auf dem Board. Da das LCD Modul auch an PortD hängt, sind bei Benutzung des LCDs die Tasten RD0 bis RD5 nicht zu benutzen. RD6 und RD7 können weiter benutzt werden. Hier der Schaltplan.
14
LCD Modul: Das LCD kann 2x16 Zeichen darstellen. Es besitzt einen festen Zeichensatz, den man benutzen kann. Hier findet man weitere Informationen von dem LCD. An dem LCD wird eine Stiftleiste und auf dem Board eine Buchsen Leiste angelötet. Beides findet man in der Stückliste. Mit Hilfe des Potis R7 kann man den Kontrast des Displays einstellen. Die Beleuchtung des LCDs wird über den 10 poligen Dip-Schalter eingeschaltet. Der erste Schalter ist für das Display, ein zu schalten. Über die Ports RD0-RD5 wird das Display mit dem Controller verbunden. Dabei sind RD0 bis RD3 die Datenleitungen und RD4 und RD5 die Steuerleitungen. Und zum Schluss noch der Schaltplan für das Display.
15
16
OLED Modul: Hierbei handelt es sich um ein 0,91 Zoll Grafikdisplay. Mit einer Auflösung von 128x32 Pixel. Im Gegensatz zum LCD, besitzt dieses Display keinen festen Zeichensatz. Aus einzelnem Pixel muss man sich jedes Zeichen selbst machen. Angesteuert wird das Display über den I2C Bus des Controllers. Um das Display ein zu schalten, sind folgende Dip-Schalter ein zu schalten. Es sind die Schalter 4,5 und 6, ein zu schalten. Dieses Modul ist nicht über Reichelt zu beziehen. Man kann es über Ebay beziehen. In das Suchfeld einfach 0.91"128x32 eingeben. Oder in Google dies eingeben. Dort findet man einige Händler, die es anbieten. Es muss nur darauf geachtet werden, dass das OLED Modul über I2C Bus an zu steuern ist. Wie beim LCD wird auch hier dieselbe Stiftleiste und Buchsen leiste verwendet. Und hier der Schaltplan.
17
7-Segmentanzeige Auf dem Board befindet sich eine 4x7 Segment Anzeige. Die Beleuchtung ist hier grün. Es kann aber auch eine andere Farbe eingebaut werden. Es muss nur die Baugröße gleich sein. Die Anzeige läuft im Multiplex Betrieb, d.h. die erste Anzeige wird eingeschaltet und die Zahl wird dargestellt. Nun wird die erste Anzeige wieder ausgeschaltet und die zweite Anzeige eingeschaltet und die Zahl dargestellt. Macht man dies sehr schnell das ein und ausschalten, so sieht es aus, als seien alle Anzeigen immer an. Die 4x7 Segment Anzeige wird auf zwei 20 polige Buchsen Leisten gesteckt. So kann man sie jeder Zeit auswechseln und gegen eine andere Anzeigenfarbe ändern. Die Buchsen Leiste ist nicht dieselbe, wie sie bei dem LCD benutzt wurde. Um die Buchsen Leiste möglichst gerade auf die Platine zu löten, denn sonst passt die Anzeige nicht auf die Buchsen Leiste, sollte man die Anzeige Segmente, zuerst auf die Buchsen Leiste aufstecken und dann auf die Platine stecken, um sie zu verlöten. So bekommt man sie am einfachsten, gerade auf die Platine. Eingeschaltet werden die 4 Anzeigen über den Dip-Schalter wie oben zu sehen. Jedes Display verfügt über 7 Segmenten und den Punkt. Diese werden über den PortD vom Controller angesteuert. Um die 4 Anzeigen, ein und aus zu schalten, werden die Ports A0 bis A3 verwendet. Und hier der Schaltplan.
18
Echtzeituhr Der DS 1307 ist eine Echtzeituhr. Das heißt dass das IC Uhrzeit und Datum ausgeben kann. Mit Hilfe der Batterie, bleiben auch bei Stromausfall, Datum und Uhrzeit erhalten. Da der DS 1307 nur sehr wenig Strom verbraucht, hält die Batterie über mehrere Jahre lang. Ausgelesen und programmiert wird der DS1307 über I2C Bus. Eingeschaltet wird der DS1307 über die Dip-Schalter 7 und 8. Hier der Schaltplan dazu.
19
Temperatur Sensor Hierbei handelt es sich um einen DS18B20 Temperatur Sensor von Dallas. Er hat eine Auflösung von 0,1 Grad Celsius. Aus der Familie gibt es noch den DS1820, DS18S20 und DS1822. Diese haben jeweils eine andere Auflösung. Auf dem Board kann jeder dieser Typen eingesetzt werden. Es ist darauf zu achten, dass der Sensor wie auf dem Bild zu sehen ist, eingesetzt wird. Mit dem Jumper wird der Sensor in Betrieb genommen und mit dem Port RA5 des Controllers verbunden. Das Protokoll des Sensors, mit dem er ausgelesen wird, nennt sich 1-wire. Hier der Schaltplan.
20
AD-Wandler AD Wandler ist die Abkürzung für Analog zu digital Wandler. Mit Hilfe des AD Wandlers, werden analoge Spannungen, hier 0-5V in digitale Werte gewandelt. Der Controller hat einen 10bit Wandler. Das heißt dass die 5V Spannung in 2 10 = 1024 Werte zerlegt wird. Beispiel: Bekommt der AD Wandler eine Spannung von 5V, so ist sein digital Wert 1023. Warum nicht 1024 ? Weil der Wandler Werte von 0 bis 1023 darstellen kann. 0 bis 1023 Werte entspricht insgesamt 1024 Werte, da die Null mitgezählt wird. Eine Spannung von 2,5V entspricht einem digital Wert von 512 und 0V hat einen Wert von 0. Weitere Infos findet man hier. Eingeschaltet wird der Wandler mit dem Jumper. Die Spannung wird dann an den Port RA0 geleitet. Es ist darauf zu achten das die Spannung an den Ports nicht höher wie 5V sein darf. Das Poti ist zwischen 5V und 0V geschaltet und an seinem Mittelabgriff wird die Spannung an RA0 geleitet. Dadurch wird ein Spannungsteiler aufgebaut und es kann eine Spannung zwischen 0V und 5V eingestellt werden. Diese Spannung wird dann durch den AD Wandler in digital Werte umgesetzt. 0-1023 = 10Bit Hier der Schaltplan.
21
Stromsensor Bei dem Stromsensor handelt es sich um einen INA 219. Man kann ihn als fertige Platine kaufen. Maximal können damit 3,2A gemessen werden, bei einer maximalen Spannung von 26V. Über die grüne Klemme, wird ein Verbraucher in Reihe geschaltet. Über einen Shunt, das ist ein ganz kleiner Widerstand, hier 0,1 Ohm, wird die Spannung gemessen und in einen Stromwert umgerechnet, der dann über die I2C Schnittstelle zum Controller geschickt wird. Mit den 2 Jumpern wird das Modul mit dem Controller verbunden. Hier noch 3 Links die das Modul ganz gut erklären. Link1, Link2, Link3. Das Modul wird mit einer Stiftleiste geliefert. Man kann aber auch die Stiftleiste nehmen die für das GLCD verwendet wurde. Hier der Schaltplan.
22
Funkuhr DCF-77 Mit diesem Modul kann man die genaue Uhrzeit und Datum empfangen. Auf einer Frequenz von 77,5KHz, werden die Signale gesendet. Der Sender steht in Mainfingen bei Frankfurt am Main. Er hat eine Reichweite von ca. 2000 KM. Damit ist er in Deutschland überall zu empfangen. Empfängt das Modul kein Signal, so liegt das meistens an der Umgebung wo das Modul betrieben wird. Starke Störquellen sind, LED-Lampen, Schaltnetzteile, dicke Beton Wände, unsaubere Betriebsspannung usw. Wie man sieht gibt es viele Ursachen dass der Empfang gestört sein kann. Da hilft nur das Modul an einer anderen Stelle im Raum zu betreiben. Manchmal hilft es auch, wenn man die Antenne was dreht. Insgesamt werden in 1 Minute, 59 Bits gesendet. Darin enthalten sind die Uhrzeit und das Datum. Nach einer Minute wird wieder von vorne empfangen. Weitere Informationen gibt es hier. Hier die Unterseite des Moduls mit der Stiftleiste. Eingeschaltet wird es über die beiden Jumper oberhalb des Moduls. Dabei wird der Port RC0 und RC1 benutzt. Bei der Programmierung ist darauf zu achten das mit RC1 das Modul eingeschaltet wird und an RC0 die Nutzdaten bereitstehen. Hier das Datenblatt dazu. Hier der Schaltplan.
23
EEPROM Dieses EEPROM hat eine Speicherkapazität von 256 KB. Es behält die Daten nur solange wie es Strom bekommt. Nach einer Stromunterbrechung müssen die Daten wieder neu in das EEPROM geschrieben werden. Die Dip-Schalter 9 und 10 sind für das Einschalten des EEPROM. Angesteuert wird es über den I2C Bus. Hier das Datenblatt dazu. Und hier der Schaltplan.
24
Digital Poti Das IC besteht aus zwei 10K Ohm Potis. Wie bei einem analogen Poti besteht es auch aus 3 Abgriffe. L1 für links, M1 für den mittel Abgriff und R1 für den rechten Abgriff. Die Ausgänge sind auf die Stiftleiste K12 herausgeführt. Über die drei Jumper wird das Poti eingeschaltet und mit dem Controller verbunden. Die Daten werden über den SPI Bus übertragen. Die 10K Ohm des Potis, können über den Controller eingestellt werden. Dabei sind 256 Schritte möglich. Das heißt die 10K Ohm werden in 256 Schritte geteilt. Im Gegensatz zu einem analogen Poti, ist hier nicht jeder Widerstandswert, einstellbar. Wenn man die 10K Ohm durch die 256 teilt, so hat man pro Schritt einen Widerstandswert von ca. 39 Ohm. 39 Ohm mal 256 ergeben 10K Ohm. Es gibt auch digital Potis die mehr Schritte haben und so kann man mehr Widerstandswerte einstellen. Man muss darauf achten, dass der maximale Strom über das Poti, nicht über 1mA geht. Die Spannung beträgt hier 5V. Mehr dazu im Datenblatt. Hier der Schaltplan. Hier mal eine Schaltung mit dem Poti. Hier kann man die Spannung regeln.
25
Drehimpulsgeber Der Drehimpulsgeber sieht aus wie ein Poti. Jedoch lässt er sich unendlich drehen und gibt keinen Widerstandswert aus, sondern hat einzelne Rasterungen wo dann 2 Schalter an und aus geschaltet werden. Diese Impulse von an und aus, werden dann mit dem Controller ausgewertet und man kann so eine einfache Menüsteuerung realisieren. Es gibt sie auch mit mehr Rasterpunkte oder weniger Rasterpunkte. Dieser Drehimpulsgeber hat noch einen Taster eingebaut. Wenn man auf die Achse drückt, wird ein Taster geschlossen. Hier eine Ausführlichere Dokumentation des Drehimpulsgebers. Eingeschaltet wird er über den Dip-Schalter 2. Ausgewertet wird der Drehgeber über den Port B5 und B6. Der Taster ist an Port B7. Hier der Schaltplan.
26
Erweiterungs Bus Mit dieser Schnittstelle kann das Board um verschiedene Hardware erweitert werden. Die Schnittstelle ist ein Standard der Firma Mikroelektronika. Sie bietet auch eine Menge an Module an, die mit der Schnittstelle laufen. Hier der Link zu den einzelnen Modulen. Es kann sein das die Software für die einzelnen Module, angepasst werden muss. Hier der Schaltplan.
27
Schaltplan
28
Stückliste komplett
Bauteilname
Wert
Position
BestellNr.
Kondensator
100nF
C1
X7R-5-100N
Kondensator
100nF
C3
X7R-5-100N
Kondensator
100nF
C4
X7R-5-100N
Kondensator
100nF
C9
X7R-5-100N
Kondensator
100nF
C10
X7R-5-100N
Kondensator
100nF
C11
X7R-5-100N
Kondensator
100nF
C12
X7R-5-100N
Kondensator
100nF
C13
X7R-5-100N
Kondensator
100nF
C14
X7R-5-100N
Kondensator
100nF
C15
X7R-5-100N
Kondensator
100nF
C16
X7R-5-100N
Kondensator
100nF
C17
X7R-5-100N
Kondensator
100nF
C18
X7R-5-100N
Kondensator
100nF
C19
X7R-5-100N
Kondensator
100nF
C20
X7R-5-100N
Kondensator
100nF
C21
X7R-5-100N
Kondensator
100nF
C22
X7R-5-100N
Kondensator
100nF
C23
X7R-5-100N
Kondensator
18pF
C7
KERKO 18P
Kondensator
18pF
C8
KERKO 18P
ELKO
1µF
C2
RND 150EHR92001
ELKO
470µF
C5
FM-A 470U 35
ELKO
10µF
C6
RND 150EHR92013
LED rot
3 mm
D14
LED 3MM ST RT
LED rot
3 mm
D16
LED 3MM ST RT
LED rot
3 mm
D17
LED 3MM ST RT
LED gelb
3 mm
D2
LED 3MM ST GE
LED gelb
3 mm
D3
LED 3MM ST GE
LED orange
3 mm
D1
KBT L-7104ED
LED grün
3 mm
D5
LED 3MM ST GN
LED grün
3 mm
D6
LED 3MM ST GN
LED grün
3 mm
D7
LED 3MM ST GN
LED grün
3 mm
D8
LED 3MM ST GN
LED grün
3 mm
D9
LED 3MM ST GN
LED grün
3 mm
D10
LED 3MM ST GN
LED grün
3 mm
D11
LED 3MM ST GN
29
Bauteilname
Wert
Position
BestellNr.
LED grün
3 mm
D12
LED 3MM ST GN
Diode
1N4001
D4
1N 4001
Z-Diode
5,6V
D13
ZD 5,6
Diode
1N4148
D18
1N 4148
Diode
1N4001
D15
1N 4001
Widerstand
560
R1
1/4W 560
Widerstand
330
R2
1/4W 330
Widerstand
680
R3
1/4W 680
Widerstand
10K
R4
1/4W 10K
Widerstand
1K
R6
1/4W 1,0K
Widerstand
33
R8
1/4W 33
Widerstand
1K
R13
1/4W 1,0K
Widerstand
1K
R14
1/4W 1,0K
Widerstand
1K
R15
1/4W 1,0K
Widerstand
1K
R16
1/4W 1,0K
Widerstand
1K
R17
1/4W 1,0K
Widerstand
10K
R19
1/4W 10K
Widerstand
10K
R20
1/4W 10K
Widerstand
10K
R21
1/4W 10K
Widerstand
10K
R22
1/4W 10K
Widerstand
470
R23
1/4W 470
Widerstand
470
R24
1/4W 470
Widerstand
470
R25
1/4W 470
Widerstand
470
R26
1/4W 470
Widerstand
470
R27
1/4W 470
Widerstand
470
R28
1/4W 470
Widerstand
470
R29
1/4W 470
Widerstand
470
R30
1/4W 470
Widerstand
4,7K
R32
1/4W 4,7K
Widerstand
4,7K
R33
1/4W 4,7K
Widerstand
1K
R34
1/4W 1,0K
Widerstand
1K
R35
1/4W 1,0K
Widerstand
2,2K
R36
1/4W 2,2K
Widerstand
1K
R37
1/4W 1,0K
Widerstand
10K
R38
1/4W 10K
Widerstand
4,7K
R39
1/4W 4,7K
30
Bauteilname
Wert
Position
BestellNr.
Widerstand
1,2K
R40
1/4W 1,2K
Widerstand
4,7K
R41
1/4W 4,7K
Widerstand
4,7K
R42
1/4W 4,7K
Widerstand
470
R43
1/4W 470
Widerstand
470
R44
1/4W 470
Trimmer
5K
R7
PT 10-L 5,0K
Trimmer
10K
R31
PT 10-L 10K
W-Netzwerk
100k
R9
SIL 9-8 100K
W-Netzwerk
100k
R10
SIL 9-8 100K
W-Netzwerk
100k
R11
SIL 9-8 100K
W-Netzwerk
100k
R12
SIL 9-8 100K
W-Netzwerk
560
R5
SIL 9-8 560
Transistor
BC 548
T1
BC 548A
Transistor
BC 548
T2
BC 548A
Transistor
BC 548
T3
BC 548A
Transistor
BC 548
T4
BC 548A
Transistor
BC 548
T5
BC 548A
Transistor
BC 548
T6
BC 548A
Festspannungsregler
3,3V
X1
LF 33 CV
Taster Kurzhub
7mm
S1
TASTER 9303
Taster Kurzhub
7mm
S2
TASTER 9303
Taster Kurzhub
7mm
S3
TASTER 9303
Taster Kurzhub
7mm
S4
TASTER 9303
Taster Kurzhub
7mm
S5
TASTER 9303
Taster Kurzhub
7mm
S6
TASTER 9303
Taster Kurzhub
7mm
S7
TASTER 9303
Taster Kurzhub
7mm
S8
TASTER 9303
Taster Kurzhub
7mm
S9
TASTER 9303
DIL-Schalter
DIL 20
S10
NT 10
DIL-Schalter
DIL 8
S11
NT 04
Drehimpulsgeber
mit Taster
S12
STEC11B13
Schiebeschalter
Wechsler
S13
T 215
7-Segmentanzeige
grün
X2
SC 56-11 GN
7-Segmentanzeige
grün
X3
SC 56-11 GN
7-Segmentanzeige
grün
X4
SC 56-11 GN
7-Segmentanzeige
grün
X5
SC 56-11 GN
31
Bauteilname
Wert
Position
BestellNr.
Relais
5V
X6
NA 05W K
Batterieclip
für 2032
X7
KZH 25-1
Display
LCD
Display1
LCD 162C BL
Sicherung
0,5A
F1
PFRA 050
Mikrocontroller
18F45K50
IC1
PIC 18F45K50
EEPROM
256KB
IC3
ST 24C256 BN6
Echtzeituhr
DS1307
IC4
DS 1307
Digital Poti
10K
R18
MCP 42010
Quarz
16MHz
Q1
16,0000-HC49U-S
Quarz
32,768KHz
Q2
32,768 MS1V-12,5
USB
Buchse
K2
USB AW
USB
Buchse
K20
USB BW
Schraubklemme
2-polig
K10
RND 205-00012
Stiftleiste
gewinkelt
K23
SL 1X36W 2,54
Stiftleiste
gerade
K4
MPE 087-2-010
Stiftleiste
gerade
K5
MPE 087-2-010
Stiftleiste
gerade
K6
MPE 087-2-010
Stiftleiste
gerade
K7
MPE 087-2-010
Stiftleiste
gerade
K12
MPE 087-2-006
Buchsenleiste
gerade
K21,K22,K8,K19,K9
MPE 115-1-032
Siftleiste
gerade
K3,K13-K18,K24,K25
SL 1X36G 2,54
Stiftleiste
gerade
LCD
SL 1X36G 2,54
Kontaktbuchse
20-polig
K1
SPL 20
Kontaktbuchse
20-polig
Menge 2 Stück
SPL 20
Buchsenleiste
16-polig
Menge 1 Stück
MPE 115-1-016
Buchsenleiste
20-polig
Menge 1 Stück
MPE 115-1-020
Jumper
2-polig
Menge 10 Sück
MPE 149-2-002-F0
Kühlkörper
Menge 1 Stück
V 4330K
Schraube
M3
Menge 1 Stück
SZK M3X6-200
Stromsensor
INA219
Menge 1 Stück
DEBO SENS POWER
Temperatursensor
DS18B20
Menge 1 Stück
DS 18B20
Funkuhr Modul
DCF-77
Menge 1 Stück
DCF77 Modul
Knopfzelle
3V
Menge 1 Stück
CR 2032
Grafikdisplay
GLCD
Menge 1 Stück
nicht bei Reichelt
IC Sockel
40-polig
Menge 1 Stück
GS 40
32
Bauteilname
Wert
Position
BestellNr.
IC Sockel
14-polig
Menge 1 Stück
GS 14
IC Sockel
8-polig
Menge 2 Stück
GS 8
Distanzbolzen
innen
Menge 5 Stück
DI 5MM
USB Kabel
2 Meter
optional
DELOCK 83894
USB Kabel
3 Meter
optional
AK 670/2-3,0
USB Netzteil
2400mA
optional
NAVILOCK 62847
Nullkraft Sockel
40-polig
optional
TEX 40
Steckachse für Trimmer
rot
2x optional
PIH 5012 RED
Drehknopf
Aluminium
optional
MEN 521.611
33
Stückliste minimal
Kondensator
100nF
C1
X7R-5-100N
Kondensator
100nF
C3
X7R-5-100N
Kondensator
100nF
C4
X7R-5-100N
Kondensator
100nF
C9
X7R-5-100N
Kondensator
100nF
C10
X7R-5-100N
Kondensator
100nF
C11
X7R-5-100N
Kondensator
100nF
C12
X7R-5-100N
Kondensator
100nF
C13
X7R-5-100N
Kondensator
100nF
C14
X7R-5-100N
Kondensator
100nF
C15
X7R-5-100N
Kondensator
100nF
C16
X7R-5-100N
Kondensator
100nF
C17
X7R-5-100N
Kondensator
100nF
C18
X7R-5-100N
Kondensator
100nF
C19
X7R-5-100N
Kondensator
100nF
C20
X7R-5-100N
Kondensator
100nF
C21
X7R-5-100N
Kondensator
100nF
C22
X7R-5-100N
Kondensator
100nF
C23
X7R-5-100N
Kondensator
18pF
C7
KERKO 18P
Kondensator
18pF
C8
KERKO 18P
ELKO
1µF
C2
RND 150EHR92001
ELKO
470µF
C5
FM-A 470U 35
ELKO
10µF
C6
RND 150EHR92013
LED rot
3 mm
D14
LED 3MM ST RT
LED rot
3 mm
D16
LED 3MM ST RT
LED rot
3 mm
D17
LED 3MM ST RT
LED gelb
3 mm
D2
LED 3MM ST GE
LED gelb
3 mm
D3
LED 3MM ST GE
LED orange
3 mm
D1
KBT L-7104ED
LED grün
3 mm
D5
LED 3MM ST GN
LED grün
3 mm
D6
LED 3MM ST GN
LED grün
3 mm
D7
LED 3MM ST GN
LED grün
3 mm
D8
LED 3MM ST GN
LED grün
3 mm
D9
LED 3MM ST GN
LED grün
3 mm
D10
LED 3MM ST GN
Bauteilname
Wert
Position
BestellNr.
34
LED grün
3 mm
D11
LED 3MM ST GN
LED grün
3 mm
D12
LED 3MM ST GN
Diode
1N4001
D4
1N 4001
Z-Diode
5,6V
D13
ZD 5,6
Diode
1N4148
D18
1N 4148
Diode
1N4001
D15
1N 4001
Widerstand
560
R1
1/4W 560
Widerstand
330
R2
1/4W 330
Widerstand
680
R3
1/4W 680
Widerstand
10K
R4
1/4W 10K
Widerstand
1K
R6
1/4W 1,0K
Widerstand
33
R8
1/4W 33
Widerstand
1K
R13
1/4W 1,0K
Widerstand
1K
R14
1/4W 1,0K
Widerstand
1K
R15
1/4W 1,0K
Widerstand
1K
R16
1/4W 1,0K
Widerstand
1K
R17
1/4W 1,0K
Widerstand
10K
R19
1/4W 10K
Widerstand
10K
R20
1/4W 10K
Widerstand
10K
R21
1/4W 10K
Widerstand
10K
R22
1/4W 10K
Widerstand
470
R23
1/4W 470
Widerstand
470
R24
1/4W 470
Widerstand
470
R25
1/4W 470
Widerstand
470
R26
1/4W 470
Widerstand
470
R27
1/4W 470
Widerstand
470
R28
1/4W 470
Widerstand
470
R29
1/4W 470
Widerstand
470
R30
1/4W 470
Widerstand
4,7K
R32
1/4W 4,7K
Widerstand
4,7K
R33
1/4W 4,7K
Widerstand
1K
R34
1/4W 1,0K
Widerstand
1K
R35
1/4W 1,0K
Widerstand
2,2K
R36
1/4W 2,2K
Widerstand
1K
R37
1/4W 1,0K
Widerstand
10K
R38
1/4W 10K
Bauteilname
Wert
Position
BestellNr.
35
Widerstand
4,7K
R39
1/4W 4,7K
Widerstand
1,2K
R40
1/4W 1,2K
Widerstand
4,7K
R41
1/4W 4,7K
Widerstand
4,7K
R42
1/4W 4,7K
Widerstand
470
R43
1/4W 470
Widerstand
470
R44
1/4W 470
Trimmer
5K
R7
PT 10-L 5,0K
W-Netzwerk
100k
R9
SIL 9-8 100K
W-Netzwerk
100k
R10
SIL 9-8 100K
W-Netzwerk
100k
R11
SIL 9-8 100K
W-Netzwerk
100k
R12
SIL 9-8 100K
W-Netzwerk
560
R5
SIL 9-8 560
Transistor
BC 548
T5
BC 548A
Transistor
BC 548
T6
BC 548A
Festspannungsregler
3,3V
X1
LF 33 CV
Taster Kurzhub
7mm
S1
TASTER 9303
Taster Kurzhub
7mm
S2
TASTER 9303
Taster Kurzhub
7mm
S3
TASTER 9303
Taster Kurzhub
7mm
S4
TASTER 9303
Taster Kurzhub
7mm
S5
TASTER 9303
Taster Kurzhub
7mm
S6
TASTER 9303
Taster Kurzhub
7mm
S7
TASTER 9303
Taster Kurzhub
7mm
S8
TASTER 9303
Taster Kurzhub
7mm
S9
TASTER 9303
DIL-Schalter
DIL 20
S10
NT 10
Schiebeschalter
Wechsler
S13
T 215
Relais
5V
X6
NA 05W K
Sicherung
0,5A
F1
PFRA 050
Mikrocontroller
18F45K50
IC1
PIC 18F45K50
Quarz
16MHz
Q1
16,0000-HC49U-S
USB
Buchse
K2
USB AW
USB
Buchse
K20
USB BW
Schraubklemme
2-polig
K10
RND 205-00012
Stiftleiste
gewinkelt
K23
SL 1X36W 2,54
Stiftleiste
gerade
K4
MPE 087-2-010
Bauteilname
Wert
Position
BestellNr.
36
Stiftleiste
gerade
K5
MPE 087-2-010
Stiftleiste
gerade
K6
MPE 087-2-010
Stiftleiste
gerade
K7
MPE 087-2-010
Stiftleiste
gerade
K12
MPE 087-2-006
Buchsenleiste
gerade
K21,K22,K8,K19,K9
MPE 115-1-032
Siftleiste
gerade
K3,K13- K18,K24,K25
SL 1X36G 2,54
Stiftleiste
gerade
LCD
SL 1X36G 2,54
Kontaktbuchse
20-polig
K1
SPL 20
Kontaktbuchse
20-polig
Menge 2 Stück
SPL 20
Buchsenleiste
16-polig
Menge 1 Stück
MPE 115-1-016
Buchsenleiste
20-polig
Menge 1 Stück
MPE 115-1-020
Kühlkörper
Menge 1 Stück
V 4330K
Schraube
M3
Menge 1 Stück
SZK M3X6-200
IC Sockel
40-polig
Menge 1 Stück
GS 40
Distanzbolzen
innen
Menge 5 Stück
DI 5MM
USB Kabel
2 Meter
optional
DELOCK 83894
USB Kabel
3 Meter
optional
AK 670/2-3,0
USB Netzteil
2400mA
optional
NAVILOCK 62847
Nullkraft Sockel
40-polig
optional
TEX 40
Steckachse für Trimmer
rot
2x optional
PIH 5012 RED
Drehknopf
Aluminium
optional
MEN 521.611
Bauteilname
Wert
Position
BestellNr.
37
Bezugsquelle der Platine Die unbestückte Platine kann bei mir gekauft werden. Sie kostet 6,50 € plus Versandkosten. Sie wird in einem gepolsterten Umschlag mit DHL verschickt. Möchte jemand den Bootloader direkt auf den Mikrocontroller haben, so kann ich ihn für euch auf den Controller Programmieren und ich schicke euch den Controller zu. Berechnet wird dann nur der Preis was der Controller aufgerundet kostet. Oder ihr schickt mir den Controller zu und ich programmiere ihn für euch. Oder im Forum nachfragen ob es einer übernehmen kann. Wenn einer es sich nicht zutraut das Board selbst zu löten, so fragt bei mir nach ob ich es mache. Es ist viel Arbeit es komplett zu löten und ich habe nicht immer die Zeit, sowas zu machen. Aber nachfragen kostet nichts. Zu erreichen bin ich hier im Forum unter dem Username Peter. Überweisen kann man das Geld über PayPal oder Bank-Überweisung.