Dies funktioniert jedoch nur auf 5V Karten, NICHT auf 3,3V Karten.
Wenn Sie Fragen, Kommentare oder Vorschläge für andere Arduino-Beispiele haben, können Sie gerne einen Kommentar hinterlassen.
Ich werde mich so schnell wie möglich bei Ihnen melden.
Verbinden Sie als Nächstes die Überbrückungskabel zwischen dem Arduino und dem Header wie auf dem Foto unten gezeigt.
Fahren Sie dann mit dem nächsten Schritt fort, um den Arduino zu programmieren.
Verbinden Sie dann Ihre 2 Arduino's miteinander und mit Ihrem Computer.
Gehen Sie dann zu Tools und wählen Sie die Karte aus, die Sie programmieren möchten.
Wenn Sie sie anschließend testen möchten, können Sie den gesamten Text zwischen // kopieren und einfügen.
Laden Sie dann das Programm auf Ihren Arduino hoch und die an Pin 13 angeschlossene LED sollte blinken.
Wenn Sie Fragen, Kommentare oder Vorschläge für andere Arduino-Beispiele haben, können Sie gerne einen Kommentar hinterlassen.
Wenn Sie Ihre Atmega-Chips mit Ihrem Steckbrett booten möchten, erleichtert ein zusätzliches Teil Ihr Leben erheblich, ist jedoch nicht erforderlich.
Hab schon ein paar AtMega328p in Schaltungen verbaut und immer den Kondensator am Reset-Pin vergessen.
Mit deiner Erklärung verstehe ich endlich wieso dieser Kondi so wichtig ist.
Am Ende hatte ich auch das Problem, dass ich keinen Arduino Uno Bootloader flashen konnte, sondern nur den des Arduino pro mini.
Dieses wird in die IDE geladen. Falls nicht schon geschehen, unter Werkzeuge → Board → Arduino UNO den UNO als aktuelles System festlegen und die richtige COM-Schnittstelle wählen (Werkzeuge → Port → COMxx. Dann das Programm compilieren und in den UNO laden.
Für die Verbindung der beiden Board eignen sich die Experimentierlitzen mit Stecker an einem und Buchse am anderen Ende.
Nun wählen Sie den zu flashenden NANO unter Werkzeuge → Board → Arduino NANO aus und überprüfen Sie, ob die Einstellung des seriellen Ports noch stimmt.
Stellen Sie unter Werkzeuge → Programmer → Ardunino as ISP ein.
Nun starten Sie das Brennen des Bootloaders mittels Werkzeuge → Board → Bootloader brennen.
Machen Sie den UNO wieder stromlos und entfernen Sie die Verbindungen zum NANO.
Bootloader auf einen ATmega328P-PU brennen
Ab und zu verwende ich den Arduino zum Programmieren, aber andere Hardware für das fertige Projekt.
Oft lohnt sich die Anfertigung einer Platine nicht, weil sich nur einige wenige Bauteile rund um den ATMEGA328P tummeln.
Also wird die Schaltung auf einer Lochrasterplatte aufgebaut und der Controller dann aus der DIL-Fassung des Arduino gezogen und in die DIL-Fassung auf der Lochrasterplatte gesteckt. Also wird öfter mal ein ATMEGA328P (genauer ATMEGA328P-PU) mit Bootloader als Ersatz benötigt (manchmal auch, wenn der ATMEGA328P in der Schaltung "gegrillt" wurde).
Hier kann man fast genauso verfahren, wie oben - lediglich der zweite Schritt ist unterschiedlich.
Schritt 1: Den ARDUINO UNO R3 zum ISP-Programmer umfunktionieren
Dazu wird zunächst der UNO mit dem PC verbunden und mit der Programmer-Software geladen.
In der Arduino-IDE finden Sie das entsprechende Programm unter Datei > Beispiele > ArduinoISP.
Dieses wird in die IDE geladen. Falls nicht schon geschehen, unter Werkzeuge > Board > Arduino UNO den UNO als aktuelles System festlegen und die richtige COM-Schnittstelle wählen (Werkzeuge > Port > COMxx.
Dann das Programm compilieren und in den UNO laden.
Schritt 2: ATMEGA328P auf dem Steckbrett vorbereiten
Diesmal wird das Steckbrett mit dem ATMEGA328P bestückt.
Die Pinbelegung des Dual-Inline-Gehäuses zeigt die folgende Grafik.
Neben den ISP-Leitungen werden noch der Quarz mit seinen beiden Kondensatoren und ein Pullup-Widerstad für den Reset-Eingang benötigt.
Die Schaltung des Quarzes ist recht einfach, der Quarz wird zwischen den Pins 9 und 10 angeschlossen, die Kondensatoren sind gegen Masse geschaltet.
1M Ohm Wiederstand muß nicht sein !
Man kann den Controller noch einen 100-nF-Kondensator an der Spannungsversorgung (Pin 7 und Pin 8) gönnen.
Des weiteren wird ein 10-kΩ-Widerstand zwischen Reset (Pin 1) und +5V gelegt. Ihr Steckbrett sollte dan etwa so aussehen:
Nun werden noch die sechs ISP Leitungen vom UNO zum Steckbrett gezogen:
ARDUINO UNO R3 +5V → ATmega328 pin-7
ARDUINO UNO R3 GND → ATmega328 pin-8
ARDUINO UNO R3 10 → ATmega328 pin-1 Reset
ARDUINO UNO R3 11 → ATmega328 pin-17 MOSI
ARDUINO UNO R3 12 → ATmega328 pin-18 MISO
ARDUINO UNO R3 13 → ATmega328 pin-19 SCK
ODER
ATmega328 ARDUINO UNO R3
5V pin-7 auf 5V
GND pin-8 auf GND
SCK pin-19 mit SCK Pin-13 (Clock mit Clock)
MISO pin-18 mit MISO Pin-12
MOSI pin-17 mit MOSI Pin-11
RST pin-1 mit SS Pin-10
ODER
ARDUINO UNO-Pin ATrnege328P
SS Pin-10 pin-1 RST
MOSI Pin-11 pin-17 MOSI
MISO Pin-12 pin-18 MISO
SCK Pin-13 pin-19 SCK (eingebaute LED)
+5V Pin-Vcc+AVcc pin-7+20 (Vcc+AVcc)
GND pin-GND+GND pin-8+22 (GND+GND)
Wer es ganz komfortabel haben möchte, platziert noch eine LED mit Vorwiderstand (ca. 1k Ohm) auf dem Steckbrett, wobei der Widerstand an Pin-19 des ATMEGA angeschlossen wird.
Die andere Seite des Widerstandes kommt an die Anode der LED (langes Bein) und die Kathode der LED (kurzes Bein) wird mit GND verbunden.
Dann hat man eine Funktionsanzeige.
Schritt 3: Bootloader programmieren
Stecken Sie den UNO wieder am PC an. Das "ArduinoISP"-Programm ist ja noch gespeichert und startet.
Nun wählen Sie diesmal den zu flashenden ATMEGA unter Werkzeuge > Board > Arduino UNO aus und überprüfen Sie, ob die Einstellung des seriellen Ports noch stimmt. Stellen Sie unter Werkzeuge → Programmer → Ardunino as ISP ein.
Nun starten Sie das Brennen des Bootloaders mittels Werkzeuge > Board > Bootloader brennen.
Machen Sie den ARDUINO UNO R3 wieder stromlos und entfernen Sie die Verbindungen zum ATmega328P.
Quelle:
http://www.netzmafia.de/skripten/hardware/Arduino/Bootloader_Flashen/
Microcontroller flashen: Arduino Uno als In-System-Programmer
Atmega programmieren :: Meine Arduino-Projekte
Einen fabrikneuen ATmega328P mit Bootloader für Arduino Uno
Atmega328 auf Breadboard flashen mit Arduino UNO R3 - Arduino Forum
Arduino ATMEGA328 Bootloader flashen - Netzmafia
Arduino-Bootloader auf Atmega328 flashen - Mikrocontroller.net
Arduino: Bootloader neu flashen - so geht's - CHIP
FTDI-USB-Seriell-Wandler (FTDI-Treiber mit Treibersoftware)
FTDI USB Driver - FTDI USB Serial Driver
entweder mit
1) USB-Serial Cable (FTDI-Kabel) 5V FTDI-Programmierkabel = USB-Programmierkabel
ODER mit
2) USB-Serial-Breakout-Board (FTDI-Leiterplatten-Modul)
BUCH: Arduino Praxiseinstieg Seite 444 Abb. 10.1 und Stückliste
https://www.dell.com/support/home/at/de/atbsdt1/drivers/driversdetails?driverid=r5k9d
FTDI Adapter FT232RL USB zu TTL Serial 5V für Arduino
FTDI Adapter FT232RL USB zu TTL Serial für 3,3V und 5V für Arduino PRO Mini
5V FTDI Basic von SparkFun mit IC-FT232Rl
SparkFun FTDI Basic Breakout - 5V DEV-09716
watterott.com/de/FTDI-Basic-Breakout-5V
https://www.sparkfun.com/products/9716
https://www.watterott.com/index.php?page=product&info=429&x7633b=4d41bd68d0942bafbe8f3955e7fde117
SparkFun FTDI Basic breakout Board 5V
FT232RL FTDI USB zu TTL Seriell Konverter Adapter Modul für Arduino
FTDI Adapter FT232RL USB zu TTL Serial 5V für Arduino
mit FTDI-Chip - USB to Serial-Chip
FTDI breakout Board Port Verbindungen
1k Widerstand von 328-pin-8-GND zu FTDI-DTR
100nF Kondensator von 328-pin-1-RESET zu FTDI-DTR
FTDI-RX zu 328-pin-3-TX
FTDI-TX zu 328-pin-2-RX
FTDI Vcc zu 328 5V
FTDI GND zu 328 0V
Mit diesem Arduino-Shield kann man ATmega328P-PU Chip mit Programmen bespielen.
Dieses Shield wird auf ein ARDUINO UNO R3 gesteckt.
XTAL1 ABRACON CRYSTAL 16.0000MHz 18pF SMD https://abracon.com/Resonators/abls.pdf
U1 IC ATMEL AVR-microcontroller ATmega328P-PU
https://aisler.net/EdgarFrog/playground/bootloadershield-platine
FTDI Adapter FT232RL USB zu TTL Serial für 3,3V und 5V mit gratis eBook!
9) Mit einem FTDI breakout Board einen ARDUINP Pro mini programmieren
Links:
AtMega328 Datenblatt: http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf
Der keramikresonator des UNO's: https://www.murata.com/~/media/webrenewal/support/library/catalog/products/timingdevice/ceralock/p17e.ashx ..
https://www.youtube.com/watch?v=slezReZBRsE (1A)
********************************************************I*
7.10 Ein Arduino selbstgebaut
Arduinos sind nicht besonders teuer, aber wenn Sie für jedes (dauerhafte) Projekt einen kaufen müssen, kann dies schon ins Geld gehen.
Glücklicherweise ist es nicht allzu kompliziert, einen Arduino für ein paar Euro selber zu bauen.
7.10.1 Stand-alone-Mikrocontroller
Wir beginnen mit der Hardware. Sie benötigen einen Mikrocontroller ATmega328P im PDIP-Gehäuse, das gut auf das Steckboard passt und auch der Typ ist, der bei den meisten Arduino Uno verwendet wird.
Da wird selber einen Bootloader installieren wollen, kaufen wir ATmega328P-Chips ohne Bootloader für 2...3 Euro pro Stück.
Mit Bootloader sind die Controller etwas teurer und auch schwerer erhältlich.
Die Nummerierung der Pins des ATmega328P beginnt wie bei jedem IC mit der 1 oben links, wenn die Einkerbung nach oben gehalten wird.
Pin 1 ist mit einem kleinen Kreis markiert.
Die Nummerierung geht an dieser Seite weiter mit 2 bis 14, dann auf der rechten Seite unten mit 15 und nach oben bis 28. Pin 28 befindet sich also gegenüber Pin 1.
Die Pinnummerierung und die Bedeutung der Pins erfahren Sie aus dem folgenden Bild, das aus dem Datenblatt des Herstellers stammt.
ATmega328P-PU DIP-28
Bild 123. Die Anschlüsse des ATmega328P-PU 28-DIP
(NICHT ATmega328P-AU SMD)
Sie sehen, dass die Namen und Pinnummern nicht mit denen der Arduino-Sketche übereinstimmen.
Darauf kommen wir später noch zurück.
Mikrocontroller sind ziemlich anfällig für statische Elektrizität.
Berühren Sie deshalb etwas Geerdetes, bevor Sie den Mikrocontroller anfassen, und berühren Sie so wenig wie möglich die Anschlüsse.
Achten Sie gut darauf, dass alle Pins gut im Steckboard sitzen.
Manchmal passiert es, dass sich ein Pin verbiegt und dann zwischen IC-Gehäuse und Steckboard und nicht im Kontakt steckt.
Wir verbinden den Controller so wie im folgenden Bild mit dem Arduino Uno.
Bei 7/20 und 8/22 müssen natürlich jeweils beide Pins mit +5 Volt respektive GND verbunden werden.
Bild 124. Anschluss des ATmega328P an den Arduino Uno..
Eigentlich trivial, aber es ist schon oft vorgekommen, dass ein Projekt partout nicht funktionieren will, weil (unerkannt) die Versorgungsspannung fehlt.
Auf einem Steckboard sind die Versorgungsschienen oft nicht durchverbunden.
In folgendem Bild sorgen deshalb kurze Kabel (rot und blau) für die Verbindung der linken und der rechten Hälfte.
Die Kabel, die die oberen und die unteren Schienen miteinander verbinden, sind hier nicht im Bild (aber vorhanden).
ATmega328 ARDUINO UNO
5V pin-7 auf 5V
GND pin-8 auf GND
SCK pin-19 mit SCK Pin-13 (Clock mit Clock)
MISO pin-18 mit MISO Pin-12
MOSI pin-17 mit MOSI Pin-11
RST pin-1 mit SS Pin-10
ARDUINO UNO-Pin ATrnege328P
SS Pin-10 pin-1 RST
MOSI Pin-11 pin-17 MOSI
MISO Pin-12 pin-18 MISO
SCK Pin-13 pin-19 SCK (eingebaute LED)
+5V Pin-Vcc+AVcc pin-7+20+21 (Vcc+AVcc+Aref)
GND pin-GND+GND pin-8+22 (GND+GND)
Tabelle 41. Kopplung von Arduino und ATmega328P.
Um Störungen zu vermeiden, sollte man an jeder Ecke des Boards einen 100nF Stütz-Kondensator (Code 104) über die Versorgungsspannung schalten (+5 Volt respektive GND).
Diese Kondensatoren sind hier weder im Bild noch in der Schaltung zu sehen.
Foto fehlt
Bild 125. Aufbau auf einem Steckbrett.
Im Download finden Sie die OptiLoader-Dateien.77)
77) Sie können auch von der Webseite des "Machers" die neuste Version abholen.
Entpacken Sie die Datei und platzieren Sie sie in einem Ordner "optiLoader" (achten Sie auf das große L).
Software-Arduino entdecken
software_arduino_entdecken.zip
7.10.3 \flashLEDadjust.ino
\optiLoader.h
\optiLoader.pde (heute *.ino) Bootloader
Laden Sie die Datei optiLoader.pde in die Arduino-IDE und senden Sie sie zum Arduino.
Ist die IDE fertig, so ziehen Sie den USB-Stecker, damit die Schaltung stromlos wird.
Bild optiLoader und COM5 fehlt
Bild 126. Der Sketch funktioniert.
Warten Sie einen Augenblick und stecken Sie das USB-Kabel wieder ein.
Starten Sie den Serial Monitor auf 19200 Baud, damit Sie verfolgen können, was geschieht.
In diesem Moment startet der Sketch von neuem, aber das ist kein Problem.
Wenn alles gut geht, erscheint folgender Text.
Wenn ein Fehler gemeldet wird, sind die Anschlüsse nicht richtig oder Sie haben ein Problem mit Störungen.
Im zweiten Fall:
Haben Sie die Kondensatoren an den Versorgungsschienen eingesetzt?
Bootloader
OptiLoader Bootstrap programmer.
2011 by Bill Westfield (WestfW)
Target power on! ...
Starting Program Mode [OK]
Reading signature:950F
Searching for image...
Found "optiboot_atmega328.hex" for atmega328P
Start address at 7E00
Total bytes read: 502
Setting fuses for programming
Lock: 3F FFE000 Low: FF FFA000 High: DE FFA800 Ext: 5 FFA400
Programming bootloader: 512 bytes at 0x3F00
Commit Page: 3F00:3F00
Commit Page: 3F40:3F40
Commit Page: 3F80:3F80
Commit Page: 3FC0:3FC0
Restoring normal fuses
Lock: 2F FFE000
Target power 0FF!
Type 'G' or hit RESET for next chip
Die Anmerkung "Target power OFF!" sollte Sie nicht beeindrucken.
Es ist nämlich möglich, den ATmega328P über Pin 9 des Arduino zu versorgen.
In diesem Fall schaltet der Arduino nach dem Programmieren den Pin 9 und damit die Versorgung des ATmega328P ab.
Danach kann man den Controller aus dem Steckboard holen, den nächsten ATmega328P einstecken und ihn mit einem Druck auf die Reset-Taste mit einem Bootloader ausstatten.
Das ist möglich, weil der ATmega328P auf dem Steckboard nicht einmal 15mA benötigt.
Ich ziehe es aber vor, den ATmega328P über den normalen +5V Anschluss zu versorgen und dann vor dem Entfernen das USB-Kabel herauszuziehen.
Markieren Sie den ATmega328P mit einem Sticker, so dass Sie wissen, dass der Controller nun einen Bootloader enthält.
Sie können den neuen Bootloader testen, indem Sie den Controller des Arduino (vorsichtig!) aus der Fassung holen und dafür den gerade eben programmierten einsetzen.
Am besten, Sie statten auch den originalen Arduino-Controller mit einem Sticker ("Original") aus.
Achten Sie auch darauf, dass der Chip auf dem Arduino richtig herum eingesteckt ist (Pin 1 befindet sich am gekrümmten Platinenrand).
Schließen Sie das USB-Kabel wieder an und probieren Sie die Blink-Demo aus.
Wenn alles richtig gemacht wurde, blinkt die LED an Pin 13. S
ie können auf diese Weise einen Sketch entwickeln, den Chip vom Steckboard holen und in die (permanente) Zielapplikation einsetzen.
Wenn Sie einen ATmega328P anstelle eines Arduinos verwenden, vergessen Sie nicht, dass die Anschlüsse auf den Arduino-Headern anders heißen als beim ATmega328P.
Natürlich sind trotz der unterschiedlichen Bezeichnungen die gleichen Pins vorhanden.
Die folgende Tabelle zeigt, wie die Anschlüsse von ATmega328 und Arduino-Header übereinstimmen und welche Funktion sie haben.
Wenn sich zum Beispiel beim Arduino ein Schalter an Header-Pin 3 befindet, muss er beim ATmega328 an Pin 5 angeschlossen werden.
Arduino-Pin ATmega328P-pin Funktion
RST pin-1 Reset
0 2 Rx / digital
Pin-1 3 Tx / digital
Pin-2 4 digital
3 5 digital
4 6 digital
+5V pin-7 und pin-20 Vcc (+5V) Achtung: Beide Pins müssen angeschlossen werden!
GND pin-8 und pin-22 GND Achtung: Beide Pins müssen angeschlossen werden!
5 11 digital
6 12 digital
7 13 digital
8 14 digital
9 15 digital
10 16 digital
11 17 digital
12 18 digital
13 19 LED-13 / digital
Aref pin-21 Aref
A0 23 analog
Al 24 analog
A2 25 analog
A3 26 analog
A4 27 analog
Pin-A5 pin-28 analog
Tabelle 42. Anschlüsse von Arduino und ATmega328 und ihre Funktionen.
Folgendes Bild zeigt die Basisschaltung eines ATmega328P.
Diese Anschlüsse und Bauteile MÜSSEN immer vorhanden sein.
pin-7 / pin-20 bedeutet, dass immer beide Pins (also pin-7 und pin-20) angeschlossen sein müssen.
Das gleiche gilt natürlich für pin-8 / pin-22.
Bild 127. Die Basisschaltung des ATmega328P
Der 10k Widerstand weist den Farbcode (braun-schwarz-orange-gold) auf, die 20pF Kondensatoren den Code 22.
Achten Sie darauf, dass die Quarzfrequenz wirklich 16MHz beträgt, eine andere Frequenz funktioniert nicht!
BreadBoard Schaltungs Bild fehlt
Bild 128. Basisschaltung auf dem Steckbrett. Pin 1 ist oben rechts.
Das Netzteil muss eine gut stabilisierte +5 Volt-Gleichspannung liefern.
Sie können einen USB-Adapter verwenden und dort den Stecker abknipsen oder alternativ einen kleinen Netztrafo, an dessen Sekundärseite Sie die Schaltung aus Bild 130 anschließen.
Bild 129. Stabilisierte 5-Volt-Versorgung.
7.10.2 Mit USB-Anschluss
Wir verfügen nun über einen funktionsfähigen Arduino-Bootloader in einem ATmega328, haben aber keine Möglichkeit, um über den USB Verbindung aufzunehmen.
Eine gute Option ist ein USB-TTL-Kabel für 5 Volt.
So etwas ist nicht billig, aber man kann es für alle selbstgemachten Arduinos verwenden. Insofern scheint es nicht nur die praktischste, sondern auch die preiswerteste Lösung zu sein.
Wir setzen in diesem Projekt ein "TTL232R USB to TTL Serial Converter Cable" ein.78)
78) Das "TTL-232R USB to 5 volt TTL Serial Converter Cable" ist von Future Technology Devices International Ltd.
Achten Sie darauf, dass Sie die 5 Volt Version verwenden.
/usb-ttl-interface-cable-5V
https://www.ftdichip.com/Products/Cables/USBTTLSerial.htm
USB-TTL-Kabel
TTL232R USB to TTL Serial Converter Cable
Der Anschluss des Kabels an die Hardware ist einfach, Sie dürfen aber nicht vergessen, die CTS-Leitung auf Masse zu legen.
Dies ist für den PC der Hinweis, dass Daten gesendet werden dürfen. Die Anschlüsse 1 und 2 des USB-TTL-Kabels werden miteinander verbunden.
Die Arduino-IDE will selbstständig den ATmega328P zurücksetzen können und benutzt dazu den RTS-Anschluss.
Dieser ist mit einem 0,1-pF-Kondensator mit dem Reset-Anschluss des Atmega328P verbunden. Der TTL-Stecker des Kabels ist nicht markiert, Pin 1 (Erde) ist bei der schwarzen Ader.
Wir schließen noch eine LED an Pin 19 (Arduino-Pin 13) an und können die Funktion der Schaltung mit dem Blink-Sketch aus dem Ordner Examples überprüfen.
FTDI-Kabel ATmega328P
1 = GND sw pin-8 und pin-22 GND
2 = CTS br pin-8 und pin-22 GND
3 = Vcc rt pin-7 und pin-20 und pin-21
4 = TxD or pin-2 RxD
5 = RxD ge pin-3 TxD
6 = RTS gn über 100nF auf pin-1 RESET
Bild 130. Die Schaltung mit dem USB-TTL-Kabel am ATmega328P
Der 100nF Kondensator weist den Code 104 auf, der 10k Widerstand die Farben (braun-schwarz-orange-gold), der 220R Widerstand (rot-rot-braun-gold) und die kleinen 20pF Kondensatoren die Nummer 22.
Achten Sie darauf, dass Sie einen 16MHz Quarz verwenden, sonst funktioniert es nicht.
Die kleinen Patchkabelstecker passen genau in den Stecker des USB-TTL-Kabels.
Achten Sie darauf, dass Sie die 5 Volt Version verwenden.
TTL-232R TTL to USB Serial Converter Range of Cables
USB-TTL-Kabel
TTL232R USB to TTL Serial Converter Cable
FTDI TTL-232R cable
USB cable with 6 way 0.1" pitch single inline connector with +5.0V signalling. TTL-232R-5V (6 way, 0.1" pitch single inline connector)
https://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_TTL-232R_CABLES.pdf
https://www.ftdichip.com/Products/Cables/USBTTLSerial.htm
https://www.digikey.at/product-detail/de/ftdi/TTL-232R-5V/768-1028-ND/2003493?utm_adgroup=Cable+Assemblies&mkwid=s&pcrid=291655443974&pkw=&pmt=&pdv=c&productid=2003493&slid=&gclid=EAIaIQobChMIza3CmemY4gIVRJSyCh1bhwfiEAQYAiABEgLOB_D_BwE
https://www.sparkfun.com/products/9718
USB-serial TTL
USB-TTL-Kabel TTL-232R-5V
FTDI-Kabel ATmega328P
1 = GND sw pin-8 und pin-22 GND
2 = CTS br pin-8 und pin-22 GND
3 = Vcc rt pin-7 und pin-20 und pin-21
4 = TxD or pin-2 RxD
5 = RxD ge pin-3 TxD
6 = RTS gn über 100nF auf pin-1 RESET
Bild 131. Der Aufbau auf dem Steckbrett.
Wir können nun in der Arduino-IDE einen Sketch erstellen und auf gewohnte Manier im selbstgemachten Arduino unterbringen.
Der einzige Unterschied ist, dass das USB-TTL-Ka-el seinen eigenen COM-Port hat, der sich vom COM-Port des alten Arduinos unterscheidet.
Bei mir befindet sich der normale Arduino an COM 5, der über das USB-TTL-Kabel verbundene an COM 6.
Das kann bei Ihnen aber anders aussehen.
Sie können über Tools-Seri-al Port den Port wie gewünscht einstellen.
COM-Ports von USB-Konvertern sind übrigens nur sichtbar, wenn das Kabel auch tatsächlich angeschlossen ist.
7.10.3 Demoprojekt mit selbstgebautem Arduino: einstellbares Blinklicht
Wir wiederholen Projekt 5.1 aber verwenden dieses Mal unseren selbstgebauten Arduino.
Wir belassen die LED an Pin-13 (pin-19 des ATmega382P) und schließen an Pin-A5 (pin-28 des ATmega382P) ein Potentiometer an.
Der Sketch zeigt keine Besonderheiten.
int pot = A5;
int led = 13;
int state = false;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, state);
state=!state;
delay(analogRead(pot)+20);
}
Ziehen Sie den USB-Stecker aus dem PC, so dass die Schaltung stromlos wird, bevor Sie daran arbeiten.
Das USB-TTL-Kabel ist nur für die Programmierung erforderlich.
Wenn Sie die Arbeit beendet haben, entfernen Sie das Kabel und den 0,1 pF Kondensator und schließen eine gut stabilisierte Spannungsversorgung von +5Vdc an.
Der 10k Widerstand an pin-1 muss in der Schaltung verbleiben.
FTDI-Kabel ATmega328P
1 = GND sw pin-8 und pin-22 GND
2 = CTS br pin-8 und pin-22 GND
3 = Vcc rt pin-7 und pin-20 und pin-21
4 = TxD or pin-2 RxD
5 = RxD ge pin-3 TxD
6 = RTS gn über 100nF auf pin-1 RESET
Bild 132. Die Schaltung des einstellbaren Blinklichts.
Drehen Sie am Potentiometer, um die Blinkfrequenz einzustellen.
BILD des BreadBoard mit USB-TTL-Kabel fehlt
Bild 133. Der Aufbau auf dem Steckbrett.
Quelle:
BUCH: Arduino entdecken Seite 199
********************************************************I*
DIY Boards und Clones
10.1.1 Minimalschaltung Arduino
Abbildung 10.1 zeigt die Minimalschaltung des Arduino.
Der zentrale Baustein ist der Microcontroller (IC1) mit der Typenbezeichnung ATmega328.
Die Kondensatoren C2 und C3 und der Quarz (Q1) erzeugen den Takt für die Microcon-trollerschaltung.
Mit dem Widerstand R1, dem Kondensator C4 und dem Taster T1 ist eine Reset-Schaltung realisiert.
Über den Widerstand R1 ist der Reset-Anschluss des Microcontrollers (pin-1) mit HIGH verbunden.
Durch Druck auf den Taster wird der Reset-Anschluss mit 0V (LOW) verbunden und der Microcontroller wird zurückgesetzt.
Zusätzlich kann über den Kondensator C4 und den DTR-Anschluss des FTDI-Steckers von außen ein Reset erzeugt werden.
Der FTDI-Anschluss dient dabei als Schnittstelle zum angeschlossenen Rechner und liefert gleichzeitig die Spannungsversorgung.
Am FTDI-Anschluss muss ein so genannter USB-Seriell-Wandler angeschlossen werden.
Wie der Name aussagt, ist das das Bindeglied zwischen dem USB-Anschluss des Rechners und der seriellen Schnittstelle der Arduino-Schaltung.
Abb. 10.1: Minimalschaltung Arduino
FTDI-Kabel ATmega328P
1 = GND sw pin-8 und pin-22 GND
2 = CTS br pin-8 und pin-22 GND
3 = Vcc rt pin-7 und pin-20 und pin-21
4 = TxD or pin-2 RxD
5 = RxD ge pin-3 TxD
6 = RTS gn über 100nF auf pin-1 RESET
Stückliste (Minimalschaltung Arduino):
Microcontroller ATmega328P 28-pol DIL mit Arduino Bootloader (IC1)
Quartz 16 MHz (Q1)
Widerstand 10k Ohm (R1)
2 Kondensator 22pF (C2, C3)
2 Kondensator 100nF (Ci, C4)
Reset-Taster (Si)
Stiftleiste 6-polig (Stecker FTDI)
10.1.2 Bare Bone Breadboard Arduino
Die Minimalschaltung mit den neun Komponenten aus dem vorherigen Abschnitt ist die Basis für den Bare Bone Breadboard Arduino, das Grundgerüst oder Grundschaltung eines Arduino-Boards auf dem Steckbrett.
Die Steckbrett-Variante eignet sich ideal für die Entwicklungsphase eines Projekts.
Die Schaltung ist schnell aufgebaut und kann durch die lötfreie Verbindungstechnik schnell verändert werden.
Für den Upload der Arduino-Sketches wird auch ein USB-Seriell-Wandler verwendet, der am 6-poligen FTDI-Stecker angeschlossen wird.
Abbildung 10.2 zeigt den Schaltungsaufbau auf dem Steckbrett.
Abb. 10.2: Breadboard Arduino
10.1.3 Really Bare Bone Board (RBBB)
Bauteile für Sensor-Anwendungen in Haus und Garten oder andere kleine Anwendungen, die mit Arduino realisiert werden, sind meist in einem festen und stabilen Gehäuse untergebracht.
Oftmals muss die Anwendung dabei so klein wie möglich sein, damit sie in das gewählte Gehäuse passt, oder der Anwender möchte eine kostengüstigere Arduino-Variante verwenden.
Die Steckbrettschaltung aus dem vorherigen Abschnitt ist zwar kostengünstig, aber für Anwendungen im produktiven Einsatz meist zu unstabil.
Alle Anforderungen, kleine Abmessungen, kostengünstig und ein stabiler Aufbau, bietet das Really Bare Bone Board (RBBB) von Modern Device (http://moderndevice.com).
Der RBBB ist als Minimalboard realisiert und hat sehr geringe Abmessungen.
Die schmale Leiterplatte ist 15mm breit und 80mm lang.
Abb. 10.3: Really Bare Bone Board (Bild: moderndevice.com)
Alle digitalen und analogen Ports des Arduino sind beim RBBB seitlich auf Stiftleisten geführt.
Das RBBB-Board kann so auch in ein Steckbrett oder eine Prototy-penplatine gesteckt oder gelötet werden.
Der 6-polige Anschluss für den FTDI-Stecker ist an der schmalen Seite positioniert und erlaubt ein einfaches Anschließen des Programmierkabels.
Für eigenständige Anwendungen kann eine Versorgungsspannung von einer Batterie oder einem Netzteil an der Jack-Buchse angeschlossen werden.
Bei der Auswahl eines RBBB als Arduino-Board ist immer zu beachten, dass diese Aufbauvariante mechanisch nicht kompatibel ist mit den Arduino Shields.
In der Praxis heißt das konkret, dass man, falls man Shields verwenden möchte, einen zusätzlichen Adapter verwenden muss.
Dieser Adapter, in Form einer Leiterplatte, verbindet die Anschlussstifte des RBBB mit dem Shield.
Einen passenden Adapter liefert Wicked Device:
http://wickeddevice.com/index.php?main_page=product_info&cPath=2&products id=86
10.1.4 Nanode
Das Nanode-Board (Network Application Node) ist ein weiterer erfolgreicher Arduino-Clone.
Der Nanode (http://nanode.eu) wurde von Entwicklern des London Hackspace (http://wiki.london.hackspace.org.uk/view/Project:Nanode) entwickelt
und hat denselben mechanischen Aufbau wie ein Standard-Arduino-Board. Zusätzlich besitzt das Nanode-Board, wie der Name aussagt, einen Netzanschluss in Form einer Ethernet Schnittstelle.
Nanode benötigt für die Verbindung zum Internet kein zusätzliches Ethernet Shield.
Die gesamte Funktionalität ist auf der Grundplatine aufgebaut und somit eignet sich Nanode ideal für webbasierte Arduino-Anwendungen wie
Sensor-Interface, Webdatenlogger, Wetterstation oder Twitter-Tools (Abbildung 104).
Abb. 10.4: Arduino-Clone mit Ethernet: Nanode
Das Projekt Nanode hat sich aus einer Idee für ein kostengünstiges Arduino-Board mit Webconnectivity zu einem preisgekrönten Projekt entwickelt.
Die Internet-Community hat das Projekt Nanode mit dem INTERNET OF THINGS AWARD 2011 in der Kategorie OPEN SOURCE PROJECT (http://postscapes.com/ best-iot-open-source-project-2011) ausgezeichnet.
Nanode hat dabei sogar das Quasi-Mutterprojekt ARDUINO übertrumpft.
Zwischenzeitlich ist das Nanode-Board bei verschiedenen Arduino-Produkte-Lieferanten im Angebot und es wurden bereits über 1.000 Boards verkauft.
Der Nanode ist Arduino-kompatibel und wird über einen USB-Seriell-Wandler mit dem Rechner verbunden.
Aus Kosten- und Platzgründen wurde die Ethernet-Schnittstelle nicht mit einem Wiznet-Controller, der auf den Standard-Ethernet Shields integriert ist, realisiert, sondern mit einem Ethernet-Controller vom Typ ENC28J60.
Diese unterschiedliche Hardware-Konfiguration hat zur Folge, dass die Standard-Ethernet-Library nicht verwendet werden kann.
Die Ethernet-Funktionalität wird mit der ETHERCARD-Library (https://github.com/jcw/ether-card) umgesetzt.
Neben dem klassischen Nanode-Board gibt es in der Zwischenzeit weitere Nanode-Varianten und Erweiterungen.
Dazu gehören der Nanode RF, ein Nanode mit integriertem RF-Modul für drahtlose Datenübertragung im 433MHz und 868MHz Bereich sowie Shields für drahtlose Datenübertragung.
Alle verfügbaren Modelle sind im Nanode-Shop aufgelistet (http://shop.nanode.eu).
Hinweis
Neben der genannten ETHERCARD-Library gibt es für den Ethernet-Controller ENC28J60 noch die ETHERSHIELD-Library.
Die Weiterentwicklung dieser Bibliothek wurde aber kürzlich vom Entwickler beendet.
In verschiedenen Anwendungen ist aber weiterhin diese Library im Einsatz.
10.2 Programmieradapter (USB-Wandler)
Die in diesem Kapitel beschriebenen Arduino Clones haben alle keine USB-Schnittstelle integriert.
Diese fehlende USB-Schnittstelle wird durch ein externes Modul, den so genannten USB-Seriell-Wandler, ergänzt.
Dieser Wandler ist das Bindeglied zwischen dem USB-Port des Rechners und dem seriellen Anschluss des Arduino-Microcontrollers.
Der USB-Seriell-Wandler wird rechnerseitig über ein USB-Kabel am USB-Port des Rechners angeschlossen.
Am Arduino-Board wird der Wandler an der 6-poligen Stiftleiste, meistens mit FTDI bezeichnet, angeschlossen.
Die Bezeichnung FTDI stammt vom Hardware-Hersteller, der den Logikbaustein herstellt, der auf dem USB-Seriell-Wandler die Signalumsetzung vornimmt.
Der USB-Seriell-Wandler ist in zwei Varianten verfügbar:
1. USB-Serial-Breakout-Board (kleines Leiterplatten-Modul, Abbildung 10.5)
2. USB-Serial Cable (FTDI-Kabel, Abbildung 10.6)
Das USB-Serial-Breakout-Board ist eine kleine Leiterplatte mit USB-Anschluss und der 6-poligen Buchsenleiste.
Abb. 10.5: USB-Seriell-Wandler an RBBB (Really Bare Bone Board)
Das USB-Serial- oder FTDI-Kabel besitzt auf der einen Seite einen USB-Stecker (Typ A) und auf der anderen Seite eine 6-polige Buchsenleiste.
RBBB Compatible with ARDUINO UNO
RBBB (Really Bare Bones Board) - Really Bare Bones Board (BBB) Kit
2,1 mm 7V..9V Stromanschluss
Optiboot Bootloader (Uno-Einstellung)
ATmega328P-PU Chip
L4931CZ50-AP TO-92 Low-Dropout-Regler (300 mA)
300_b_ARDUINO-x_RBBB Really Bare Bones (Arduino) RBBB-Instructions_1a.pdf
Es ist eines der derzeit kleinsten und kostengünstigsten Arduino-kompatiblen Boards.
FTDI-Kabel ATmega328P
1 = GND sw pin-8 und pin-22 GND
2 = CTS br pin-8 und pin-22 GND
3 = Vcc rt pin-7 und pin-20 und pin-21
4 = TxD or pin-2 RxD
5 = RxD ge pin-3 TxD
6 = RTS gn über 100nF auf pin-1 RESET
Abb. 10.6: RBBB mit FTDI-Kabel
http://community.medion.com/
https://www.arduino-board.com/boards/rbbb
https://moderndevice.com/product/rbbb-kit/
Beide Varianten des USB-Seriell-Wandlers sind bei vielen Anbietern von Arduino-Produkten erhältlich.
Hinweis
Beim Kauf eines USB-Seriell-Wandlers, Breakout-Boards oder Kabels, muss die Betriebsspannung beachtet werden.
Meist ist in der Beschreibung erwähnt, ob das Produkt für 3,3 V oder 5 V ausgelegt ist.
Bei einigen Produkten kann Betriebs- und Signalspannung mittels Steckverbinder oder Lötverbindung ausgewählt werden.
10.2.1 Anschlussbelegung FTDI
In Tabelle 10.1 sind die Anschlussbelegungen, die Bezeichnungen und die Kabelfarben aufgelistet.
Pin-Nr. Kabelfarbe Bezeichnung Beschreibung
1 Schwarz GND GND
2 Braun CTS GND
3 Rot Vcc +5,0V
4 Orange TxD TX
5 Gelb RXD RX
6 Grün DTR Reset
ODER
FTDI-Kabel ATmega328P
1 = GND sw pin-8 und pin-22 GND
2 = CTS br pin-8 und pin-22 GND
3 = Vcc rt pin-7 und pin-20 und pin-21
4 = TxD or pin-2 RxD
5 = RxD ge pin-3 TxD
6 = RTS gn über 100nF auf pin-1 RESET
Programming cable connections between a RBBB and a FTDI TTL-232R USB to TTL serial cable.
Tabelle 10.1: USB-Seriell-Wandler/FTDI-Kabel
Quelle:
BUCH: Arduino Praxiseinstieg Seite 443
********************************************************I*
11 Gestatten, Familie Arduino!
In diesem Kapitel lernen Sie Folgendes:
• Bau einer eigenen Arduino-Schaltung auf einer Steckplatine
• Funktionsumfang und Vorteile der verschiedenen Arduino-kompatiblen Platinen
• Open-Source-Hardware
Wir reduzieren hier den Arduino auf eine Handvoll Teile, die Sie auf einer Steckplatine anbringen.
Mit einer eigenen Arduino-Schaltung können Sie Geld sparen, vor allem wenn Sie viele neue Projekte und Prototypen in Angriff nehmen.
Außerdem erfahren Sie hier etwas über neue Bauteile und Schaltungen und lernen, wie Sie Sketche ohne zusätzliche Hardware auf Ihren Arduino Marke Eigenbau hochladen.
Am Ende sehen wir uns die am weitesten verbreiteten Alternativen zum Arduino Uno und die Unterschiede zwischen ihnen an.
Projekt Nr. 37: Einen eigenen Steckplatinen-Arduino bauen
Wenn Sie immer mehr oder immer kompliziertere Projekte und Experimente durchführen, können die Kosten für die Arduino-Platinen schnell ' aus dem Ruder laufen, vor allem sobald Sie an mehreren Basteleien gleichzeitig arbeiten.
Dann ist es billiger und einfacher, wie in diesem Projekt die Schaltung der Arduino-Platine auf einer Steckplatine nachzubauen und dann je nach vorliegender Aufgabe zu erweitern.
Die erforderlichen Teile für die Grundschaltung des Arduino kosten keine 10 €.
Dies ist auch die einfachere Vorgehensweise, wenn in einem Projekt viele externe Verbindungen benötigt werden, da Sie es sich dann sparen können, viele Drähte vom Arduino zur Steckplatine zu verlegen.
Die Hardware
Um eine minimalistische Version des Arduino zu bauen, benötigen Sie folgende Teile:
• 1x linearen Spannungsregler vom Typ LM7805
• 1x 16MHz Quarzoszillator (z.B. den Newark 16C8140)
• 1x ATmega328P-PU-Mikrocontroller mit geflashtem Arduino-Bootloader
• 1x 1uF Elko = Elektrolytkondensator für 25V (C1)
• 1x 100µF Elko für 25 V (C2)
• 2x 22pF Keramikkondensatoren für 50 V (C3 und C4)
• 1x 100nF Keramikkondensator für 50 V (C5)
• 2x 560R Widerstände (R1 und R2)
• 1x 10k Widerstand (R3)
• 2x LED 5mm rt und gn (LED1 und LED2)
• 1x Micro-Drucktaste (S1)
• 1x 6-er-Pfostenleiste
• 1x Clip für 9-Volt Blockbatterie
• 1x 9-Volt Blockbatterie (PP3)
• Verbindungsdrähte alle Grundfarben Dm 0,64mm
• 1x BreadBoard = Steckplatine
Mit einigen dieser Teile sind Sie vielleicht noch nicht vertraut.
In den folgenden Abschnitten erklären wir die einzelnen Elemente und zeigen jeweils ein Beispielmodell und das Schaltplansymbol.
Linearer Spannungsregler 7805
Ein linearer Spannungsregler enthält eine einfache Schaltung, die eine Spannung in eine andere umwandelt.
Der in der Teileliste aufgeführte Regler 7805 konvertiert Spannungen zwischen 7V bis 30V in konstante 5,0V
mit einer Stromstärke von maximal 1,0 Amp, was für den Betrieb unseres Steckplatinen-Arduino ideal ist.
Abbildung 11-1 zeigt ein Beispiel des 7805 in der Bauform mit der Bezeichnung TO-220.
Abb. 11-1 Linearer Spannungsregler 7805
In Abbildung 11-2 sehen Sie das Schaltplansymbol für den 7805.
Wenn Sie das Bauteil aufrecht halten und auf seine beschriftete Seite blicken, dann ist der linke Kontakt für die Eingangsspannung 7,0 bis 30V zuständig, der rechte für den 5 Volt-Ausgang und der mittlere für den Masseanschluss GND.
Die Metalllasche am oberen Rand weist eine Bohrung auf, um den Regler mit einem größeren Metallstück zu verbinden, das als Wärmeableiter dient.
Wenn sich die Stromstärke dem Maximum von 1 A nähert, wird der 7805 ziemlich warm, weshalb wir unbedingt eine Möglichkeit brauchen, um diese Wärme abzuführen.
Auch die Lasche ist mit Masse Pin-2 verbunden.
Abb. 11-2 Das Schaltplansymbol für den 7805
16MHz Quarzoszillator
Ein Quarzoszillator ruft ein elektrisches Signal mit sehr genauer Frequenz hervor. Bei diesem Bauteil beträgt sie 16MHz.
Den Oszillator, den wir verwenden, sehen Sie in Abbildung 11-3.
Abb. 11-3 Quarzoszillator
Vergleichen Sie diese Abbildung mit dem Quarzoszillator auf einem Arduino.
Die beiden Bauteile sollten die gleiche Form und Größe aufweisen. Quarzoszillatoren sind nicht gepolt.
Das Schaltplansymbol sehen Sie in Abbildung 11-4.
Abb. 11-4 Das Schaltplansymbol für einen Quarzoszillator
Der Oszillator bestimmt die Arbeitsgeschwindigkeit des Mikrocontrollers.
Unser Mikrocontrollerschaltkreis läuft mit 16MHz, kann also 16 Millionen Prozessoranweisungen pro Sekunde verarbeiten.
Das sind jedoch keine 16 Millionen Zeilen oder Funktionen, da zur Interpretation einer einzigen Codezeile viele Prozessoranweisungen erforderlich sind.
Mikrocontroller-IC Atmel ATmega328P-PU
Ein Mikrocontroller ist ein winziger Computer, der einen Prozessor zur Verarbeitung von Anweisungen, verschiedene Arten von Arbeitsspeicher zum Festhalten von Daten und Anweisungen sowie Einrichtungen zum Senden und Empfangen von Daten enthält.
Wie bereits in Kapitel 2 erwähnt, stellt der Mikrocontroller das Gehirn des Arduino dar.
Was wir brauchen, ist der ATmega328P, den Sie in Abbildung 11-5 sehen.
pin-1 befindet sich unten links an dem IC und ist mit einem kleinen Punkt gekennzeichnet.
Abb. 11-5 Der ATmega328P-PU 28-DIL 28-DIP
Das Schaltplansymbol für den Mikrocontroller sehen Sie in Abbildung 11-6.
Abb. 11-6 Das Schaltplansymbol für einen Mikrocontroller
Nicht alle Mikrocontroller enthalten den Arduino-Bootloader, also das Programm, das die für den Arduino geschriebenen Sketche interpretieren kann.
Für einen Eigenbau-Arduino müssen Sie einen Mikrocontroller ATmega4328P-PU auswählen, der diesen Bootloader bereits enthält.
Zu erwerben gibt es sie im Allgemeinen bei den gleichen Händlern, die auch Arduino-Platinen verkaufen,
z.B. Adafruit, Freetronics und SparkFun.
Der Schaltplan
Abbildung 11-7a zeigt Ausschnitt aus den ORIGINAL-Schaltplan.
Pin-RX
FTDI-Kabel ATmega328P
1 = GND sw pin-8 und pin-22 GND
2 = CTS br pin-8 und pin-22 GND
3 = Vcc rt pin-7 und pin-20 und pin-21
4 = TxD or pin-2 RxD
5 = RxD ge pin-3 TxD
6 = RTS gn über 100nF auf pin-1 RESET
Abb. 11-7b Schaltplan für den einfachen Steckplatinen-Arduino
Der Schaltplan besteht aus zwei Teilen. Links sehen Sie den Bereich der Stromversorgung, in dem die Spannung von 9V auf 5V verringert wird.
Außerdem befindet sich dort eine LED, die bei eingeschaltetem Strom leuchtet.
Der Abschnitt auf der rechten Seite besteht aus dem Mikrocontroller ATmega328P, der Reset-Taste, den Pins und einer weiteren LED.
Diese ist mit dem pin des ATmega328 verbunden, der als Arduino-Pin 13 dient.
Stellen Sie die Anschlüsse nach dem Schaltplan her.
Vergessen Sie dabei nicht die Verkabelung der 6er Pfostenleiste (siehe Abb. 11-8), die am unteren Rand des Schaltplans als eine Reihe aus sechs Kreisen dargestellt ist.
Diese Verbindung werden wir später verwenden, um einen Sketch auf unseren Eigenbau-Arduino hochzuladen.
Abb. 11-8 Sechser-Pfostenleiste mit C5 = 100nF
Die Schaltung wird über eine handelsübliche 9 Volt Batterie mit passendem Clip mit Strom versorgt (siehe Abb. 11-9).
Schließen Sie den roten Draht des Batterieclips an Vcc = 5V an, und den schwarzen an das Minus-Ende.
fehlt
Abb. 11-9 9-Volt-Batterie mit Clip
Die Arduino-Pins
Wo aber sind an unserem Eigenbau-Arduino die Pins geblieben?
Die analogen, digitalen und sonstigen Anschlüsse der normalen Arduino-Platine stehen uns auch bei unserer Steckplatinen-Version zur Verfügung, befinden sich aber direkt am Mikrocontroller.
Bei unserem Eigenbau-Arduino liegen der Widerstand R2 und die Leuchtdiode LED2 am Digitalpin 13.
Tabelle 11-1 stellt die Arduino-Pins und die entsprechenden Pins am ATmega328 gegenüber.
ARDUINO UNO Pin ATmega328 pin
Pin-Reset pin-1 Pin-A5 pin-28
Pin-RX/D0 pin-2 Pin-A4 pin-27
TX/D1 3 A3 26
D2 4 A2 25
D3(pwm) 5 A1 24
D4 6 A0 23
Vcc 7 GND 22
GND 8 Aref 21
X1(quarz) 9 Vcc 20
X2(quarz)10 D13 SCK 19
D5(pwm) 11 D12 MISO 18
D6(pwm) 12 D11(pwm) MOSI 17
D7 13 D10(pwm) SS 16
Pin-D8 pin-14 Pin-D9(pwm) pin-15
Tab. 11-1 Pinbelegung des ATmega328P
Um Verwechslungen zu vermeiden, bieten Händler wie Adafruit und Freetronics auch Aufkleber mit einer Pinbeschriftung für den Mikrocontroller an
siehe Abb. 11-10; zu beziehen über
http://www.freetronics.com.au/mculabel/
Abb. 11-10 Aufkleber mit Pinbeschriftung
Einen Testsketch ausführen
Nun ist es an der Zeit, einen ersten Sketch hochzuladen.
Als Beispiel nehmen wir einen einfachen Sketch, der die LED blinken lässt:
// Projekt 37: Einen eigenen Steckplatinen-Arduino bauen
void setup()
{
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Zum Hochladen des Sketches haben Sie drei Möglichkeiten:
Austausch des Mikrocontrollers
Die preisgünstigste Möglichkeit, einen Sketch hochzuladen, besteht darin, den Mikrocontroller eines anderen Arduino auszubauen, an dessen Stelle den Mikrocontroller der Steckplatinenversion einzusetzen, den Sketch hoch-zuladen und die Controller dann abermals auszutauschen.
Um einen Mikrocontroller gefahrlos von einem Arduino zu lösen, verwenden Sie einen IC-Abzieher (siehe Abb. 11-11).
IC-Abzieher Foto fehlt
Abb. 11-11 Ausbau eines Mikrocontrollers mit einem IC-Abzieher
Achten Sie beim Ausbau des Mikrocontrollers darauf, langsam und gleichmäßig an beiden Enden zugleich zu ziehen.
Es kann ein bisschen schwierig sein, das Bauteil zu lösen, aber schließlich wird es sich von seinem Sockel entfernen lassen.
Wenn Sie den Mikrocontroller auf der Steckplatine oder einem Arduino einsetzen, müssen Sie möglicherweise die Anschlussstifte ein wenig biegen, sodass sie im rechten Winkel zum IC-Gehäuse stehen und glatt in die Öffnungen rutschen können.
Legen Sie das Bauteil dazu seitlich auf eine ebene Oberfläche und drücken Sie es leicht nach unten (siehe Abb. 11-12).
Wiederholen Sie den Vorgang dann für die andere Seite.
Beim Wiedereinbau des ursprünglichen Mikrocontrollers auf der Arduino-Platine müssen Sie darauf achten, dass das Ende mit der Einkerbung nach rechts zeigt, wie Sie in Abbildung 11-13 sehen.
FOTO fehlt
Abb. 11-12 Die Pins am Mikrocontroller zurechtbiegen
FOTO fehlt
Abb. 11-13 Richtige Ausrichtung des Mikrocontrollers auf einem Arduino
Anschluss an eine handelsübliche Arduino-Platine
Über die USB-Schnittstelle eines Arduino Uno können Sie Sketche auf den Mikrocontroller des Steckplatinen-Arduino hochladen.
Diese Methode verringert die Abnutzung des Mikrocontroller-Sockels auf der Platine und kommt ohne das besondere USB-Kabel aus, das Sie für die dritte Methode brauchen.
Um einen Sketch hochzuladen, gehen Sie wie folgt vor:
1. Ziehen Sie den Mikrocontroller vom Arduino Uno ab und lösen Sie das USB-Kabel.
2. Unterbrechen Sie die Stromversorgung des Steckplatinen-Arduino.
3. Verbinden Sie Digitalpin 0 des Arduino mit Pin 2 des ATmega328P auf der Steckplatine sowie Digitalpin 1 mit Mikrocontroller-Pin 3.
4. Verbinden Sie den 5-Volt- und den GND-Anschluss des Uno mit den entsprechenden Stellen der Steckplatine.
5. Verbinden Sie den RST-Anschluss des Arduino mit Pin 1 des ATmega328P.
6. Schließen Sie das USB-Kabel wieder an den Arduino Uno an.
Jetzt verhält sich das System wie ein normaler Arduino Uno, sodass Sie Sketche auf die übliche Weise zum Mikrocontroller der Steckplatinenschaltung hochladen und bei Bedarf auch dem seriellen Monitor verwenden können.
Verwendung eines FTDI-Programmierkabels
Die letzte Methode ist die einfachste, doch dafür müssen Sie ein USB-Programmierkabel erwerben, das als FTDI-Kabel bezeichnet wird (weil die USB-Schaltung darin von einer Firma namens FTDI stammt).
Achten Sie darauf, dass Sie das 5-Volt Modell kaufen, da die 3,3-Volt-Version nicht ordnungsgemäß funktioniert.
Das Kabel weist an einer Seite einen USB-Stecker und auf der anderen einen sechsadrigen Anschluss auf. Das USB-Ende enthält eine Schaltung, die der USB-Schnittstelle am Arduino Uno entspricht.
Das andere wird mit der Pfostenleiste verbunden, die Sie in den Abbildungen 11-7 und 11-8 sehen.
Abb. 11-14 FTDI-Kabel
Achten Sie beim Einstecken des Kabels darauf, dass Sie die Seite mit dem schwarzen Draht mit dem GND-Pin der Pfostenleiste verbinden.
Wie bei einem normalen Arduino versorgt das Kabel die Schaltung auch mit Strom.
Bevor sie einen Sketch hochladen oder den seriellen Monitor verwenden, müssen Sie den Platinentyp in Arduino Duemilanove or Nano w/ ATmega328 ändern.
Rufen Sie dazu Tools > Board auf und wählen Sie die entsprechende Option aus (siehe Abb. 11-15).
Abb. 11-15 Den Platinentyp in der IDE ändern
Entscheiden Sie sich für eine Methode und laden Sie als Testlauf den Sketch für Projekt 37 hoch.
Jetzt können Sie auch kompliziertere Schaltungen einzig und allein auf der Steckplatine aufbauen, was mehr Projekte für weniger Geld ermöglicht.
Wenn Sie wissen, wie Sie eigene gedruckte Schaltungen herstellen, können Sie damit auch von Grund auf dauerhafte Projekte bauen.
Quelle:
BUCH: Arduino Workshops Seite 229
FTDI-Treiber - USB-Kabel - FTDIUSBSerialDriver
Damit die Arduino-Entwicklungsumgebung mit dem Board kommunizieren kann, müssen Sie Treiber installieren.
Unter Windows, verbinden Sie Ihren PC und das Arduino-Board über ein USB-Kabel und warten, dass der »Neue Hardware«-Assistent erscheint.
Wenn Sie ein ARDUINO UNO R3 Board verwenden, lassen Sie den Assistenten versuchen, die Treiber zu suchen und installieren.
Der Versuch schlägt fehl (keine Sorge, das ist das erwartete Verhalten).
Um das zu beheben, wechseln Sie nun nach Startmenü-±Systemsteuerung—>System und Sicherheit.
Klicken Sie auf System und öffnen Sie den Gerätemanager.
In der dargestellten Liste wählen Sie dann den Eintrag in COM und LPT namens Arduino UNO (COM nn). nn ist die Nummer, die Windows dem für das Board erzeugten Port zugewiesen hat.
Daneben sehen Sie eine Warnung, da die richtigen Treiber noch nicht zugewiesen wurden.
Klicken Sie den Eintrag mit der rechten Maustaste an und wählen Sie Treibersoftware aktualisieren.
Wählen Sie dann die Option »Brpwse my computer for driver software« und bewegen Sie sich in den Drivers-Ordner im eben entpackten Arduino-Ordner.
Wählen Sie die Datei Arduino-UNO.inf, und Windows sollte den Installationsprozess abschließen.
Wenn Sie ein älteres Board (das FTDI-Treiber verwendet) mit Windows Vista oder Windows 7 nutzen und online sind, können Sie den Assistenten nach Treibern suchen lassen, und sie sollten automatisch installiert werden.
Unter Windows XP (oder wenn Sie keinen Internetzugang haben) müssen Sie die Lage des Treibers angeben.
Bewegen Sie sich in der Dateiauswahl ins Verzeichnis FTDI USB Drivers.
Sie finden es in dem Verzeichnis, in dem Sie die Arduino-Dateien entpackt haben.
Sobald der Treiber installiert ist, erscheint wieder der »Neue Hardware«-Assistent mit der Meldung, eine neue serielle Schnittstelle sei gefunden worden.
Folgen Sie nun den Anweisungen von vorhin.
• Es ist wichtig, dass Sie diese Schritte zur Installation des Treibers zweimal durchgehen, da die Software anderenfalls nicht mit dem Board kommunizieren kann.
Auf dem Mac sollten neuere Arduino-Boards wie das Uno ohne zusätzliche Treiber genutzt werden können.
Wenn' Sie das Board zum ersten Mal anschließen, erscheint ein Hinweis, dass eine neue Netzwerkschnittstelle gefunden wurde.
Bei älteren Boards (die FTDI-Treiber benötigen), müssen Sie Treibersoftware installieren.
Im Disk-Image finden Sie ein Paket namens FTDIUSBSerialDriver mit einer Reihe von Zahlen dahinter.
Klicken Sie das Paket an und der Installer führt Sie durch den Prozess. Sie müssen das Administrationspasswort kennen, um den Vorgang abschließen zu können.
Unter Linux ist der Treiber bei den meisten Distributionen bereits installiert. Informationen zu Ihrer Distribution finden Sie unter dem Linux-Link, der in der Kapiteleinführung genannt wurde.
Serielle Hardware
Die serielle Hardware sendet und empfängt Daten in Form elektrischer Impulse, die eine sequentielle Folge von Bits darstellen.
Die Nullen und Einsen, die die Informationen enthalten, aus denen ein Byte besteht, können auf verschiedene Art repräsentiert werden.
Das von Arduino verwendete Schema ist 0 Volt für den Bitwert 0 und 5,0V (oder 3,3V) für den bitwert 1.
Die Verwendung von 0 Volt (für 0) und 5 Volt (für 1) ist weit verbreitet.
Man spricht hier vom TTL-Level (Pegel), weil Signale in einer der ersten Implementierungen digitaler Logik, der sog. Transistor-Transistor Logik (TTL), in dieser Form repräsentiert wurden.
Boards wie das Uno, Duemilanove, Diecimila, Nano und Mega besitzen einen Chip, der den seriellen Hardware-Part des Arduino-Chips in Universal Serial Bus (USB) umwandelt, um die Verbindung mit dem seriellen Port herzustellen.
Andere Boards wie das Mini, Pro, Pro Mini, Boarduino, Sanguino und Modern Device Bare Bones Board unterstützen USB nicht und benötigen für die Verbindung zum Computer einen Adapter, der TTL in USB umwandelt.
Weitere Details zu diesen Boards finden Sie unter http://www.arduino.cc/en/ Main/Hardware
Einige beliebte USB-Adapter sind:
• Mini USB Adapter (http://arduino.cc/en/Main/MiniUSB)
• USB Serial Light Adapter (http://arduino.cc/en/Main/USBSerial)
• FTDI USB TTL Adapter (http://www.ftdichip.com/Products/FT232R.htm)
• Modern Device USB BUB-Board (http://shop.moderndevice.com/products/usb-bub)
• Seeedstudio UartSBee (http://www.seeedstudio.com/depot/uartsbee-v31-p-688.html)
Einige serielle Geräte verwenden den RS-232-Standard für die serielle Verbindung.
Sie haben üblicherweise einen Neun-Pin-Stecker, und ein Adapter wird benötigt, um sie mit dem Arduino verwenden zu können.
RS-232 ist ein altehrwürdiges Kommunikationsprotokoll, dessen Spannungspegel mit den Digitalpins des Arduino nicht kompatibel sind.
Sie können Arduino-Boards kaufen, die für die RS-232-Signalpegel gebaut sind, etwa das Freeduino Serial v2.0
http://www.nkcelectronics.com/freeduino-serial-v20-board-kit-ar-duino-diecimila-compatib20.html
Hier einige RS-232-Adapter, die RS-232-Signale mit den 5 (oder 3,3) Volt der Arduino-Pins verbinden:
• RS-232 nach TTL 3V-5.5V Adapter (http://www.nkcelectronics.comIrs232-to-ttl-converter-board-33v232335.html)
• P4 RS232 nach TTL Serial Adapter Kits (http://shop.moderndevice.com/products/p4)
• RS232 Shifter SMD (http://www.sparkfun.com/commerce/product_info.php?products_ id=449)
Ein Standard-Arduino verfügt über einen einzigen seriellen Hardware-Port, doch die serielle Kommunikation ist auch über Software-Bibliotheken möglich, die zusätzliche Ports (Kommunikationskanäle) emulieren, um mehr als ein Gerät anschließen zu können. Serielle Software-Parts benötigen sehr viel Hilfe vom Arduino-Controller, um Daten senden und empfangen zu können, weshalb sie nicht so schnell und effizient sind wie serielle Hardware-Ports.
Das Arduino Mega besitzt vier serielle Hardware-Ports, die mit bis zu 4 verschiedenen seriellen Geräten kommunizieren können.
Nur bei einem ist ein USB-Adapter integriert (alle anderen seriellen Ports können mit einem USB/TTL-Adapter verbunden werden).
Tabelle 4-1 zeigt die Portnamen und -Pins aller seriellen Ports des Mega.
Portname Sendepin Empfangspin
Serial 1 (auch USB) 0 (auch USB)
Serial 1 18 19
Serial 2 16 17
Serial 3 14 15
Serielle Software
Sie werden üblicherweise die in Arduino integrierte Serial-Bibliothek verwenden, um mit den seriellen Hardware-Ports zu kommunizieren.
Serielle Bibliotheken vereinfachen die Verwendung serieller Ports, indem sie die Komplexität der Hardware vor Ihnen verbergen.
Manchmal benötigen Sie mehr serielle Ports, als Hardware-Ports zur Verfügung stehen.
In diesem Fall können Sie eine zusätzliche Bibliothek nutzen, die serielle Hardware in Software emuliert.
Die Sketche 4.13 und 4.14 zeigen, wie man eine serielle Bibliothek nutzt, um mit mehreren Geräten zu kommunizieren.
Quelle:
BUCH: Arduino Kochbuch Seite 7 /90
********************************************************I*
Using the Arduino Pro Mini & FTDI FT232RL
Getting Started with the Arduino Pro Mini
https://learn.sparkfun.com/tutorials/using-the-arduino-pro-mini-33v/all
https://www.sparkfun.com/products/9716
The Arduino Pro Mini connected to (and powered by) a SparkFun FTDI Basic Breakout Board and USB Mini-B cable.
Note that on earlier Pro Mini boards the orientation of the 6-pin header may be reversed; check that the words GRN and BLK align on the Pro Mini and FTDI Basic Breakout.
FTDI-Kabel ATmega328P
1 = GND sw pin-8 und pin-22 GND
2 = CTS br pin-8 und pin-22 GND
3 = Vcc rt pin-7 und pin-20 und pin-21
4 = TxD or pin-2 RxD
5 = RxD ge pin-3 TxD
6 = RTS gn über 100nF auf pin-1 RESET
https://www.arduino.cc/en/Guide/ArduinoProMini
********************************************************I*
USB zu UART
USB-zu-seriell Umsetzer
Umsetzer USB-UART
Wenn der PC keine serielle Schnittstelle hat dann kann man auf einen USB-zu-seriell Umsetzer zurückgreifen.
Dieser wird oft mit einem FT232R von FTDI realisiert.
Ein derartiger Umsetzer USB-UART kann selbst gebaut werden oder als Fertiggerät gekaut werden.
Teilweise ist ein derartiger Umsetzer bereits in die Programmer-Hardware integriert (z.B. bei den USB-Boards von myAVR).
Auf dem PC wird ein entsprechender Treiber installiert und dadurch eine virtuelle COM-Schnittstelle definiert, die vom Mikrocontroller wie eine traditionelle serielle Schnittstelle (COM1, COM2 usw.) angesprochen werden kann.
25. Kapitel: I2C = TWI
I2C (Inter Integrated Circuit ) oder TWI (Two-Wire Interface) Schnittstelle
Als I2C (Inter Integrated Circuit ) oder TWI (Two-Wire Interface) Schnittstelle wird ein serieller Datenbus bezeichnet, der ursprünglich von der Fa. PHILIPS für die geräteinterne Kommunikation von Schaltungsteilen entwickelt wurde.
Es handelt sich um eine BUS-Verbindung, bei der außer einer gemeinsamen Gnd-Leitung zwei Leitungen (SDA und SCL) benötigt werden.
Mit nur 3 Drähten können viele Komponenten verbunden werden.
Es gibt eine sehr große Anzahl verschiedener Bauteile bzw. Baugruppen, die sich über I2C ansprechen lassen.
Beispiele sind Temperatursensoren, Speichererweiterungen, Uhrenbausteine, Portexpander und vieles mehr.
I2C ist ein Master-Slave-Bus System.
Das heißt, dass es immer einen Master (den Mikrocontroller) und einen oder mehrere Slaves (zum Beispiel Sensoren) gibt.
An einem BUS können über 100 Slaves adressiert werden.
Dabei werden (außer einer GND-Verbindung) nur 2 Pins des Mikrocontrollers benötigt!
Das Ansprechen bestimmter Slaves erfolgt über Adressen.
Ein Teil der Adressen ist fest vorgegeben (für eine bestimmte Slave-Art) und ein Teil ist frei wählbar.
So sind beispielsweise von den 8-bits einer Adresse die ersten bits mit 1001 fest für DS1621 Temperatursensoren vorgegeben, über drei variable Bits lassen sich bis zu 8 dieser Sensoren an einem BUS ansprechen und das achte-bit zeigt an, ob lesend oder schreibend zugegriffen werden soll.
Die Adressierung im Programm muss der Beschaltung der Adresspins (A0, A1, A2) entsprechen!
Es werden üblicherweise Entfernungen bis zu ca. 1 Meter überbrückt.
Wichtig:
Jede der beiden I2C-Leitungen (SDA und SCL) benötigt jeweils einen Pullup-Widerstand von 4,7k Ohm bis 10k Ohm (nach +5V).
1x pro I2C-Bus.
Quelle:
BUCH: Einfacher Einstieg in die Elektronik mit AVR-Mikrocontroller und BASCOM Seite 407
www.bascom-buch.de
********************************************************I*
Einführung: Serial Peripheral Interface (SPI)
Der Ethernet-Shield und der Arduino Ethernet kommunizieren mit ihren Ethernet-Controllern über eine Methode zur synchron-seriellen Übertragung namens
Serial Peripheral Interface, kurz SPI. SPI sowie ein anderes synchronserielles Protokoll, Inter-Integrated Circuit oder I2C
(auch manchmal als Two-Wire Interface, oder TWI bezeichnet), sind die zwei am weitesten verbreiteten synchron-seriellen Protokolle, die dir begegnen werden.
Bei allen synchron-seriellen Protokollen gibt es ein Steuergerät, bei dem ein gleichmäßiger Impuls, das Taktsignal, an einem Pin generiert wird.
Bei jedem Taktimpuls werden Daten über einen anderen Pin ausgetauscht (siehe Kapitel 2).
Der Vorteil eines synchron-seriellen Protokolls ist, dass es sich um einen Bus handelt:
Mehrere Geräte können sich dieselbe physische Verbindung mit einem Hauptcontroller teilen.
Jedes Protokoll implementiert den Bus etwas anders.
SPI-Verbindungen bestehen aus drei oder vier Leitungen zwischen dem Steuergerät (dem Master) und den Zusatzgeräten (oder Slaves), und zwar denen hier:
Clock:
Der Pin, an dem der regelmäßige Impuls vom Master anliegt.
Master Out, Slave In (MOSI):
Das Master-Gerät sendet bei jedem Taktimpuls ein Datenbit auf dieser Leitung an den Slave.
Master In, Slave Out (MISO):
Das Slave-Gerät sendet bei jedem Taktimpuls ein Datenbit auf dieser Leitung an den Master.
Slave Select (SS) oder Chip Select (CS):
Weil sich mehrere Slave-Geräte denselben Bus teilen können, hat jedes eine eigene Verbindung zum Master. D
er Master setzt diesen Pin auf low, um genau dieses Gerät anzusprechen.
Wenn der Master nicht mit einem bestimmten Slave spricht, setzt er diesen Pin auf high.
Wenn der Slave keine Daten an den Master senden muss, gibt es keinen MISO-Pin.
Die Arduino-SPI-Library benutzt Pin 11 für MOSI, Pin 12 für MISO und Pin 13 für Clock (Takt).
Pin 10 ist standardmäßig der Pin für Chip Select, aber wie du noch sehen wirst, kannst du das auch ändern.
Der Arduino Ethernet und der Ethernet-Shield haben
z.B. zwei Slave-Geräte an ihrem SPI-Bus: Den WizNet-Chip und die SD-Karte.
Beide sind mit den Pins 11, 12 und 13 für MISO, MOSI und Clock verbunden.
The WizNet-Modul benutzt Pin 10 für Chip Select, die SD-Karte nutzt dagegen Pin 4 für Chip Select.
Quelle:
BUCH: Einfacher Einstieg in die Elektronik mit AVR-Mikrocontroller und BASCOM Seite ???
DIN A4 ausdrucken
********************************************************I*
Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:
[email protected]
ENDE