1. Allgemeine Informationen zu Microcontrollern (AVR)

Anleitungen für "hausgemachte" LED Projekte

Moderator: T.Hoffmann

Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Sa, 06.01.07, 15:05

Weitere Tutorials zum Thema Microcontrollern folgen noch...
Ich teile sie in mehrere Tutorials bzw. in mehreren Themen auf, um
1. eine Übersicht zu haben
2. damit nicht zu viele verschiedene Fragen/Antworten in einem Thema entstehen (bessere Übersicht)...


Ich schreibe dieses Tutorial um euch einen Einblick in die Welt der Microcontroller zu ermöglichen.
Hier habe ich alles kurz und knapp (zum Teil auch oberflächlich erklärt) zusammengefasst:

Was sind Microcontroller?
Kurz: Ein Microcontroller ist quasi ein „Mini-PC“, ein Prozessor mit integriertem Flash/EEPROM-Speicher, Arbeitsspeicher und I/O (Eingänge sowie Ausgänge) alles in einem Chip untergebracht.
1014_atmega8_1.jpg
1014_atmega8_1.jpg (11.91 KiB) 32127 mal betrachtet
Auf dem Bild ein AVR-Atmega8-Microcontroller der Firma Atmel

Welche Microcontroller-Typen/Hersteller gibt es?
AVR (von der Firma Atmel), C-Control (von der Firma Conrad) und PIC (von der Firma Microchip Technology Inc.) diese drei sind die bekanntesten.

Laut meiner damaligen Recherche schneidet die AVR-Microcontroller-Familie von Atmel am Besten ab.
Der auffälligste Punkt: Die Rechenleistung von AVR ist am effektivsten. Heißt bei gleicher Taktzahl ist die Befehlsrate der AVR-Familie höher als bei PIC oder C-Control.

Was kann man mit einem Microcontroller machen?
Alles mögliche.
Im Led-Bereich z.B.: als Dimmer (PWM)(dessen Geschwindigkeit z.B.: über Taster erhöht bzw. verringert werden kann), Lauflicht, Einschaltverzögerung, Blink-Funktion,…

Wie funktioniert ein Microcontroller (oberflächlich)?
Ein Microcontroller arbeitet dein geschriebenes Programm ab und führt diese dementsprechend aus.

Ein sehr einfaches Programm kann z.B. so aussehen:
-Wenn am Eingang1 ein High-Pegel anliegt (sprich Taster1 gedrückt): dann Ausgang1 auf High-setzen
-Wenn am Eingang2 ein High-Pegel anliegt (sprich Taster2 gedrückt): dann Ausgang1 auf Low-setzen
-Wenn am Eingang3 ein High-Pegel anliegt (sprich Taster3 gedrückt): dann Ausgang2-5 auf High-setzen und 1 Sekunde warten, auf Low-setzen, 1 Sekunde warten, wieder High-setzen, 1 Sekunde warten, auf Low-setzen

Die I/Os (Ein-/Ausgänge) des Microcontrollers ist für das oberige Beispiel folgender Maßen bestückt:

Am Eingang1, Eingang2 sowie Eingang3 hängt jeweils ein Taster und an Ausgang1-5 jeweils eine Led (natürlich mit passendem Vorwiderstand).

Wird der Microcontroller in Betrieb genommen, passiert erstmal nichts.
Da das Programm prüft ob am Eingang 1, Eingang 2 oder Eingang 3 ein High anliegt (das ganze endlos).
Erst wenn man irgendein Taster drückt passiert was:
Bei Taster1: Ausgang1 bzw. Led1 wird mit Strom versorgt (leuchtet)
Bei Taster2: Ausgang 1 bzw. Led1 wird ausgeschaltet
Bei Taster3: Ausgang2-5 bzw. Led 2-5 werden kurz Blinken (für 1 Sekunde leuchten, 1 Sekunden dunkel, 1 Sekunde leuchten)

Natürlich kann man die Werte des oberigen Beispiel-Programm abändern und z.B.
-schneller blinken lassen indem man das Warten auf 0,5 sek verkürzt
-länger Blinken lassen indem man die Befehle für ein-/ausschalten mit Pause verlängert
-Eingänge bzw. Ausgänge erweitert/reduziert (sprich mehr Leds/Taster)
Usw…
Also wirklich fast keine Grenzen gesetzt, jede Kleinigkeit kann abgeändert werden.

Was braucht man um einen Microntroller programmieren zu können?

-Einen Microcontroller (ist ja klar ;-) )

-Einen PC, über die Serielle Schnittstelle wird das eigene erstellte Programm/Code in den Microcontroller bespielt

-Atmel Board (ich verwende das "ATMEL Evaluations-Board Version 2.0" von Pollin: http://www.pollin.de/shop/shop.php?cf=d ... Y5OTgxOTk= ) mit Netzteil und serielles Kabel
(Ein Board ist nicht zwingend erforderlich, es geht auch über eine Schaltung, ein Board ist aber viel komfortabler und insbesondere für den Anfang sehr empfehlenswert)

-Compilersoftware (Programm das unser „menschlich lesbare Programm/Code“ in Machinenssprache bzw. Maschinencode umwandelt. Also die „Microcontrollersprache“.

-Ponyprog2000 (um den Microcontroller über serielle Schnittstelle zubespielen/programmieren)

Compilersoftware und die Programmiersprachen
Es gibt verschiedene Compilersoftware mit unterschiedlicher Programmiersprache. Z.B.:

-Assembler-Sprache sehr Hardware nah, dadurch ist die Sprache nicht sehr einfach.
-C-Sprache typische Computerprogrammiersprache
-Basic-Sprache auch eine typische Computerprogrammiersprache

In all meinen Tutorials verwende ich die Basic-Sprache bzw. das Programm „Bascom“, weil diese Sprache sehr einfach und verständlich aufgebaut ist. Somit sehr gut für Anfänger.

Die Demoversion des Programms „Bascom“ ist beschränkt auf max. 4 KB Code, jedoch reicht das für den Anfang völlig aus.
Download unter: http://www.mcselec.com/index.php?option ... &Itemid=54
Zuletzt geändert von Pehu am Mo, 08.01.07, 19:47, insgesamt 2-mal geändert.
Benutzeravatar
Ilker21
Hyper-User
Hyper-User
Beiträge: 1039
Registriert: So, 05.11.06, 12:19
Wohnort: Fürth
Kontaktdaten:

Sa, 06.01.07, 15:06

Pehu dankeschön :mrgreen: hatte schon drauf gewartet

sehr schön erklärt

köntest du vll noch screenshot vom programmieren zeigen ?
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Sa, 06.01.07, 15:13

köntest du vll noch screenshot vom programmieren zeigen ?
Das kommt noch, alles wird noch erklärt (OK, fast :o ). So schnell geht das nicht. :wink:
Step by Step.
Benutzeravatar
alexStyles
Auserwählter
Auserwählter
Beiträge: 2333
Registriert: So, 20.08.06, 16:51
Wohnort: Düsseldorf
Kontaktdaten:

Sa, 06.01.07, 15:44

COOL Danke ersteinmal Pehu :P
:shock:
Freue Mich schon auf die anderen Teile ...

MfG Alex
Benutzeravatar
Robo9
Mega-User
Mega-User
Beiträge: 148
Registriert: Do, 16.11.06, 09:28
Wohnort: Berlin
Kontaktdaten:

Sa, 06.01.07, 15:57

Finde das super das du das machst habe mir schon den Controler mit dem Bord bestellt.
Wie gesagt habe ich schon mal in der Schule damit gearbeitet aber das ist bestimmt nen bisschen anderes.
Benutzeravatar
dedicated
Mega-User
Mega-User
Beiträge: 141
Registriert: Do, 04.01.07, 14:18

Sa, 06.01.07, 16:37

Danke für die Mühe und Zeit, die du investierst um ein solches Tutorial zu schreiben. :wink:

mfg Martin
Benutzeravatar
Fightclub
Post-Hero
Post-Hero
Beiträge: 5114
Registriert: Mi, 01.03.06, 18:40

Mo, 08.01.07, 16:01

@pehu: heißt die sprache nich basiC ;) also V-Basic z.B.? Dachte bisher immer für sowas bräuchte man ungeheuer teure Boards. Aber 20 Euro is ja echt super. Werd mir demnächst mal n paar ics 9 board bestellen, hab früher schon oft software programmiert, dürfte hardware ja dann nich das thema sein. Kann man so AVRs eigentlich auch überschreiben? :?
Benutzeravatar
Neo
Auserwählter
Auserwählter
Beiträge: 2631
Registriert: Fr, 25.02.05, 23:22
Wohnort: hessen-wisbaden
Kontaktdaten:

Mo, 08.01.07, 16:04

kommt drauf an die meisten ja aber auch nicht unbegrenzt oft ich glaube so 1000 Mahl
aber das sollte ja langen :wink:
Benutzeravatar
Fightclub
Post-Hero
Post-Hero
Beiträge: 5114
Registriert: Mi, 01.03.06, 18:40

Mo, 08.01.07, 16:17

hm also 1000mal wär ja grade noch akzeptabel :wink:
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Mo, 08.01.07, 19:43

Den Atmega8 (der 2-3 € kostet) kann man bis 10.000 mal programmieren. :D
@Fightclub Upps, stimmt Basic. Werde es abändern.
morpheuz
User
User
Beiträge: 19
Registriert: Mo, 14.08.06, 10:49
Wohnort: Stuttgart

Mo, 08.01.07, 21:25

Hi,
ich verwende das Tool AVRStudio von Atmel und den C++ Compiler WinAVR, beides kostenlos und es gibt keine Einschränkungen was das Programmieren angeht. Und das tollste: der Compiler läßt sich in AVRStudio einbinden. Von AVRStudio aus kann mit den Tools von Atmel sowie mit Nachbauten(siehe Atmel-homepage) gebrannt werden. Das funktioniert prima. AVRStudio unterstützt sogar Hardwaredebbuging (JTAG).. je nach Controller(der ATMega16 z.B. kanns). Es gibt günstige Brenner über USB(is ja ganz praktisch, wenn man keine Serielle Schnittstelle mehr hat) im Internet. Z.B. von der Firma IN-Circuit KLICK. Hab auch schon im eBay gute gefunden. Es gibt da sogar einen Anbieter, der immer einen JTAG ICE Nachbau im Ebay anbietet KLICK. Funktioniert mit AVRStudio blenden..
Grüße
Benutzeravatar
alexStyles
Auserwählter
Auserwählter
Beiträge: 2333
Registriert: So, 20.08.06, 16:51
Wohnort: Düsseldorf
Kontaktdaten:

Sa, 13.01.07, 11:05

@Pehu hier ein paar Credits für dich (200)
Habe ja gesagt sobald Ich es mir leisten kann und du weitere How² zu diesem Thema gemacht hast die mir auch gefallen gibt es auch Credits von mir also Hier Bitte Schön :D
Du hast es dir verdient ! 8)

Mit dankenden Grüßen Alex


Edit: So hast du nun sogar "schon" über 4000 Credits :P :wink:
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Sa, 13.01.07, 12:17

@Alex Dankeschön für die Credits. 4000 Marke ist bereits geknackt. :wink:
Benutzeravatar
alexStyles
Auserwählter
Auserwählter
Beiträge: 2333
Registriert: So, 20.08.06, 16:51
Wohnort: Düsseldorf
Kontaktdaten:

Sa, 13.01.07, 12:20

Bitte Bitte :oops:
Nun kannst du dir ja die schöne Taschenlampe "holen" 8)
Aber Ich würde mir an deiner Stelle eher ein paar Leds "holen" (200 Gratis Leds)
damit kann man mehr basteln als mit einer Taschenlampe :mrgreen:

MfG Alex
MTecK
Mega-User
Mega-User
Beiträge: 216
Registriert: Mi, 23.08.06, 13:47
Kontaktdaten:

Di, 16.01.07, 21:33

Mhh umso mehr H2s es zu den teilen werden umso mehr kommt mir der gedanke mal des board vom vatter zu holen und auch zu experimentieren ...

denke wenn ich des mim vatter mache macht der wieder alles VIEL zu schnell *G* also auf eigen faust ... :lol:
Kunibert93
Mega-User
Mega-User
Beiträge: 270
Registriert: Do, 26.03.09, 13:26
Wohnort: Niedersachsen

Sa, 31.10.09, 17:21

Ist bei dem Pollin- Board eigentlich ein Netzteil dabei?
Soweit ich das gesehen habe ist keins dabei.
Ein passendes Netzteil finde ich bei Pollin nicht, Vieleicht bin ich blind. (Bestelle sonst immer bei Reichelt, nur kostet da ein Board 79€)

Wie lange braucht man eigentlich das Board komplett fertig zu haben?
Es gibt das ganze ja auch schon in fertiger Version, wenn der Aufwand fürs selber Löten zu hoch wäre, würde ich mir dann lieber fertige Sachen bestellen.
Benutzeravatar
Beatbuzzer
Auserwählter
Auserwählter
Beiträge: 3177
Registriert: Fr, 17.08.07, 11:02
Wohnort: Alfeld / Niedersachsen
Kontaktdaten:

Sa, 31.10.09, 17:36

Laut Stückliste im Datenblatt,welches im Shop angehängt ist, wird kein Netzteil mitgeliefert.
Hier gibts ein Schaltnetzteil, bringt zwar Gleichspannung, aber das stört das Board nicht. Das erste nach der Anschlussklemme ist sowieso ein Gleichrichter.Wenn man den Gleichrichter und Spannungsregler weglässt, kann man auch direkt mit einem stabilen 5V Netzteil speisen.

Wie lange du zum Aufbauen brauchst, kann man schlecht abschätzen. Das kommt ganz auf deine Fertigkeit an. Ich denke aber in 1-1,5 Std. ist das spätestens zusammen.
Kunibert93
Mega-User
Mega-User
Beiträge: 270
Registriert: Do, 26.03.09, 13:26
Wohnort: Niedersachsen

Sa, 31.10.09, 18:20

Danke, hatte ich nicht gefunden, warum auch immer
Hm, also in Löten bin ich fit. Nur leider wenig Zeit. Ich werde es mal selber bauen, 8€ Stundenlohn :D
Kunibert93
Mega-User
Mega-User
Beiträge: 270
Registriert: Do, 26.03.09, 13:26
Wohnort: Niedersachsen

So, 01.11.09, 21:53

Irgentwie macht pollin.de keinen so guten Eindruck finde ich, sieht erstmal Unsortiert aus, und vorallem habe ich das gefühl das dor auch viel Ramsch angeboten wird. (Ich mag keine 1€ Läden). Naja ich werde mich mal überraschen lassen. Wie ich finde gibt es da auch keine klare Trennung zwischen Neu und Gebraucht.
Benutzeravatar
Franny
Mega-User
Mega-User
Beiträge: 231
Registriert: Mi, 18.02.09, 13:28
Kontaktdaten:

Mo, 08.02.10, 15:55

hi leute^^
sry das ich den trhööt widda aufmachen muss^^ aba ich hab n paar fragen
ich will etz au ma mit programieren anfangen und hab gelesen das geht au mit basic (des kann ich soweit^^)
uuund will mir etz erst ma das evolution board kaufen usw usw
anfangen wollt ich mit dem ATtiny 2313 und dem atmega8-16 von beiden hol ich mir erst ma nur n paar will ja erst ma probieren a weng
und etz zur frage: was für ic-sockel brauch ich und woher weis ich welcher sockel für welchen controller is? zähl ich die stifte auf einer seite von nem microcontroller und nehm die zahl oda muss ich beide seiten zählen?
n link zu einem von pollin wär sehr geil^^ wenn ned das große C tuts au bzw. ne einfache erklärung^^

danke um vorraus und mfg, franny
Benutzeravatar
Franny
Mega-User
Mega-User
Beiträge: 231
Registriert: Mi, 18.02.09, 13:28
Kontaktdaten:

Sa, 13.02.10, 17:46

ach kommt das wisst ihr^^
helft doch dem kleinen noob namens "ich" xD
mfg, franny
Benutzeravatar
Beatbuzzer
Auserwählter
Auserwählter
Beiträge: 3177
Registriert: Fr, 17.08.07, 11:02
Wohnort: Alfeld / Niedersachsen
Kontaktdaten:

Sa, 13.02.10, 17:54

Klar wissen wir das :P . Ist wohl nur ein wenig untergegangen. Also gut dass du dich nochmal meldest:

Man zählt alle Pins des ICs. Der Attiny2313 hat 20 Stück, also pro Seite 10.
Bei Pollin findet man die Fassung hier.
Benutzeravatar
Franny
Mega-User
Mega-User
Beiträge: 231
Registriert: Mi, 18.02.09, 13:28
Kontaktdaten:

Sa, 13.02.10, 18:55

ok^^ geht doch
aba wenn mer scho dabei sin:
ich hab glesen das ich statt des wechselspannungsnt n geglättetes nehmen kann, aba dann a paar bauteile auslassen muss
welche genau sin das? also kla die gleichrichterdioden und vermutlich den glättungs kondi oda welche sin das? xD
mfg, franny
Benutzeravatar
Beatbuzzer
Auserwählter
Auserwählter
Beiträge: 3177
Registriert: Fr, 17.08.07, 11:02
Wohnort: Alfeld / Niedersachsen
Kontaktdaten:

Sa, 13.02.10, 19:05

Wenn du ein stabilisiertes 5v-Netzteil verwendest, kannst du neben dem Gleichrichter und dem Elko auch noch den Spannungsregler 7805 weglassen und danach deine 5V einspeisen.

Hast du nur ein gleichgerichtetes, geglättetes Netzteil, dann kannst du nur Gleichrichter und Elko weglassen. Aber es ist keine Pflicht. Du kannst auch alles Auflöten und trotzdem Gleichspannung einspeisen, die mindestens 9V beträgt.
Benutzeravatar
Franny
Mega-User
Mega-User
Beiträge: 231
Registriert: Mi, 18.02.09, 13:28
Kontaktdaten:

Sa, 13.02.10, 19:12

ok dann werd ich wohl die 5V variante nehmen xD is wohl am einnfeichsten
ok letzte frage beati^^
also kann gut sein das das i-wo steht und ich ma widda zu dämlich bin das zu finden
aber:
wie groß darf die spannung maximal sein die ich an den eingang von so nem ic ranlegen darf: bzw. wie groß kann die spannung am ausgang werden?
also ich frag das vonwegen wie viel ich hinten ranhängen darf ohne das mir das alles flöten geht^^
Antworten