====Arduino Pro Mini programmieren mit Arduino Uno==== Ganz wichtig!!! Ihr braucht unbedingt eine Stromversorgung die konstant die richtige Spannung (3,3 V bzw. 5 V, je nach Ausführung des Arduino), sonst könnte es sein, dass Ihr Euren Pro Mini schrottet. Die USB-Buchse Eures Computers liefert je nach USB-Port eine Spannung, die darüber liegt. Benutzt Ihr die 5V-Variante, könnt Ihr sie ohne Spannungswandler direkt mit dem Strom aus der USB-Buchse versorgen. Folgende Übersicht zeigt Euch die Spannung und die Stromstärke an, die Euer USB-Port bereitstellt. |4,40 V bis 5,50 V|Low Powered Port|(100 mA)| |4,75 V bis 5,50 V|High Powered Port|(500 mA)| |4,45 V bis 5,50 V|USB 3.0-Port|(900 mA)| Ihr könnt nun entweder zwei AA(A)-Batterien als Stromquelle nehmen, dann habt Ihr eine Spannung von rund 3 Volt, oder Ihr baut Euch einen kleinen Spannungsregler auf einem Breadbord auf, oder lötet gleich einen auf eine Lochrasterplatine (üben, üben, üben :-) ), wenn Ihr regelmäßig 3.3 V Mikroprozessoren auf dem Breadboard programmieren möchtet. [[http://elektronik.skyline-service.de/raspberrypi/spannungsregler-9v-5v-3-3v/|Spannungsregler 9V]] [[http://elektronik.skyline-service.de/arduino/spannungsregler-einfach-5v-3-3v/|Spannungsregler 5V]] ===Programmieren mit dem Arduino Uno als Programmer=== Im Internet gibt es so viele Anleitungen die alle darauf abzielen, dass man auf seinem Uno den Prozessor runtermacht – so fern man wie ich einen mit DIP-Sockel hat und den man im Gegensatz zu den SMD-Versionen auch runtermachen kann, aber das ist irgendwie gar nicht nötig. Wir gehen genau so vor, als würden wir einen ATtiny programmieren mit einem Uno und reißen ihm nicht seinen Prozessor von der Platine. Als erstes müssen wir jetzt wissen, wo auf unserem Uno die entsprechenden Datenleitungen sind die wir benötigen. Das wären MOSI, RESET, SCK und MISO. So wie natürlich +3.3 V und GND. Arduino-Uno-R3-Pinbelegung {{ :arduino-uno-r3-pinouts-300x231_1_.png?200|Arduino-Uno-R3-Pinbelegung}} Parallel das Pinout zum Pro Mini: ProMini-Pinout {{ :promini-pinout_1_.jpg?200|ProMini-Pinout}} Somit ergibt sich folgende Belegung: ^ ^Arduino Uno^Arduino Pro Mini^ |MOSI|Pin 11|Pin 11 | |RESET|Pin 10|RST | |SCK|Pin 13|Pin 13 | |MISO|Pin 12|Pin 12 | |Spannung|3.3V/5 V|VCC | |Masse|GND|GND | Haben wir auf unserem Uno noch kein ArduinoISP-Programmer-Sketch aus den Beispielen hochgeladen, so müssen wir das als Erstes tun. Hierzu öffnen wir den Sketch unter „Datei“ -> „Beispiele“ -> “11.ArduinoISP“ -> „ArduinoISP“ und übertragen ihn wie gewohnt per USB auf unseren Uno. Jetzt ist er bereit und kann weitere Chips programmieren. Jetzt können wir unser Breadboard mit dem Pro Mini drauf mit dem Uno verbinden. Achtet darauf, dass Ihr die richtige Spannung nehmt. Hier brauchen wie definitiv einen Elektrolyt-Kondensator mit einem Wert von rund 10 µF den wir zwischen GND und dem Reset-Pin des Arduinos setzen. Unbedingt auf Polarität achten! GND = Minus, Reset = Plus. Als ich die Schaltung ohne ELKO verwenden wollte, kam es beim Hochladen eines Sketches immer zu folgender Fehlermeldung: Problem beim Hochladen auf das Board. Hilfestellung dazu […] avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x70 Abschließend verbinden wir unseren Arduino mit dem USB-Kabel mit dem Computer und laden das Standard-Blink-Sketch wie hier aufgeführt: void setup() { // initialize digital pin 13 as an output. pinMode(13, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) delay(100); // wait digitalWrite(13, LOW); // turn the LED off by making the voltage LOW delay(100); // wait } Bevor wir unser Sketch auf den Pro Mini hochladen können, müssen wir in der IDE „Werkzeuge“ anklicken und wählen als „Board“ das „Arduino Pro or Pro Mini“ aus. Als „Processor“ den „ATMega328 (5 V, 16 MHz)“ Der „Port“ ist egal, aber bei „Programmer“ müssen wir „Arduino as ISP“ auswählen. Nun laden wir unseren Sketch hoch, verwenden dafür aber entweder unter „Sketch“ den Menüpunkt „Hochladen mit Programmer„, oder halten unsere Großschreibtaste gedrückt und klicken den „Hochladen“-Pfeil an. Es erscheint dann auch nicht wie gewohnt der Text „Hochladen“, sondern „Hochladen mit einem Programmer“. Wenn alles fehlerfrei kompiliert und hochgeladen wurde, stellen wir etwas ungewöhnliches fest: Auf dem Uno und auf dem Pro Mini blinken die LED synchron. Das liegt aber nur daran, dass ja beide Prozessoren mit dem Pin 13 verbunden sind. Euer Sketch ist nicht auf dem Uno gelandet, sondern auf dem Pro Mini. Abschließend trennen wir nun den Uno vom Pro Mini und versorgen diesen mit einer externen Stromquelle. Ich habe hierzu wieder meinen Spannungswandler genommen, an dem ich eine 9 V-Blockbatterie dranhängen habe. Diese werden für den Pro Mini auf 3.3 V umgewandelt und wir sehen, dass unser Blink-LED-Sketch auch ohne angeschlossenen Arduino Uno als Programmer wieder läuft. Man braucht immer einen Programmer, wenn man „nackte“ Prozessoren programmieren will. Dabei ist es gleich, ob wir den Arduino verwenden und ihn mit einem Sketch zu einem Programmer umfunktionieren, oder beispielsweise den USBasp-Programmer verwenden, der ja ebenfalls auf seinem verbauten ATtiny ein Programm installiert hat, was ihn auch zu einem Programmer macht. [[http://elektronik.skyline-service.de/arduino/arduino-pro-mini-3-3v-programmieren-mit-arduino-uno-oder-usb-programmer/|von hier]]