Forum: Mikrocontroller und Digitale Elektronik Anfängerprojekt?


von Manuel T. (tedd)


Lesenswert?

Hi,
Ich bin sicher der x-te Newbie der mit solchen Fragen auf die Nerven 
geht aber vielleciht hat ja doch jemand Lust und Zeit mir diese zu 
beantworten :)
ich habe mich letztendlich entschieden, mir ein STK500 + 
Bauelemente(Breadboard,Widerstände,etc) zuzulegen und die AVR Tutorials 
von hier durchzuarbeiten.
Hatte vor in C zu programmieren oder sollte man wirklich in Assembler 
anfangen um irgendwas besser zu verstehen?

Nun gut, ich hatte mir gedacht ich könnte nach den Tutorials evtl. 
folgendes Projekt starten und bräuchte dafür ein,zwei Tipps:

Ich würd gern 2 Neigungssensoren auf eine Platine hauen, die mit einem 
AVR und ner RGB LED bestückt ist.

Neigt man die Platine an einer Achse soll sich die Farbe ändern, neigt 
man sie an einer anderen Achse entlang, soll sich die Intensität ändern.
Ist sowas möglich und könnt ihr mir da evtl was an Sensoren empfehlen?
Ich finde das hört sich recht simpel an, oder ist dass als 
Anfängerprojekt wenn man sich schon etwas eingearbeitet hat zu 
kompliziert?

Ich denke mir das so, dass der Neigungssensor je nach Neigung eine 
gewisse Spannung an einen Eingang des Mikrokontrollers liefert der dann 
eine gewisse Ausgangsspannung für die LED erzeugt und diese somit ihre 
Farbe ändert, habe allerdings keine Ahnung, ob das wirklich so 
funktioniert.
Hoffe, dass wenn ich Tutorials/einfache LED Projekte durcharbeite ich 
darauf komme wie es nun tatsächlich laufen wird.

Danke und Gruß,
tedd

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Hatte vor in C zu programmieren oder sollte man wirklich in Assembler
>anfangen um irgendwas besser zu verstehen?

Ja.

>Neigt man die Platine an einer Achse soll sich die Farbe ändern, neigt
>man sie an einer anderen Achse entlang, soll sich die Intensität ändern.

Du suchst Beschleunigungssensoren.

>könnt ihr mir da evtl was an Sensoren empfehlen?

LIS3L02AS4

>Ich denke mir das so, dass der Neigungssensor je nach Neigung eine
>gewisse Spannung an einen Eingang des Mikrokontrollers liefert der dann
>eine gewisse Ausgangsspannung für die LED erzeugt und diese somit ihre
>Farbe ändert, habe allerdings keine Ahnung, ob das wirklich so
>funktioniert.

Ja, funktioniert. Die LEDs bekommen in dem Fall eine variable PWM 
angeschaltet.

von Manuel T. (tedd)


Lesenswert?

Danke für die schnelle Antwort Travel Rec.!

Dann geht's bald mal zum bestellen und rumprobieren :)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Viel Spaß damit!

von Manuel T. (tedd)


Lesenswert?

Ich habe da doch noch eine Frage...
Hoffe die ist euch nicht zu dumm, evt habe ich di Suche falsch benutzt 
oder dazu nichts gefunden.

Und zwar ist es ja sinnvoll für die Tutorials und weitere Schaltungen 
ein Steckbrett zu besorgen. In der Tutroial Anleitung steht wie ich eine 
5V Vcc Stromversorgung für nen AVR hinbekomme und
"An den Eingang (+ und - im Schaltplan) wird ein Steckernetzteil mit 
einer Spannung von 9 - 12V angeschlossen. "

Ist ja klar nur:

Wie komme ich jetzt jeweils an den + und - Kontakt von diesem 
Steckernetzteil? Die haben doch normalerweise immer so Hohlstecker oder 
nicht? Muss ich das dann auseinanderbasteln?

Danke und Gruß,

tedd

von Sven H. (Gast)


Lesenswert?

Zauberwort: Schere oder eine entsprechende Buchse.

von Dieter E. (netdieter) Benutzerseite


Lesenswert?

Manuel Ted wrote:

> Wie komme ich jetzt jeweils an den + und - Kontakt von diesem
> Steckernetzteil? Die haben doch normalerweise immer so Hohlstecker oder
> nicht? Muss ich das dann auseinanderbasteln?
>
> Danke und Gruß,
>
> tedd

Dafür gibts Holstecker bzw. Buchsen zu kaufen. Da lötest Du dann ein 
kurzes Kabel ran und verbindest es mit deinem Board.

Gruß

von nullahn (Gast)


Lesenswert?

Schöne Idee poste doch mal wenn fertig.

von Hmm... (Gast)


Lesenswert?

> Ist ja klar nur:
>
> Wie komme ich jetzt jeweils an den + und - Kontakt von diesem
> Steckernetzteil? Die haben doch normalerweise immer so Hohlstecker oder
> nicht? Muss ich das dann auseinanderbasteln?

1. Eine Buchse für Printmontage kaufen. Mit etwas Glück passt sie ins
   Breadboard, ansonsten ein Stück Lochraster passend bohren und dann
   auf Pinheader des Lochrasters führen. Das passt dann ins Breadboard.

   Kannst ja, falls vorhanden, zum nächsten blauen C gehen und an der
   Bauteilausgabe das Steckernetzteil zeigen. Lass dir die dazu passende
   Buchse raussuchen und besteh drauf das die Kontakte durchgepiepst 
werden.

2. Schneid den Stecker vom Netzteil ab, löte Pinheads dran. Das passt 
dann
   aufs Breadboard. Allerdings ist das nicht Verpolungssicher, ich würde
   Weg 1 bevorzugen.

Kleiner Tipp:

Gleichrichter für Kleinspannungen und kleine Ströme kosten <1€ und 
machen deine Schaltung Verpolungssicher. Dann ist es egal, wie herum du 
das Steckernetzteil anschließt. Auf dem STK500 wurde das auch so gelöst 
;)

von Simon K. (simon) Benutzerseite


Lesenswert?

Travel Rec. wrote:
> LIS3L02AS4

Der ist übrigens obsolet. In der heutigen Zeit bekommt man 
Beschleunigungssensoren (i.d.R.) nur noch in LGA-Style Packages, leider.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Hmmm - meine Kollegen haben den verwendet, kam aus einem Modellbau-Shop.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Den MMA3202D gibt es noch bei CSD-electronics, macht 2 Achsen bis 
100/50g im SOIC20.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Travel Rec. wrote:
>>Hatte vor in C zu programmieren oder sollte man wirklich in Assembler
>>anfangen um irgendwas besser zu verstehen?
>
> Ja.

Nein.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?


von Simon K. (simon) Benutzerseite


Lesenswert?

Ja, Analog Devices und Kionix haben auch noch Accelerometers. Gibt mit 
Sicherheit noch mehrere Hersteller.

von Björn R. (sushi)


Lesenswert?

> Hatte vor in C zu programmieren oder sollte man wirklich in Assembler
> anfangen um irgendwas besser zu verstehen?

Frag 10 leute danach, und du wirst 11 Antworten erhalten. Ich hatte 
Assembler nur in der FH in der Microcontroller-Vorlesung. Am Ende der 
selben wurde dann auch in C programmiert. Um die Sache am Anfang zu 
verstehen, ist es ganz nett, aber notwendig? Ich behaupte mal nein. Im 
praktischen Einsatz ist C m.M. nach übersichtlicher und bequemer. Es 
kommt aber auch sehr darauf an, was du machen willst. Auf kelinen µCs 
ein paar Mini-Programme macht man lieber in Assembler. Aber wie gesagt, 
10 leute, 11 Meinungen...

> Ich denke mir das so, dass der Neigungssensor je nach Neigung eine
> gewisse Spannung an einen Eingang des Mikrokontrollers liefert der dann
> eine gewisse Ausgangsspannung für die LED erzeugt und diese somit ihre
> Farbe ändert, habe allerdings keine Ahnung, ob das wirklich so
> funktioniert.

Ganz so funktioniert das nicht, aber fast ;-)
Der Anfang stimmt, um die Spannugn als Zahl im Microcontroller 
verarbeiten zu können, wirst du dann den Analog-Digital Konverter des 
µCs nutzen.
Der zweite Teil geht anders. Erstens hat der AVR keinen Digital-Analog 
Konverter an Bord, zweitens brauchst du auch keinen. Die Helligkeit 
einer LED hängt nicht, wie von dir vermutet, von der Spannung ab, 
sondern vom Strom. Einen variablen Strom erzeugst du mit dem AVR dann 
über Timer als PWM. Die Stichworte Analog-Digital-Konverter, Timer und 
PWM wirst du in beiden Tutorials hier wiederfinden. Von daher sollte

> Hoffe, dass wenn ich Tutorials/einfache LED Projekte durcharbeite ich
> darauf komme wie es nun tatsächlich laufen wird.

gut klappen.

LG, Björn

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Es gibt auch rein digitale Beschleunigungssensoren mit SPI/I2C Ausgabe, 
da braucht´s dann nur noch einen kleinen Tiny ohne ADC zum Ansteuern der 
LEDs.

von Michael H* (Gast)


Lesenswert?

Michael G. wrote:
> Travel Rec. wrote:
>>>Hatte vor in C zu programmieren oder sollte man wirklich in Assembler
>>>anfangen um irgendwas besser zu verstehen?
>>
>> Ja.
>
> Nein.

du bist das allerbeste beispiel für ein schallendes: JA
es ist immer wieder hilfreich, sich in asm zurechtzufinden. man muss es 
ja nicht bis in die perfektion beherrschen und jeden trick schon mal 
gesehen haben.
aber ich bin immer wieder froh, es zu können

von let (Gast)


Lesenswert?

Von mir ein klares womöglich.

Wenn dir klar ist das
1
a = a / 10;
langsamer ist als
1
a = a / 8;

brauchst mit asm nicht anfangen wenn du eigentlich in C
programmieren willst.
Erst recht wenn bei
1
array[i].a = x;
2
array[i].b = y;
3
array[i].c = z;
bei dir einige Alarmlampen angehen, kannst du Assembler links
liegen lassen.

von Stefan Salewski (Gast)


Lesenswert?

Autor: Michael G. (linuxgeek) Benutzerseite
Datum: 14.01.2009 16:42
>Travel Rec. wrote:
>>>Hatte vor in C zu programmieren oder sollte man wirklich in Assembler
>>>anfangen um irgendwas besser zu verstehen?
>>
>> Ja.

>Nein.

Von Dir hätte ich auf diese Frage eigentlich etwas mehr erwartet, 
alleine schon wegen deines Usernamens.

Natürlich kann man programmieren völlig ohne Assemblerkenntnisse. Man 
kann auch einen Rechner benutzen wenn man nur die CD einschieben und die 
Maustasten drücken kann. Wahrscheinlich kann man auch einen A380 
fliegen, ohne die Grundbegriffe der Strömungsphysik zu kennen.

Die Frage bezog sich aber nicht auf ANWENDEN, sondern auf VERSTEHEN!

Anfangen muss man sicher nicht unbedingt in Assembler, aber es ist schon 
sehr vorteilhaft, etwas Assembler zu können, um zu verstehen, was ein 
PC/uC eigentlich wirklich tut bzw. tuen kann.

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.