mikrocontroller.net

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


Autor: MindCode (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sebastian B. (mircobolle)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: AC/DC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@MindCode

Das nennst du kurz?

Autor: MindCode (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sebastian B. (mircobolle)
Datum:

Bewertung
0 lesenswert
nicht 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. ... :-)

Autor: MindCode (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ohno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
4x4=8???

Autor: Sebastian B. (mircobolle)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.