Forum: Mikrocontroller und Digitale Elektronik Bascom Und Visual Basic?


von Patrick (Gast)


Lesenswert?

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

von Lehrmann M. (ubimbo)


Lesenswert?

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.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

> Ich besitze einen Atemga 88

und wie ist dein Atemga 88 mit deinem PC verbunden?

von Patrick (Gast)


Lesenswert?

usb

von Oliver (Gast)


Lesenswert?

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

von Patrick (Gast)


Lesenswert?

Ich besitze leider keine seriele schnittstelle an meinem laptop

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

> usb

hm, USB hat nur 4 Leitungen, der ATmega 88 jedoch 28 Beinchen (im DIL 
Gehäuse). Hast du die anderen Beinchen abgeschnitten?

von Patrick (Gast)


Lesenswert?

Oliver schrieb:
> Das ist schon alles...

Das klingt als ob das ganz eifach ist..

Wie muss ich den ausgan angeben zb bei usb

von Michael S. (Firma: electro-tester) (michael0307)


Lesenswert?

Patrick schrieb:
> usb

...das kann nicht sein, der ATmega 88 hat kein USB-Interface!

Grüße...

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

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?

von Patrick (Gast)



Lesenswert?

Wegstaben Verbuchsler schrieb:
> der ATmega 88 jedoch 28 Beinchen

Ich besitze den

von Pascal H. (pase-h)


Lesenswert?

Wahrscheinlich mein er mit USB einen Programmer ala AVR ISPMKII etc.?

von Patrick (Gast)



Lesenswert?

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 ..

von Patrick (Gast)


Lesenswert?

Pascal Haury schrieb:
> Wahrscheinlich mein er mit USB einen Programmer ala AVR ISPMKII etc.?

Ja genauu

von Floh (Gast)


Lesenswert?

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.

von Floh (Gast)


Lesenswert?

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?
:-)

von Michael S. (Firma: electro-tester) (michael0307)


Lesenswert?

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...

von Oliver (Gast)


Lesenswert?

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

von Hallo (Gast)


Lesenswert?

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.

von Patrick (Gast)


Lesenswert?

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

von greg (Gast)


Lesenswert?

Michael S. schrieb:
> ...das kann nicht sein, der ATmega 88 hat kein USB-Interface!
>

Das geht auch in Software ganz gut.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Patrick (Gast)


Lesenswert?

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

von Patrick (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

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.

von Patrick (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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.

von Patrick (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> die Kommunikation in Gang kriegst

Was meinst du damit???

Sorry aber ich kapiers nicht

von Karl H. (kbuchegg)


Lesenswert?

Patrick schrieb:
> Karl heinz Buchegger schrieb:
>> die Kommunikation in Gang kriegst
>
> Was meinst du damit???
>
> Sorry aber ich kapiers nicht

Diese Strategie
Beitrag "Re: Bascom Und Visual Basic?"

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

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.

von Patrick (Gast)


Lesenswert?

Also ich werde dass jetzt mal machen und mich wider melden

von Karl H. (kbuchegg)


Lesenswert?

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.

von Patrick (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Kann es sein, dass da ein Verständnisproblem vorliegt.

Ich sagte doch dass ich keine erfahring mit VB habe!!! :-(

von Patrick (Gast)


Lesenswert?

Patrick schrieb:
> Ich sagte doch dass ich keine erfahring mit VB habe!!! :-

aber danke jetzt ist es mir klar

von Lukas K. (carrotindustries)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von hubert (Gast)


Lesenswert?

Ü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.

von tubeman (Gast)


Lesenswert?


von oldmax (Gast)


Lesenswert?

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

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.