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:

Nochmal: Relaiskarte ansteuern

 
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
mannyk



Anmeldungsdatum: 31.01.2006
Beiträge: 2

BeitragVerfasst am: 01.02.2006, 13:53    Titel: Nochmal: Relaiskarte ansteuern Antworten mit Zitat

Hi!
Ich habe endlich einen Code gefunden, mit dessen Hilfe ich meine Karte (seriell, 8-fach, von Conrad) ansprechen kann.
Hier der Code:
Code:

'serielle Schnittstelle fuer Ausgabe oeffnen (evtl COM2 in COM1 aendern):
OPEN "COM1:19200,N,8,1,BIN,CS,DS" FOR OUTPUT AS #1

'kuenftig wollen wir nur noch Relais schalten (3 = Set Port):
Kommando% = 3

'Relais schalten (mit dem Datenwert kann experimentiert werden):

'-------------------------------------
'Relais 1 wird angezogen
Daten% = 1      'Bit 0(Wert=1) und Bit 2(Wert=4) setzen; Relais 1,3 ziehen an
GOSUB Senden    'die neuen Daten senden

SLEEP 3

'Relais 2 wird angezogen
Daten% = 2      'Bit 0(Wert=1) und Bit 2(Wert=4) setzen; Relais 1,3 ziehen an
GOSUB Senden    'die neuen Daten senden
'-------------------------------------

CLOSE #1        'serielle Schnittstelle schliessen

END             'Programm beenden

'-- Unterprogramm ----------------------------------------------------------
Senden:
'Pruefsumme bilden (siehe Anleitung):
PruefSumme% = Kommando% XOR Adresse% XOR Daten%
'Aus den vier Zahlen vier Zeichen bilden (CHR$) und  zu einem
'String (Send$) zusammenfuegen ( + ); das ist der "Rahmen"(Frame):
Send$ = CHR$(Kommando%) + CHR$(Adresse%) + CHR$(Daten%) + CHR$(PruefSumme%)
'den Rahmen auf der seriellen Schnittstelle senden:
PRINT #1, Send$;
'und zurueckspringen:
RETURN
'-- Unterprogramm ENDE

Das Problem ist jetzt nur jenes, dass wenn ich Relais 1 schalten will, und 3 sekunden danach Relais 2 schalten will, dass Relais 1 wieder zurückspringt. Kann ich das irgendwie unterbinden?
mfg,
manny
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 01.02.2006, 16:15    Titel: Re: Nochmal: Relaiskarte ansteuern Antworten mit Zitat

Hallo

mannyk hat Folgendes geschrieben:

Code:

Daten% = 2      'Bit 0(Wert=1) und Bit 2(Wert=4) setzen; Relais 1,3



Wenn du Relais 3 schalten willst, solltest du auch - wie richtig angegeben ist - Daten% auf vier (für Bit 2) nicht auf zwei setzen. Dann ist aber NUR das 2. Bit gesetzt und das nullte wieder auf Null. Wenn du mehrere Relais gleichzeitig schalten willst, musst du auch beide Werte von Bit 0 und 2 addieren, also hier 1 + 4 = 5.

Daten% = 5

sollte also Relais 1 und 3 einschalten

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
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