Hallo alle zusammen
Ich habe eine frage:??
Also ich möchte in Visual basic einen button machen mitdem ich eine led
zum beispiel an und aus machen kann.
Aber leider weiß ich nicht wie dass gehen soll.
Ich besitze einen Atemga 88
Und Visual Basic Express Editon
Hallo,
du solltest C lernen und ein AVR Tutorial machen:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Aufwand ca. 2 Monate bis man alles beherrscht.
Dann braucht man noch einen Programmer für den AVR.
Patrick schrieb:> Also ich möchte in Visual basic einen button machen mitdem ich eine led> zum beispiel an und aus machen kann.
Ist möglich. Serielle Schnittstelle nutzen und Microcontroller darüber
ansteuern.
Du erstellst für den PC ein Programm (mit Visual Basic), das einen
Button darstellt, und dessen Zustand über eine geeignete Schnittstelle
(z.B. seriell oder USB) ausgibt.
Über dieser Schnittstelle verbindest du den PC mit den Mega88. Das
erfordert neben passenden Steckern, Buchsen, und Kabeln auch noch
zusätzliche Hardware vor dem Mega88.
Dann erstellst du für den Mega88 ein Programm, das Daten über dessen
Schnittstelle einliest, und in Abhängigkeit der gelesenen Werte eine LED
ein- oder ausschaltet.
Das ist schon alles...
Oliver
Patrick schrieb:> usb
Auf welche Art und Weise unterhält sich der Mega88 mit der USB
Schnittstelle?
Wie unterhält sich dein Visual Basic mit der USB-Schnittstelle des PC?
Sprechen beide USB-Schnittstellen die gleiche Sprache?
ich besitze ein
Michael S. schrieb:> das kann nicht sein, der ATmega 88 hat kein USB-Interface
Ich habe so ein lernpacket und bin ganz neu in dem gebiet ..
Patrick schrieb:> usb
Weniger Informationen häätest du nur noch mit einem Fragezeichen
geschafft.
Es wäre nützlich, das Board/Platine anzugeben, auf dem der uC hockt.
Wo du es gekauft hast, wäre vlt auch nicht verkehrt.
Patrick schrieb:> Ich habe so ein lernpacket und bin ganz neu in dem gebiet ..
Dann mach das Lernpaket durch.
Hast du die LED schon mit einem Programm zum Leuchten gebracht?
:-)
Patrick schrieb:> ich besitze ein>> Ich habe so ein lernpacket und bin ganz neu in dem gebiet ..
Achso, dann sag das doch gleich. Du musst hier schon ein
paar mehr Informationen liefern sonst wird man dir nicht
helfen können. ;-)
Hast du die Beispiele im Paket schon durchgeführt?
siehe hier:
[http://halvar.at/elektronik/kleiner_bascom_avr_kurs/hallo_welt/]]
Grüße...
Patrick schrieb:> Oliver schrieb:>> Das ist schon alles...>> Das klingt als ob das ganz eifach ist..
Je nun, je nach Vorwissen und vorhandenen Libs ist das eine Aufgabe für
ca. 1 Tag bis 2 Jahre. Wenn du bisher weder was mit Virtual Basic, mit
Schnittstellen, mit Hardware, und mit Mikrocontrollern gemacht hast,
wird das ohne fremde Hilfe gar nichts.
Oliver
Pattrick.
Schau mal bei Abacom.de vorbei, dort gibt es das Profilab- Expert
Programm,
auch als kostenlose DEMO, mit dem kannst Du ganz schnell Deine
Aufgabenstellung lösen- nein, ich bin nicht von Abacom, verwende jedoch
deren Programme und bin begeistert.
Floh schrieb:> Hast du die LED schon mit einem Programm zum Leuchten gebracht?
Ja ich bin auch schon durch mit dem lernpaket mit Bascom klappt das ja
auch alles wunderbar nur nicht in Visual Basic
Patrick schrieb:> Ja ich bin auch schon durch mit dem lernpaket mit Bascom klappt das ja> auch alles wunderbar nur nicht in Visual Basic
Bascom als Editor und Compiler läuft auf deinem PC. Dort erzeugt er aus
dem Quelltext eine Binärdatei, die dann über den Programmierer auf den
AVR gebracht wird. Das eigentliche Programm (Binärdatei) wird dann auf
der Zielhardware (Mega88) ausgeführt.
Visual Basic läuft als Editor und Compiler auf deinem PC. Der Compiler
erzeugt eine Binärdatei die NUR auf dem PC ausgeführt wird. Diese Datei
läuft NICHT auf dem AVR.
Patrick schrieb:> Floh schrieb:>> Hast du die LED schon mit einem Programm zum Leuchten gebracht?>> Ja ich bin auch schon durch mit dem lernpaket mit Bascom klappt das ja> auch alles wunderbar nur nicht in Visual Basic
Höchst wahrscheinlich hat dein Lernpaket den USB Port so eingebunden,
dass er als virtueller COM Port auf dem PC zur Verfügung steht.
D.h. die Kommunikation zwischen PC und deinem Mega ist eine ganz normale
RS232 Kommunikation. Das die physikalisch über USB abgewickelt wird, ist
für dich uninteressant.
Dein Mega empfängt die Daten per UART und auf dem PC stellst du diesen
virtuellen COM-Port ein.
Jetzt musst du nur noch rauskriegen, wie du in VB eine Serielle
Schnittstelle bedienst. Aber dafür gibt es massenhaft Tutorials im Web.
Karl heinz Buchegger schrieb:> Höchst wahrscheinlich hat dein Lernpaket den USB Port so eingebunden,> dass er als virtueller COM Port auf dem PC zur Verfügung steht.
Ja gennau bei mir ist es Com Port 10 danke die infp hilft mir etwas
weiter
Ich komm einfach nicht weiter ich finde einfach nicht dass passende im I
net.
Kann mir jemand den code wie ich ihn in VB eingeben muss schiken
Einfach mal eine Led an und aus machen
Google
"vb serial port communication"
zb. gleich der erste Link
Im übrigen:
Du entfachst momenten einen 2-Frontenkrieg.
Fang erst mal so an:
Nimm PC-seitig ein Terminal-Programm, welches du an den COM-Port hängst.
Sieh zu, dass du von deinem µC da erst mal Ausgaben drauf machen kannst
(dadurch testest du die UART Einstellung am µC)
Dann die Umkehrung: Ein µC Programm schreiben, welches auf Daten von der
seriellen Schnittstelle ragiert. Damit kannst du dann schon mal deinen
µC vom Hyperterminal aus durch Eingabe von Text steuern.
Und erst dann, wenn der µC Teil fertig ist, gehst du daran, dass dir ein
VB-Programm das erledigt (also den Text zum µC schickt), was du bisher
mit Hyperterminal am PC händisch gemacht hast.
Karl heinz Buchegger schrieb:> Im übrigen:> Du entfachst momenten einen 2-Frontenkrieg.
Wie mein Vorredner schon sagte...
Es ist sehr schwer dir zu helfen, wenn wir nicht wissen an welchem
Problem du gerade hägst. Beschreib doch mal bitte ganz einfach verbal
die Schritte die du ausführen möchtest und deine dazu schon erledigten
Schritte.
Joe G. schrieb:> Beschreib doch mal bitte ganz einfach verbal> die Schritte die du ausführen möchtest und deine dazu schon erledigten> Schritte.
Also ich habe an einen Atemga88 2 led´s angeschlossen.
Dann habe ich in Bascom ein Programm geschrieben dass die led´s
abwechselnd blinken lässt, das hat dann auch so weit eklappt.
So und jetzt möchte ich mit VB 2 Buttons erstellen mitdenen ich jeweils
jede led an und ausschalten kann
Und jetzt zu meinem Problem mit VB kenne ich mich nicht ganz aus ,
damit meine ich comm ports ansteuern.
Das was ich im i net gefunden hat hat nicht funktioniert
Und jetzt bitte ich euch um HILFE
Patrick schrieb:> Dann habe ich in Bascom ein Programm geschrieben dass die led´s> abwechselnd blinken lässt, das hat dann auch so weit eklappt.
ok
Das heißt, du hast noch überhaupt keine Kommunikation gemacht
> So und jetzt möchte ich mit VB 2 Buttons erstellen mitdenen ich jeweils> jede led an und ausschalten kann>> Und jetzt zu meinem Problem mit VB kenne ich mich nicht ganz aus ,> damit meine ich comm ports ansteuern.
Wie schon gesagt:
Mein Tip. Lass VB erst mal links liegen und sieh zu, dass du
* die Kommunikation in Gang kriegst
* du vom Hyperterminal (also einem Programm welches nachgewiesenermassen
die COM Schnittstelle richtig (na, ja) bedienen kann) deinen
µC steuern kannst
Machst du zuviele Baustellen auf einmal auf (µC UND VB-Programm
gleichzeitig entwickeln), dann weißt du nie, wo denn jetzt der Fehler
ist, wenns nicht funktioniert. Und es wird nicht auf Anhieb
funktionieren.
Patrick schrieb:> Und jetzt bitte ich euch um HILFE
Teile deine Aufgabe in zwei Teilaufgaben.
1. Mega88 schaltet 2 LED's gesteuert über den virtuellen COM-Port.
Dazu mußt du auf auf dem Mega88 den COM-Port abfragen, das Protokoll
auswerten und die LED's schalten.
2. Statt des VB benutzt du zum Test ein Terminalprogramm auf dem PC.
Wenn du dort dein selbstdefiniertes Kommando sendest, sollten die LED's
am Mega88 schalten.
3. Du programmierst in VB deine Schalter so, dass sie genau das Kommando
welches du vorher im Terminal gesendet hast senden.
Karl heinz Buchegger schrieb:>> So und jetzt möchte ich mit VB 2 Buttons erstellen mitdenen ich jeweils>> jede led an und ausschalten kann
Kann es sein, dass da ein Verständnisproblem vorliegt.
Es ist nicht das VB Programm, welches die LED ein/ausschaltet.
Du musst dir das eher so vorstellen, wie wenn du zu Hause anrufst und
deine Freundin bittest das Fenster auf/zu zu machen.
Du bist der PC
Deine Freundin ist der µC
die Telefonverbindung ist euer Kommunikationskanal.
Es ist deine Freundin, die das Fenster bedient. Du gibst nur die
Kommandos dazu.
Aber: Dazu muss deine Freunding das Kommando verstehen und du musst das
richtige Kommando abschicken.
Als Kommando kannst du dir etwas ausdenken, was dir sinnvoll erscheint.
Nichts desto trotz musst du erst mal deiner Freundin beibringen, wie man
Kommandos empfängt und auswertet und dann das richtige tut.
Ob dann du (als VB-Programm) oder dein Kumpel das Kommando absetzt ist
egal. Mit einem Unterschied: Dein Kumpel (das Terminalprogramm) kann
schon mit der COM-Schnittstelle arbeiten und du noch nicht.
Patrick schrieb:> Karl heinz Buchegger schrieb:>> Kann es sein, dass da ein Verständnisproblem vorliegt.>> Ich sagte doch dass ich keine erfahring mit VB habe!!! :-(
Dies ist unabhängig von VB.
Patrick schrieb:> Karl heinz Buchegger schrieb:>> Kann es sein, dass da ein Verständnisproblem vorliegt.>> Ich sagte doch dass ich keine erfahring mit VB habe!!! :-(
Das hat eigentlich nichts mit VB zu tun sondern mit grundsätzlichen
Überlegungen, wer in einem verteilten System wofür zuständig ist und was
er tun kann und was nicht.
Übersichtlich darzustellen: Du musst erst mal festlegen, wie sich der PC
mit dem Mikrocontroller verständigt.
Das ist erstens: USB- oder serielle Schnittstelle mit der entsprechenden
Hardware. Die gibt Dir Dein Lernpaket wahrscheinlich schon mehr oder
weniger vor.
Dazu kommt zweitens noch, daß Du festlegen musst, wie die Informationen
"gedanklich" ausgetauscht werden sollen. Das nennt man auch Protokoll.
Auf so einer Verbindung werden ja grundsätzlich erstmal nur Zeichen
(CHARs, Buchstaben...) ausgetauscht. Jetzt mußt Du Dir überlegen, wie Du
die zu übertragenden Befehle in Zeichenketten darstellst.
Im Endergebnis mußt Du erstens das VB-Programm so schreiben, dass es auf
den Button hin beispielsweise die Zeichenfolge "LED1=1" sendet. Und dann
muß das Programm des Mikrocontrollers diese Zeichenfolge auswerten und
die LED 1 daraufhin einschalten.
Natürlich ist dann auch noch sehr viel Detailkram wie
Schnittstellenprogrammierung und dergleichen dabei. Außerdem ist es
hilfreich, sich möglichkeiten zu schaffen, die einzelnen Teilschritte
unabhängig voneinander zu testen. Sonst stehst Du immer nur mit dem
Fragezeichen da und sagst "geht ja gar nicht"... Da mußt Du jetzt aber
durch.
Hi
Wenn du VB programmieren kannst, dann mach doch folgendes:
Bei Betätigen des Buttons prüfst du, ob das letzte gesendete Zeichen ein
"A" war und dann sendest du ein "a", wenn es ein "a" war, entsprechend
ein "A". Im Controller programmierst du den USART-Interrupt Empfang.
Kommt dort ein "A" an, setzt du den Ausgang, kommt ein "a" an, setzt du
ihn zurück. "A" für An, "a" für aus.
Mit BASCOM hab ich leider nix am Hut, sonst könnt ich dir die
Empfangsroutine auf dem µC kurz erläutern, aber da gibt's bestimmt
genügend Beiträge, die dir weiterhelfen.
Gruß oldmax