Forum: Mikrocontroller und Digitale Elektronik [Anfängerfrage] Arduino Breadboard Schaltung auf Lochraster übertragen


von Philipp K. (numeriusnegidius)


Lesenswert?

Zunächst: Ich denke, dass euch eure Freizeit genauso lieb und teuer ist, 
wie mir meine. Ich möchte auf keinen Fall den Eindruck erwecken, dass 
ihr mir das Denken abnehmen sollt, viel mehr geht es mir darum, ob ich 
(nachdem ich hoffentlich meine "Hausaufgaben" gemacht hab) auch alles 
richtig verstanden habe. Wäre toll, wenn sich mir einer erbarmen könnte 
:)

Ich habe mir auf einem Steckbrett eine kleine Binäruhr (Stunden/Minuten 
insgesamt 13 LEDs) aufgebaut, die mit einem Arduino Uno gesteuert wird. 
Diese würde ich gerne auf eine Lochrasterplatine übertragen und in einen 
Bilderrahmen o.ä. einbauen und mir auf den Schreibtisch stellen.

Einfach den Arduino hinten dran hängen wär mir aber zu blöd, ich will 
das Ding ja noch weiter benutzen. Am liebsten wäre es mir, wenn ich 
meinen Arduino C++ Code einfach auf einen AVR übertragen könnte und 
diesen dann die Steuerung übernehmen lassen könnte.

Mein Ergebnis nach einem wenig googeln ist, dass ich eigentlich mithilfe 
eines AVRISP mkII (den ich später auch für die "grown-up" Version der 
µC-Programmierung nutzen könnte) und dieser Anleitung 
(http://arduino.cc/en/Main/Standalone ) mein Programm auf einen AtMega32 
übertragen könnte. Mit der gleichen Methode und ein paar Anpassungen 
(http://hlt.media.mit.edu/?p=1695 ) könnte ich das doch auch mit einem 
ATTiny2313 machen, der billiger wäre, oder? Andere Komponenten vom 
Arduino bräuchte ich ja nicht, nach Lektüre der Datenblätter vom 
ATMEGA32 und ATTiny2313, vermute ich, dass die millis() Funktion 
(http://arduino.cc/en/Reference/Millis ) den im Mikrocontroller 
integrierten 16-bit Timer nutzt.

Mit Strom versorgen könnte ich meine Konstruktion am besten dann mit 
einem 5v Netzteil + so einer Buchse 
(http://www.conrad.de/ce/de/product/735653/Netzgeraete-Einbaukupplung-Printmontage-55-mm-13-mm-25-mm-Cliff-Inhalt-1-St 
), richtig?

Vielen Dank!

Philipp

von Klaus (Gast)


Lesenswert?

auf deinem Arduino Uno ist ein ATmega328p drauf.
Den nimmst du einfach raus und verbaust ihn auf einem IC-Sockel in dein 
Lochraster.
Das ist für dich jetzt das einfachste.
Zum programmieren, setzt du ihn wieder in die Arduino-Breadboard 
Schaltung.

Da bist du ja schon kurz vorm Ziehl, und möchtest nur den Prototyp in 
die finale Version bringen. Wenn du das jetzt ohne Arduino-IDE und 
Sprache und so machst (ist ein C++-Dialekt) fängst Du ja fast wieder von 
neuem an und am Ende sieht es genauso aus wie du es jetzt schon hast.



Wenn du etwas ohne das Arduino gedöhns was machen möchtest:

Ja kauf dir den AVRISP MK2 und bringe ohne Arduino eine LED zum blinken.
Ob ATtiny oder ATmega ist egal, der Preisunterschied sollte bei einem 
aber nicht so ausschalggebend sein.

mit dem AVRISP mk2 kannst du auch den Arduino-Bootloader in einen 
frischen ATmega328p schreiben.

AVR
AVR-Tutorial
AVR-GCC-Tutorial

von Klaus (Gast)


Lesenswert?

*
 achso und den Quarz brauchst du noch zum Takten von dem ATmega, wenn du 
ihn so programmiert lässt

http://tinkerprojects.blogspot.de/2010/09/yama2-yet-another-minimal-arduino-2.html

von Hugo (Gast)


Lesenswert?

vielleicht hilft  FRITZING weiter.

von Philipp K. (numeriusnegidius)


Lesenswert?

Klaus schrieb:
> Den nimmst du einfach raus und verbaust ihn auf einem IC-Sockel in dein
> Lochraster.

Hm, das mit dem IC-Sockel wäre natürlich echt komfortabel, danke für die 
Idee!

Klaus schrieb:
> mit dem AVRISP mk2 kannst du auch den Arduino-Bootloader in einen
> frischen ATmega328p schreiben.

Und den neuen Chip könnte ich dann einfach für das Arduino Board nutzen, 
falls ich mich dazu entscheiden sollte, den originalen ATMega328 in 
meiner Installation zu lassen, korrekt?

Klaus schrieb:
> achso und den Quarz brauchst du noch zum Takten von dem ATmega, wenn du
> ihn so programmiert lässt

OK, kommt auf meine Bestellliste. Mit der Arduino Bootloader Option 
"ATmega328 on a breadboard (8 MHz internal clock)" wäre das Teil ja dann 
(von den wohl resultierenden Genauigkeitsverlusten abgesehen) 
entbehrlich?

Hugo schrieb:
> vielleicht hilft  FRITZING weiter

Damit spiel ich schon fleißig rum ;)


EDIT: Noch eine kleine Frage: Passen diese Buchsen durch die Löcher der 
Lochrasterplatine? Die Pins sehen so breit aus... 
http://www.conrad.de/ce/de/product/733946/Netzgeraete-Einbaukupplung-55-mm-21-mm-Inhalt-1-St

von Klaus (Gast)


Lesenswert?

> Und den neuen Chip könnte ich dann einfach für das Arduino Board nutzen,
> falls ich mich dazu entscheiden sollte, den originalen ATMega328 in
> meiner Installation zu lassen, korrekt?

yes
kauf dir einfach ein paar Atmegas, beim C sind die teuer, billiger ists 
z.B. bei CSD Electronics.


> OK, kommt auf meine Bestellliste. Mit der Arduino Bootloader Option
> "ATmega328 on a breadboard (8 MHz internal clock)" wäre das Teil ja dann
> (von den wohl resultierenden Genauigkeitsverlusten abgesehen)
> entbehrlich?

Ja scheint so, aber bis Du das hin bekommen hast, hast du den Quarz 
schon zehn mal verbaut. Außerdem musst du den Controller ja wieder zum 
Programmieren zurück in den Arduino stecken.
Dieser Minimal-Arduino ist wirklich nicht groß und kein Aufwand ...

Scheint mir aber so, als ob Du dir mehr Arbeit machen möchtest und dabei 
mehr lernen möchtest?
Bau doch einfach noch was anderes danach.

> EDIT: Noch eine kleine Frage: Passen diese Buchsen durch die Löcher der
> Lochrasterplatine? Die Pins sehen so breit aus...
> http://www.conrad.de/ce/de/product/733946/Netzgera...

nein, das ist eine Einbaubuchse, die du ins Gehäuse schraubst und Kabel 
dran lötest. Was du suchst ist eine Buchse für Printmontage, z.B. diese 
hier 
http://www.conrad.de/ce/de/product/735667/Netzgeraete-Einbaukupplung-Printmontage-38-mm-13-mm-13-mm-Cliff-Inhalt-1-St

von Philipp K. (numeriusnegidius)


Lesenswert?

Klaus schrieb:
> Scheint mir aber so, als ob Du dir mehr Arbeit machen möchtest und dabei
> mehr lernen möchtest?

Genau das ist der Plan :D


Ich hab mir bei CSD ein paar µC (ATTINY2313A-PU, ATTINY13A-PU, 
ATTINY84A-PU; bei Watterott auch noch einen ATMEGA328P-PU) bestellt, die 
hole ich direkt in Bonn ab, da spare gleich auch noch die Versandkosten. 
Noch mal danke für deine Geduld!

von Ralph S. (jjflash)


Lesenswert?

... es muß nicht immer (eine) Arduino(platine) sein um Arduino machen zu 
können...

Prinzipiell benötigt es nur einen ATmega Controller um einen 
Arduinoclone erstellen zu können.

Bei den Arduinobeispielen ist ein Sketch enthalten, das sich

ArduinoISP

nennt.

Spielst du dieses Sketch auf den Arduino auf, so wird aus deiner 
Arduinoplatine ein ISP - Programmer. Hiermit bist du dann in der Lage, 
jeden Atmelcontroller zu flashen (auch die ATtiny Serie).

Allerdings laufen Arduino Sketche (was für eine Bezeichnung für ein 
modifiziertes C / C++ Programm) nur auf den ATmegas.

Wenn du Programme des Arduinos in einem nackten Controller laufen lassen 
möchtest empfiehlt sich folgende Vorgehensweise:

- Arduinoboard mit <ArduinoISP> aufspielen (im Kommentar des Sketches 
steht, welche Anschlüsse Miso, Mosi, Sck und Rst sind)

- nackten Controller auf Breadboard aufstecken (und es empfiehlt sich 
sehr einen Quarz mit 2 Kondensatoren gegen Masse zu verschalten). Miso, 
Mosi, Sck und Rst mit den den Anschlüssen des Arduinoboards verbinden.

--------------------------------------------------

Jetzt wird es etwas komplizierter:

Arduino bedient sich des AVR-GCC und zum Upload der Sketches des 
Programms AVRDUDE.

Da die IDE Arduino nicht installiert wird, kennt das Betriebssystem 
deines Rechners den Pfad zu den Programmen nicht (für dich heißt das 
jetzt: leider kennt es den Pfad nicht).

Für dich ist Avrdude deshalb wichtig, weil du mittels Avrdude dein 
Arduinoboard, das jetzt den Programmer ArduinoISP beinhaltet, füttern 
kann.

Am besten für dich dürfte sein, du erstellst ein Verzeichnis zum Testen, 
sagen wir:

c:\arduinotest

in dieses Verzeichnis kopierst du jetzt die Datei <avrdude.exe> . Sie 
befindet sich im Arduinoverzeichnis:

arduino-1.0.4\hardware\tools\avr\bin

Im Verzeichnis:

arduino-1.0.4\hardware\arduino\bootloaders\atmega

findest du nun diverse Bootloader für diverse Controller (kann man am 
Dateinamen erkennen)

Solltest du nur kleinere Programme verwenden wollen, gibt es einen 
speziellen Bootloader für den Atmega8 unter

arduino-1.0.4\hardware\arduino\bootloaders\atmega8

------------------------------------------------------------------

Nun mußt du eine Console ("DOS-Fenster") aufmachen ... in das 
Verzeichnis

c:\arduinotest

wechseln und mittels AVRDUDE den gewünschten Bootloader in den 
Controller schieben.

Leider hab ich auf mein "Spielequipment" im Moment nicht zur Verfügung 
und kann dir den Aufruf nicht posten. Hier solltest du dich im Netz 
schlau machen welche AVRDUDE Kommandos es gibt (hier auf 
Mikrocontroller.Net gibts auch was sehr gutes).

Um den Bootloader zu aktivieren mußt du auch die Fuses korrekt setzen 
(weiß ich jetzt im Moment auch nicht auswendig).

-------------------------------------------------------------------

Nachdem du den Controller geflasht hast, benötigst du noch eine 
Pegelanpassung an deinen Microcontroller zur seriellen Schnittstelle 
.... und fortan kannst du den blanken Controller programmieren, als ob 
er eine Arduinoboard wäre !!!!!

Wenn du magst, schreib ich dir nächste Woche eine ausführliche Anleitung 
dazu (ich glaube ich habe schon einmal für jemanden eine Batchdatei 
gemacht die sich "Clonearduino" nannte und den Aufruf von AVRDUDE 
"automatisierte"

Gute Nacht, ich werde noch eine qualmen und dann schlafen gehen !

Ralph

von black crawler (Gast)


Lesenswert?

Ralph S. schrieb:
> Jetzt wird es etwas komplizierter:
>
> ...
> wechseln und mittels AVRDUDE den gewünschten Bootloader in den
> Controller schieben.

Sehr gute anleitung, ich würde auch empfehlen das so zu machen weil man 
eine ganze Menge dabei lernt.

Trotzdem will ich eine Alternative nicht verschweigen: es gibt auch 
Controller mit bereits geflashten Arduino-Bootloader einzeln, zum 
beispiel da: 
https://guloshop.de/shop/Mikrocontroller/ATmega328-mit-Bootloader-fuer-Arduino-Uno::38.html
Der ATmega328 ist da mit Bootloader übrigens sogar billiger als der ohne 
bei csd.

von Ralph S. (jjflash)


Lesenswert?

black crawler schrieb:
> Der ATmega328 ist da mit Bootloader übrigens sogar billiger als der ohne
> bei csd.

Bei Guloshop kostet der Atmega328

- mit geflashtem Bootloader 3 Euro
- ohne Bootloader 2 Euro

Gruß,
Ralph

von F. F. (foldi)


Angehängte Dateien:

Lesenswert?

Noch ein weiterer Tipp: Nimm noch einen Nullkraftsockel! So kannst du 
die Controller leicht tauschen.

von Ralph S. (jjflash)


Lesenswert?

Smile und hmmmm... ziemlich heftige Konstruktion, da würde ich eher 
einen Chip in der Schaltung belassen, der von sich aus Arduino 
"versteht".

Erspart einem auch das permanente Wechseln des Chips, der Chip kann dann 
halt einfach nur "Arduino".

Meine Lehrlinge haben sich hierfür einen "Adapter" (ich mag das so nicht 
nennen) gebastelt, der das RS-232 Signal in TTL-Pegel wandelt für die 
Schaltungen, die keine Datenkommunikation mit einem PC benötigen.

Andere Schaltungen bekommen den Pegelwandler mit "on Board"... smile 
die lieben Transistoren und verwenden lieber die als einen MAX232 ... 
weil das "cooler" aussehen würde.

(zu meiner Zeit war es "cool", wenn eine Schaltung mit IC's versehen 
war, da "meinte" man dann, dass das was "hochtechnisches" sei .... so 
ändern sich die Zeiten)

von F. F. (foldi)


Lesenswert?

Ralph S. schrieb:
> Smile und hmmmm... ziemlich heftige Konstruktion, da würde ich eher
> einen Chip in der Schaltung belassen, der von sich aus Arduino
> "versteht".
>
Man darf nicht vergessen, hier ist ein Anfänger am Werk, der jetzt erst 
anfangen will zu löten.
Da sind zwei Zif Sockel zum testen ganz praktisch.

von Philipp K. (numeriusnegidius)


Lesenswert?

Ich hab gerade erst gesehen, dass hier noch mal geschrieben wurde, 
deshalb die etwas verspätete Antwort.

Erst mal vielen Dank für die tolle Anleitung lieber Ralph! Nicht ohne 
Stolz (hey, ich bin Anfänger ;) ) kann ich aber berichten, dass ich mir 
genau das seit meinem ursprünglichen Post selbst beigebracht habe. Die 
Binäruhr liegt erst mal auf Eis, bis ein DS1307 (einem fällt auch immer 
wieder neues ein...) aus China hier eingetrudelt ist, CSD und Conrad 
(Bonn) hatten den leider nicht da.

Momentan hab ich hier je einen AtMega328P, einen Attiny2313A (mit 
externem 16Mhz), einen Attiny84A  und einen Attiny13A jeweils standalone 
auf einem Steckbrett, programmiert mit der ARduino IDE + dem AVR ISP 
MKII. Eine super spannende (und lehrreiche!) Sache, deine Anleitung 
solltest du ruhig mal hier ins Wiki stellen (ist doch ein Wiki, oder?) 
das interessiert bestimmt noch andere!

black crawler schrieb:
> es gibt auch
> Controller mit bereits geflashten Arduino-Bootloader einzeln,

Ich hab festgestellt, dass man den Bootloader gar nicht braucht, wenn 
man direkt mit dem ISP programmiert. Die mit vorinstalliertem Bootloader 
sind natürlich super praktisch, um damit "gehimmelte" µCs der Arduino 
Boards zu ersetzen.

F. Fo schrieb:
> Nimm noch einen Nullkraftsockel!

Hätte ich mal gewusst, dass es sowas gibt ;-) Ich hab jetzt hier normale 
IC-Fassungen, damit ist mir einer der ATMegas quer durch den Raum 
geflogen...

Ralph S. schrieb:
> zu meiner Zeit war es "cool", wenn eine Schaltung mit IC's versehen
> war

Ist immer noch cool ;)


Viele Grüße

Philipp

von F. F. (foldi)


Lesenswert?

Autor: Philipp K. (numeriusnegidius)
Datum: 11.05.2013 15:59


>Hätte ich mal gewusst, dass es sowas gibt ;-) Ich hab jetzt hier normale
>IC-Fassungen, damit ist mir einer der ATMegas quer durch den Raum
>geflogen...

Eben deswegen und weil man die auch am Anfang mal schnell in den Fingern 
stecken hat.

Noch ein Tipp, bei eBay werden die oft im Fünferpack angeboten. Da 
solltest du dir für die Zukunft mal welche bestellen. Die werden ja 
nicht schlecht.

von Brater (Gast)


Lesenswert?

Du kannst den Arduino im Übrigen auch als Programmer benutzen. Ansonsten 
gibt es bei Ebay auch so LowCost-ISPs für 5 Euro (kA wie verbuggt die 
sind).
Da du ja eine Minimalkonfiguration für den Platinenaufbau willst: 
http://arduino.cc/en/Main/Standalone

Als USB-RS232-Umsetzer entweder deinen Uno anzapfen oder bei Ebay einen 
Clone mit einem Prolific-Chip nehmen (das fertige Ding ist billiger als 
ein FT232RL allein... und das SMD-Löten für Anfänger ist doch recht 
hässlich).

von Michael A. (Gast)


Lesenswert?

Brater schrieb:
> ... oder bei Ebay einen Clone mit einem Prolific-Chip nehmen
Bei den Prolific-Chips muss man ggf. aufpassen, dass man welche 
erwischt, für die es auch Treiber für Win8 gibt. Sonst sitzt man da 
evtl. in einer Sackgasse.
http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pcid=41

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.