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
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
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.
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
>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.
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 :)
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.
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. ... :-)
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.