Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Velleman Board: Digital Channel soll 3 Sekunden länger aktiv bleiben.

Frage Entwicklung Visual Studio

Mitglied: Sudden

Sudden (Level 1) - Jetzt verbinden

05.12.2013 um 15:38 Uhr, 1149 Aufrufe, 3 Kommentare

Hallo Admins,

vielleicht kennt ihr das Experimentierboard K8055N von Velleman. Ich habe eine Schaltung aufgebaut, die mit Hilfe einer Lichtschranke eine analoge Klingel schaltet.
D.h.: wenn jemand die Lichtschranke passiert, läutet die Klingel. Jetzt habe ich aber folgendes Problem: Das Klingeln ist zu Kurz. ich möchte dass der Digitale Ausgang an dem das Relais montiert ist, welches die Klingel auslöst 3 Sekunden aktiviert ist und nicht nur die kurze Zeit in der die Lichtschranke unterbrochen ist.
Muss ich einen zweiten Timer benutzen oder so? Mir fällt wirklich nichts ein.

Hier ist der Code:

01.
Public Class Form1 
02.
    Private Declare Function OpenDevice Lib "k8055d.dll" (ByVal CardAddress As Integer) As Integer 
03.
    Private Declare Sub CloseDevice Lib "k8055d.dll" () 
04.
    Private Declare Function Version Lib "k8055d.dll" () As Integer 
05.
    Private Declare Function SearchDevices Lib "k8055d.dll" () As Integer 
06.
    Private Declare Function SetCurrentDevice Lib "k8055d.dll" (ByVal CardAddress As Integer) As Integer 
07.
    Private Declare Function ReadAnalogChannel Lib "k8055d.dll" (ByVal Channel As Integer) As Integer 
08.
    Private Declare Sub ReadAllAnalog Lib "k8055d.dll" (ByRef Data1 As Integer, ByRef Data2 As Integer) 
09.
    Private Declare Sub OutputAnalogChannel Lib "k8055d.dll" (ByVal Channel As Integer, ByVal Data As Integer) 
10.
    Private Declare Sub OutputAllAnalog Lib "k8055d.dll" (ByVal Data1 As Integer, ByVal Data2 As Integer) 
11.
    Private Declare Sub ClearAnalogChannel Lib "k8055d.dll" (ByVal Channel As Integer) 
12.
    Private Declare Sub SetAllAnalog Lib "k8055d.dll" () 
13.
    Private Declare Sub ClearAllAnalog Lib "k8055d.dll" () 
14.
    Private Declare Sub SetAnalogChannel Lib "k8055d.dll" (ByVal Channel As Integer) 
15.
    Private Declare Sub WriteAllDigital Lib "k8055d.dll" (ByVal Data As Integer) 
16.
    Private Declare Sub ClearDigitalChannel Lib "k8055d.dll" (ByVal Channel As Integer) 
17.
    Private Declare Sub ClearAllDigital Lib "k8055d.dll" () 
18.
    Private Declare Sub SetDigitalChannel Lib "k8055d.dll" (ByVal Channel As Integer) 
19.
    Private Declare Sub SetAllDigital Lib "k8055d.dll" () 
20.
    Private Declare Function ReadDigitalChannel Lib "k8055d.dll" (ByVal Channel As Integer) As Boolean 
21.
    Private Declare Function ReadAllDigital Lib "k8055d.dll" () As Integer 
22.
    Private Declare Function ReadCounter Lib "k8055d.dll" (ByVal CounterNr As Integer) As Integer 
23.
    Private Declare Sub ResetCounter Lib "k8055d.dll" (ByVal CounterNr As Integer) 
24.
    Private Declare Sub SetCounterDebounceTime Lib "k8055d.dll" (ByVal CounterNr As Integer, ByVal DebounceTime As Integer) 
25.
    Private Declare Function ReadBackDigitalOut Lib "k8055d.dll" () As Integer 
26.
    Private Declare Sub ReadBackAnalogOut Lib "k8055d.dll" (ByRef Buffer As Integer) 
27.
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
28.
        OpenDevice(0) 
29.
        Label1.Text = "Alarm scharf!" 
30.
        CheckBox2.Checked = True 
31.
 
32.
        Timer1.Enabled = True 
33.
    End Sub 
34.
 
35.
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
36.
        CloseDevice() 
37.
        Label1.Text = "Alarm unscharf!" 
38.
        CheckBox2.Checked = False 
39.
 
40.
 
41.
    End Sub 
42.
 
43.
    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged 
44.
        If CheckBox1.Checked Then SetDigitalChannel(1) Else ClearDigitalChannel(1) 
45.
    End Sub 
46.
 
47.
    Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged 
48.
 
49.
    End Sub 
50.
 
51.
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
52.
        Dim i As Integer 
53.
        i = ReadAllDigital 
54.
        Timer1.Enabled = False 
55.
        CheckBox3.Checked = i And 1 
56.
        Timer1.Enabled = True 
57.
    End Sub 
58.
 
59.
    Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged 
60.
        If CheckBox3.Checked Then SetDigitalChannel(2) Else ClearDigitalChannel(2) 
61.
    End Sub 
62.
End Class
Vilen Dank schonmal im vorraus. Bin echt gespannt wie ich das lösen kann.


Mit freundlichen Grüßen,


Sudden
Mitglied: colinardo
LÖSUNG 07.12.2013, aktualisiert 11.12.2013
Hallo Sudden,
kannst du z.B. mit einem zweiten Timer machen welcher einen Intervall von 3 Sekunden hat, und welcher in seinem Tick Event den digitalen Port ausschaltet und sich danach selber deaktiviert. Zusätzlich musst du dann aber in deinem Haupt-Timer abfragen ob der zweite Timer läuft, und nur wenn er nicht läuft soll die Klingel abgeschaltet werden können.
Der Timer heißt im Beispiel counter.
01.
Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged 
02.
        If CheckBox3.Checked Then  
03.
           if not counter.Enabled then 
04.
              SetDigitalChannel(2)  
05.
              counter.Enabled = True 
06.
           end if 
07.
        Else  
08.
           if not counter.Enabled then 
09.
              ClearDigitalChannel(2) 
10.
           end if 
11.
        End if 
12.
End Sub 
13.
 
14.
 Private Sub counter_Tick(sender As System.Object, e As System.EventArgs) Handles counter.Tick 
15.
        ClearDigitalChannel(2) 
16.
        counter.Enabled = False 
17.
 End Sub
p.s. Das Gedöns mit dem Binden an die Checked-Ereignisse der Checkboxen ist, hust..., nicht gerade optimal ....
Kenne das Board jetzt nicht, aber mach das doch alternativ so: (counter hat einen Interval von 3000ms)
01.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
02.
    OpenDevice(0) 
03.
    Label1.Text = "Alarm scharf!" 
04.
    CheckBox2.Checked = True 
05.
    Timer1.Enabled = True 
06.
End Sub 
07.
 
08.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
09.
    CloseDevice() 
10.
    Label1.Text = "Alarm unscharf!" 
11.
    CheckBox2.Checked = False 
12.
    Timer1.Enabled = False 
13.
End Sub 
14.
 
15.
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged 
16.
    If CheckBox1.Checked Then SetDigitalChannel(1) Else ClearDigitalChannel(1) 
17.
End Sub 
18.
 
19.
 
20.
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
21.
    Dim i As Integer 
22.
    i = ReadAllDigital 
23.
 
24.
    If i And 1 Then 
25.
        If Not counter.Enabled Then 
26.
            SetDigitalChannel(2) 
27.
            checkbox3.checked = True 
28.
        End If 
29.
    Else 
30.
        If Not counter.Enabled Then 
31.
            ClearDigitalChannel(2) 
32.
            checkbox3.checked = False 
33.
        End If 
34.
    End If 
35.
End Sub 
36.
 
37.
Private Sub counter_Tick(sender As System.Object, e As System.EventArgs) Handles counter.Tick 
38.
    counter.Enabled = False 
39.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: Sudden
10.12.2013 um 14:51 Uhr
Hi Uwe,

Vielen Dank für den Denkanstoß. Sitze leider noch in der Schule herum. Melde mich wenn ichs probiert habe.

Mit freundlichen Grüßen,

Sudden
Bitte warten ..
Mitglied: Sudden
11.12.2013 um 11:09 Uhr
Hi Uwe,

habs verstanden. Vielen, vielen Dank!

Mit freundlichen Grüßen,

Sudden
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
SAN, NAS, DAS
NetApp FAS3240 + DS14MK4 + DS14MK2 Fibre Channel - Installation (4)

Frage von sunny-ko zum Thema SAN, NAS, DAS ...

Windows Server
GPO aktiv trotz Deaktivierung (7)

Frage von XxDarkAngelxX zum Thema Windows Server ...

Firewall
PfSense auf soekris-Board installieren (2)

Link von Kuemmel zum Thema Firewall ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...