Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

String über COM an Arduino senden

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
flice



Anmeldungsdatum: 22.08.2021
Beiträge: 3

BeitragVerfasst am: 22.08.2021, 14:40    Titel: String über COM an Arduino senden Antworten mit Zitat

Moin allerseits, und direkt mal Entschuldigung für die Noob-Frage.

Ich habe viele Beiträge hier gefunden, wie ich den Arduino mit FreeBasic auslesen kann. Ich habe das umgekehrte Problem. Die Dinge, die ich gefunden habe, waren zu allgemein gehalten. Meine Sprache ist eher java, aber da ist USB-Kommunikation furchtbar...

Kurz zum Hintergrund: Ich möchte meinen Monitor aus dem Schreibtisch hochfahren, wenn der Rechner angeschaltet wird, und runter, wenn man den Rechner runterfährt.

Der ganze andere Kram funktioniert. Kann gern die Schaltung etc. nachliefern, aber das läuft soweit. Ich kann auch über den Serial Monitor zum Beispiel "down" an den Arduino schicken und er fährt mir den Monitor runter.

Das Problem ist, dass ich natürlich gern eine .exe hätte, die das Wort "down" an den Arduino schickt, damit ich sie in Windows automatisch ausführen lassen kann, wenn der Rechner heruntergefahren wird.

Ich bin ziemlich sicher, dass das in FB nur 2 Zeilen sind, aber ich habe da keine Erfahrung und möchte mich eigentlich auch nicht in FB einarbeiten um 2 Zeilen zu schreiben.

Dieser Code ist Arduino-seitig:

[code]
if (Serial.available()) {
command = Serial.readStringUntil("\n");
command.trim();
if (command.equals("down")) {
direction = 1;
digitalWrite(DIR, direction);
while (digitalRead(Breakdown) == HIGH) {
digitalWrite(STEP, HIGH);
delayMicroseconds(Delay);
digitalWrite(STEP, LOW);
delayMicroseconds(Delay);
}
}
}
[/code]

Die Formatierung hat meine eingerückten Zeilen gefressen, sry.

"Breakdown" ist ein Endlagenschalter, der den Motor stoppt, wenn der Monitor unten angekommen ist. Wie gesagt, läuft wunderbar.

Jetzt habe ich versucht, den COM6 mit FB zu öffnen und das Wort "down" zu schicken, aber das klappt nicht. Weil ich keine Ahnung habe.

[code]
Open com "COM6:9600,N,8," As #1
PRINT #1,"down"
[/code]

So einfach wie ich mir das vorgestellt habe, ist es halt leider nicht...

Danke,
M
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
HorstD



Anmeldungsdatum: 01.11.2007
Beiträge: 91

BeitragVerfasst am: 22.08.2021, 16:17    Titel: Antworten mit Zitat

COM6 ist vorhanden?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 943
Wohnort: Austria

BeitragVerfasst am: 22.08.2021, 16:39    Titel: Antworten mit Zitat

Probier mal mit "COM6:9600,N,8,1,CS0,DS0,RS"

(eventuell auch, falls das nicht klappt, zusätzlich mit einer Auswahl dieser: "ME,CS0,DS0,CD0,RS"
siehe mein älterer Beitrag hier: https://forum.qbasic.at/viewtopic.php?p=109593#109593)

Wenn das nicht klappt würd ich probieren Arduino-seitig herauszufinden, ob überhaupt was ankommt, und falls ja, was.
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
flice



Anmeldungsdatum: 22.08.2021
Beiträge: 3

BeitragVerfasst am: 22.08.2021, 17:06    Titel: Antworten mit Zitat

Vielen Dank für die rasche Antwort!

Ich habe inzwischen versehentlich zeigen können, dass der Motor genug Kraft hat, den Tisch anzuheben und dabei die Gewindespindel auszukugeln. Läuft bei mir.

Ich muss also alles etwas anders verkabeln, um den Code zu testen, während die Spindel repariert wird, darum kann ich nicht sagen, ob es läuft. Wollte mich nur melden, damit es nicht wie Desinteresse aussieht lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
flice



Anmeldungsdatum: 22.08.2021
Beiträge: 3

BeitragVerfasst am: 27.08.2021, 20:09    Titel: Antworten mit Zitat

Serial.available() bleibt false, es wird gar keine Verbindung aufgebaut... verwundert

Oh, well, dann muss ich wohl doch erstmal paar Videos über FreeBasic schauen.

Dank Euch für die raschen Antworten!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1871
Wohnort: D59192

BeitragVerfasst am: 28.08.2021, 11:40    Titel: Antworten mit Zitat

Hi,
prüf noch einmal:
entsprechenden USB-Treiber geladen?
Arduino wird erkannt?
der Arduinocode enthält "Serial.begin(9600);"?
Stimmt COM6?
Code:
'Testet die ComPorts 1-20 auf Aktivität

Dim As String COMPort

For i As Long = 1 To 20
  COMPort = "COM" & Str(i) & ":9600,N,8,1,ME,CS0,DS0,RS"
  If (Open Com ( COMPort For Binary As #1 ) = 0 ) Then
    Print "COM" & Str(i),
    Print COMport
  EndIf
  Close #1
Next

Sleep

Wenn dies alles stimmt solte es funktionieren!

PS: Ich habe so einen Fehler mal lange gesucht, da hatte ich ein USB Ladekabel und kein echtes USB Kabel benutzt.
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz