Source pour la carte VM140 (K8061 interface PC) de Velleman , permet d'exploiter les entrées sorties analogiques de la carte, cette source est un petit exemple destiné à aider les débutants.
Ne pas oublier de copier les fichiers : mpusbapi.dll et K8061.dll (fournis avec la carte)
dans le répertoire de votre source vb : "nom de la source" / bin / debug
Source / Exemple :
Option Strict Off
Option Explicit On
Friend Class K8061
Inherits System.Windows.Forms.Form
Dim bDoNothing As Boolean
Dim shtCount As Short
Dim intCardNumber As Integer
Private Declare Function OpenDevice Lib "k8061.dll" () As Integer
Private Declare Sub CloseDevices Lib "k8061.dll" ()
Private Declare Function ReadAnalogChannel Lib "k8061.dll" (ByVal intCardNumber As Integer, ByVal Channel As Integer) As Integer
Private Declare Function PowerGood Lib "k8061.dll" (ByVal intCardNumber As Integer) As Boolean
Private Declare Function Connected Lib "k8061.dll" (ByVal intCardNumber As Integer) As Boolean
Private Declare Sub ReadVersion Lib "k8061.dll" (ByVal intCardNumber As Integer, ByRef Buffer As Integer)
Private Declare Sub ReadAllAnalog Lib "k8061.dll" (ByVal intCardNumber As Integer, ByRef Buffer As Integer)
Private Declare Sub OutputAnalogChannel Lib "k8061.dll" (ByVal intCardNumber As Integer, ByVal Channel As Integer, ByVal Data As Integer)
Private Declare Sub OutputAllAnalog Lib "k8061.dll" (ByVal intCardNumber As Integer, ByRef Buffer As Integer)
Private Declare Sub ClearAnalogChannel Lib "k8061.dll" (ByVal intCardNumber As Integer, ByVal Channel As Integer)
Private Declare Sub SetAllAnalog Lib "k8061.dll" (ByVal intCardNumber As Integer)
Private Declare Sub ClearAllAnalog Lib "k8061.dll" (ByVal intCardNumber As Integer)
Private Declare Sub SetAnalogChannel Lib "k8061.dll" (ByVal intCardNumber As Integer, ByVal Channel As Integer)
Private Declare Sub OutputAllDigital Lib "k8061.dll" (ByVal intCardNumber As Integer, ByVal Data As Integer)
Private Declare Sub ClearDigitalChannel Lib "k8061.dll" (ByVal intCardNumber As Integer, ByVal Channel As Integer)
Private Declare Sub ClearAllDigital Lib "k8061.dll" (ByVal intCardNumber As Integer)
Private Declare Sub SetDigitalChannel Lib "k8061.dll" (ByVal intCardNumber As Integer, ByVal Channel As Integer)
Private Declare Sub SetAllDigital Lib "k8061.dll" (ByVal intCardNumber As Integer)
Private Declare Function ReadDigitalChannel Lib "k8061.dll" (ByVal intCardNumber As Integer, ByVal Channel As Integer) As Boolean
Private Declare Function ReadAllDigital Lib "k8061.dll" (ByVal intCardNumber As Integer) As Integer
Private Declare Sub OutputPWM Lib "k8061.dll" (ByVal intCardNumber As Integer, ByVal Data As Integer)
Private Declare Sub Version Lib "k8061.dll" ()
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'on connect les deux cartes
Dim intCard As Integer
intCard = 0
intCard = OpenDevice
Dim intCard1 As Integer
intCard = 1
intCard1 = OpenDevice
'demare le timer qui lit l'entrée analogique
Timer1.Interval = 500
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'ENTREE ANALOGIQUE:
'lit l'entrée analogique et affiche la tension en volt
Dim v As Integer
ReadAnalogChannel(0, 1)
v = ReadAnalogChannel(0, 1)
TrackBar1.Value = v
Label2.Text = v / 100
'pour avoir la valeur de l'entrée analogique en volt on divise par 100 :
'les entrées analogiques on des résolutions de 10 bit donc 1024 pas,
'sur la carte les jumpers de tolerance sont réglés sur 10 V max,
'10/1024 = 0,01 (à peu prés!), donc 1 pas de l'entrée analogique = 0,01 V
'multiplier par 0,01 et egale a diviser par 100
'SORTIE ANALOGIQUE:
'on fait varier la tension de la sortie analogique en agissant
'sur le trackbar dont la valeur max doit etre 256
'car les sortie analogiques font 8 bit donc 256 pas
Dim v2 As Integer
v2 = TrackBar2.Value
OutputAnalogChannel(0, 1, (v2))
'affiche la tension en volt
Label5.Text = v2 / 50
'pour avoir la valeur de la sortie analogique en volt on divise par 50 :
'les sorties analogiques on des résolutions de 8 bit donc 256 pas,
'sur la carte les jumpers de tolerance sont réglés sur 5 V max,
'5/256 = 0,02 (à peu prés!), donc 1 pas de l'entrée analogique = 0,02 V
'multiplier par 0,02 et egale à diviser par 50
End Sub
End Class
Conclusion :
Pour les débutants qui bataillent avec leurs carte interface PC , je travail sur un petit site qui regroupe des exemples d'applications, des schémas et des sources pour K8000 et K8061:
http://sites.google.com/site/brikop/
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.