Top-Themen

Aktuelle Themen (A bis Z)

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.

Mitglied: Sudden

Sudden (Level 1) - Jetzt verbinden

05.12.2013 um 15:38 Uhr, 1258 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.


MfG,


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.

MfG,

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

habs verstanden. Vielen, vielen Dank!

MfG,

Sudden
Bitte warten ..
Ähnliche Inhalte
Grafikkarten & Monitore

3 Monitore mit Matrox TripleHead2Go Digital Edition

gelöst Frage von Welly92Grafikkarten & Monitore7 Kommentare

Hallo liebe Gemeinde, leider bin ich in Sachen Grafik & Co absoluter Neuling. ich habe an meinem Schreibtisch drei ...

Hyper-V

Hyper V Failovercluster Verstaendnisproblem Aktiv Aktiv bzw aktiv Passiv

Frage von moekewaHyper-V4 Kommentare

Hallo, ich habe da leider ein kleines Verständnisproblem bei Hyper V Failoverclustering. ich habe es jetzt wie folgt verstanden: ...

Windows Server

Dateiname zu lang

gelöst Frage von nooneelsebutmeWindows Server3 Kommentare

Hallo, habe Daten von einem Server 2008 R2 auf einen Server 2016 ES per robocopy migriert. Hat alles Problemlos ...

SAN, NAS, DAS

Fibre Channel SAN overload?

gelöst Frage von VincorSAN, NAS, DAS8 Kommentare

Guten Tag, ich plane unsere 2 VM-Host Server über Fibrechannel an unser SAN Storage anzuschließen. Pro Host Server habe ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 2 TagenDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 3 TagenSicherheit2 Kommentare

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 3 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 4 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
Hyper-V
Hyper-V Manager startet, jedoch keine VM
Frage von NaleorHyper-V14 Kommentare

Hallo zusammen, auf meinem Windows 10 (Build 1703) Notebook von der Arbeit scheint Hyper-V plötzliche nicht mehr zu funktionieren. ...

Windows Server
Sonntagsfrage: Welchen Sinn seht Ihr noch im Server 2019 Essentials
Frage von ashnodWindows Server13 Kommentare

Guten Morgen, ich habe gestern den Windows Server 2019 Essentials als Trial in einer VM installiert um mir das ...

DNS
50 EUR für Telekom-, Unitymedia- und Vodafone-Kunden
Frage von Zorro1199DNS13 Kommentare

Hallo zusammen, wie evaluieren gerade das korrekte Einhalten von DNS-TTLs durch verschiedene Provider. Aktuell suchen wir noch Kunden der ...

Windows Server
Windows 2012 R2 - Skript um Druckerkonfiguration auszulesen und zu setzen
Frage von Der-PhilWindows Server9 Kommentare

Hallo! Kennt ihr eine Möglichkeit, per Skript die Konfiguration eines Druckers auszulesen und auf einen anderen anzuwenden? Hintergrund: Ich ...