Forum: Mikrocontroller und Digitale Elektronik Kurze anfänger Fragen :-)


von MindCode (Gast)


Lesenswert?

Hi,
Mein Name ist Philipp. Zurzeit beschäftige ich mich mit dem SerialPort 
unter Windows un VB.NET.
Soweit komm ich mit dem SerialPort klar, kann also Strings durch die 
Pins 2  - 3 schicken usw...

Was ich gerne machen möchte ist: 4 x 4 LED's ansteuern. Es geht hier 
also erstmal um die Grundlagen.
In VB.Net möchte ich den Code erstellen, es soll z.b eine LED reihe von 
Links nach Rechts immer wieder aufleuchten
so dass es aussieht als würde der Balken von Links nach Rechts wandern.

Nun habe ich mich ja schon schlau gemacht und brauche dazu anscheinend 
einen Mikrocontroller. Doch frage ich mich wie das ganze dann
grundlegenst funktionieren soll? Sendet man durch den Serial Port dann 
bestimmte Zahlen? strings? irgendwas? Und wie erkennt dann der PIC was 
ich möchte und führt meinen Wanderbalken da aus? Wie schließ ich die 8 
LEDS an?

Okay zugegeben es ist ein wenig viel für den Anfang. Aber irgendwie muss 
man ja anfangen sich da reinzuarbeiten wenn man da etwas basteln will.

Bis denn
Philipp

von Otto (Gast)


Lesenswert?

1. Du brauchst einen Controller (PIC) mit UART
2. Du brauchst einen Pegelwandler MAX232
3. Du brauchst eine Stromversorgung für den Controller (PIC)
4. Du schliess die LED an einen Port an.
5. Du schreibst ein Programm, das Zeichen von der UART einliest
6. und davon abhängig auf dem Port eine LED ansteuert
7. Du programmierst den Controller damit
8. Du sendest Zeichen, so wie die LED leuchten sollen

Lies dazu die Tutorien

Gruss Otto

von Timmo H. (masterfx)


Lesenswert?

Da gibt es unterschiedliche Ansätze. Entweder du sendest für jeden 
Zustand einen String an den PIC oder du sendest an den PIC ein Kommando 
und der PIC macht das Lauflicht von alleine.
Wenn jeder Zustand über RS232 gesendet werden soll könntest du für jede 
LED z.B. je ein Bit eines Nibbles nehmen. Du sendest also z.B. 
1=>2=>4=>8=>4=>2=>1 usw. Dadurch hättest du ein "Knight Rider" Licht. 
Oder du sendest ein Kommando z.B. wie "L1" für Knight Rider, "L2" für 
rotierendes Lauflicht und der Rest macht der PIC.

von Sebastian B. (mircobolle)


Lesenswert?

MindCode wrote:
>zurzeit beschäftige ich mich mit dem SerialPort
> unter Windows un VB.NET.
> Soweit komm ich mit dem SerialPort klar, kann also Strings durch die
> Pins 2  - 3 schicken usw...
mit .NET erstellst du nur die Kommunikationsschnittstelle zum 
Mikrocontroller System.

> Was ich gerne machen möchte ist: 4 x 4 LED's ansteuern. Es geht hier
> also erstmal um die Grundlagen.
die Ansteuerung übernimmt der uC.

> In VB.Net möchte ich den Code erstellen, es soll z.b eine LED reihe von
> Links nach Rechts immer wieder aufleuchten
> so dass es aussieht als würde der Balken von Links nach Rechts wandern.
in .NET entwickelst du ein Kommunikationsprotokoll.
Z.b.
<LED1 AN>, <LED2 AN>, <LED3 AUS>... usw

> Nun habe ich mich ja schon schlau gemacht und brauche dazu anscheinend
> einen Mikrocontroller. Doch frage ich mich wie das ganze dann
> grundlegenst funktionieren soll? Sendet man durch den Serial Port dann
> bestimmte Zahlen? strings? irgendwas?
Genau. Irgendwas. Das was definierst du! Z.b.
für die Identifikation der LED nimmst du eine ID, z.b. ein Byte, so 
kannst du schon mal 255 LEDs ansteuern, danach noch ein Byte für AN/AUS. 
Somit könntest du mit 2 Byte schon mal die LEDS ansteuern. DIe 
Interpretation der Kommandos übernimmt der uC.

>Und wie erkennt dann der PIC was
> ich möchte und führt meinen Wanderbalken da aus? Wie schließ ich die 8
> LEDS an?
Die Leds werden über Transistoren angesteuert (z.B. npn) Das Gate wird 
über einen Widerstand mit dem Controller verbunden. In die 
Emitter-Kollektor Strecke kommt die LED + Vorwiderstand. Wenn du IB in 
das Gate fliessen lässt wird der Transistor leitend und die LED 
leuchtet.

> Okay zugegeben es ist ein wenig viel für den Anfang. Aber irgendwie muss
> man ja anfangen sich da reinzuarbeiten wenn man da etwas basteln will.
viel spass

von holger (Gast)


Lesenswert?

>Mein Name ist Philipp. Zurzeit beschäftige ich mich mit dem SerialPort
>unter Windows un VB.NET.

Wenn du einen uC programmieren möchtest dann verabschiedest
du dich von allem was du von VB.NET so kennst.
Du gehst ganz tief auf die Hardwareebene.
Das heisst: Du musst jedes Bit einzeln setzen.
In C oder ASM. Datenblatt lesen ist unbedingt erforderlich.

von AC/DC (Gast)


Lesenswert?

@MindCode

Das nennst du kurz?

von MindCode (Gast)


Lesenswert?

Danke erstmal an euch alle war ne große Hilfe und werde nun sehen was 
ich damit Anfangen kann :-)

@Holger

"In C oder ASM. Datenblatt lesen ist unbedingt erforderlich."

Was genau meinst du damit?

Bis denn :)

von Timmo H. (masterfx)


Lesenswert?

Das du schon das Datenblatt lesen musst um zu wissen an welchen 
Registern du rumspielen musst um z.B. den UART oder TIMER zu 
initialisieren. Wenn du in Assembler und nicht in C programmieren willst 
musst du eben auch ins Datenblatt gucken um zu wissen mit welchen 
Befehlen du springen, lesen, schreiben usw. kannst.

von Sebastian B. (mircobolle)


Lesenswert?

MindCode wrote:
> Danke erstmal an euch alle war ne große Hilfe und werde nun sehen was
> ich damit Anfangen kann :-)
>
> @Holger
>
> "In C oder ASM. Datenblatt lesen ist unbedingt erforderlich."
>
> Was genau meinst du damit?
>
> Bis denn :)

Holger meinte damit, dass du unbedingt in das Manual deines 
Mikrocontrollers reinschauen solltest. Dort steht alles drin was du bei 
Hardwarenaher Programmierung beachten musst.

z.B. du willst den Strom für deine LEDs direkt aus den Beinchen deines 
Controllers ziehen (was keine gute Idee wäre!) aber dann musst du 
beachten wieviel Strom du MAXIMAL ziehen darfst ! Sowas steht in dem 
Datenblatt deines Controllers !!! extra 3 Ausrufezeichen ;-)

Solltest du zur Ansteuerung deiner LEDs einen Transistor benutzen (was 
eine bessere Idee wäre ;-) dann musst du natürlich in das Datenblatt 
deines Transistors schauen.

Usw. ... :-)

von MindCode (Gast)


Lesenswert?

Verstanden :-)
Danke, habt mir echt geholfen!
Hab mir jetzt mittlerweile auch gut viele Tutorials und Informationen 
reingezogen. Denke dass es aufjedenfall mit der Zeit klappen wird. Is ja 
noch kein Meister vom Himmel gefallen :D

von Ohno (Gast)


Lesenswert?

4x4=8???

von Sebastian B. (mircobolle)


Lesenswert?

Ohno wrote:
> 4x4=8???

Wahrscheinlich möchte er immer 2 LEDs parallel ansteuern, so dass es für 
den Controller effektiv nur 8 LEDs sind und nicht 16. ;-)

Ob dein Transistor zum Schalten für 2 x 20 mA und VDD-UF_LED=UCE 
ausgelegt ist muss man natürlich vorher prüfen. P = U * I. -> compare 
with P_tot

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.