Thermomètre ->codage sortie RS232 ?
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Thermomètre ->codage sortie RS232 ?



  1. #1
    squonk87

    Thermomètre ->codage sortie RS232 ?


    ------

    Bonsoir
    Je voudrais récupérer les données d'un
    thermomètre avec une sortie RS232.
    (modèle Selectronic avec luxmètre, sonomètre..)
    En quickbasic, ça donne :
    OPEN "COM1:2400,N,8,1,RS,DS,CD" FOR RANDOM AS #1
    a$=input$(14,#1)
    Pour une température fixée, le thermomètre
    envoie bien une chaine de caractères qui se repète mais
    c'est incompréhensible.
    j'ai fait la correspondance entre les 2 premiers
    chiffres affichés par le thermomètre et les codes ASCII des 2
    premiers caractères de a$ :
    12 : 69/91
    13 : 65/95
    14 : 66/87
    15 : 67/94
    16 : 71/94
    17 : 65/85
    18 : 71/ 95
    19 : 67/95
    20 : 71/93
    21 : 64/85
    22 : 69/91
    etc...
    La correspondance entre la valeur
    affichée et les codes ASCII n'est pas
    évidente !

    Quel est le type de codage effectué
    en sortie RS232 ?

    Merci d'avance.

    -----

  2. #2
    DAUDET78

    Re : Thermomètre ->codage sortie RS232 ?

    Bonjour squonk87 et bienvenue sur FUTURA
    Citation Envoyé par squonk87 Voir le message
    Je voudrais récupérer les données d'un thermomètre avec une sortie RS232.
    Donne le lien WEB sur la notice du thermomètre, tu dois avoir le format de sortie dans la doc
    J'aime pas le Grec

  3. #3
    jyvoipabo

    Re : Thermomètre ->codage sortie RS232 ?

    Salut,

    Les valeurs 12 et 22 retournent la même valeur ASCII ce qui fait une correspondance qui n'est pas bi univoque.

    Il doit y avoir un bug dans l' OPEN "COM1:2400,N,8,1,RS,DS,CD" FOR RANDOM AS #1
    Pour moi il y a des paramètres en trop.
    Mais j'ai oublié le qb depuis longtemps.

    JP

  4. #4
    freepicbasic

    Re : Thermomètre ->codage sortie RS232 ?

    a$=input$(14,#1)
    ça lit 14 caractères !

    et comment on synchronise ?
    s'il rate un char il est désynchronisé à vie ...

    il faut la doc !
    ou au moins un relevé de ce qui sort.
    A+, pat

  5. A voir en vidéo sur Futura
  6. #5
    binome18

    Re : Thermomètre ->codage sortie RS232 ?

    Bonjour,
    si tu as une sortie RS232 il te faut un MAX232
    http://fr.farnell.com/jsp/search/bro...atchallpartial
    bon courage

  7. #6
    squonk87

    Re : Thermomètre ->codage sortie RS232 ?

    C'est vrai, 1 fois sur 10, quand je relance
    le programme en basic, la sequence de caractères change
    Il doit y avoir des caractères de contrôle en début
    de la séquence de 14 caracteres.

    Ce type de codage doit être le même que le multimetre
    http://www.selectronic.fr/article.as...r=11.5772-9999 car
    mon luxmetre de la même marque
    semble utiliser le même programme sous windows.

    La doc fournie est très succinte et n'explique pas le codage.


    Citation Envoyé par freepicbasic Voir le message
    a$=input$(14,#1)
    ça lit 14 caractères !

    et comment on synchronise ?
    s'il rate un char il est désynchronisé à vie ...

    il faut la doc !
    ou au moins un relevé de ce qui sort.

  8. #7
    squonk87

    Re : Thermomètre ->codage sortie RS232 ?

    Voici les codes ASCII avec l'affichage correspondant :
    022,4 °C : 23 39 61 69 91 101 123 138 151 168 176 192 216 226
    026,9 °C : 23 39 61 69 91 103 126 139 159 168 176 192 216 226
    025,5 °C : 23 39 61 69 91 99 126 139 158 168 176 192 216 226
    025,2 °C : 23 39 61 69 91 99 126 141 155 168 176 192 216 226
    025,1 °C : 23 39 61 69 91 99 126 136 149 168 176 192 216 226
    036,5 °C : 23 39 61 65 95 103 126 139 158 168 176 192 216 226

  9. #8
    DAUDET78

    Re : Thermomètre ->codage sortie RS232 ?

    Dans la notice, ils parlent d'un mode d'emploi du RS232 sur une disquette ?


    et tu as le software en download ici http://www.velleman.eu/distributor/s...?code=DVM345DI
    Dernière modification par DAUDET78 ; 06/10/2010 à 05h28.
    J'aime pas le Grec

  10. #9
    squonk87

    Re : Thermomètre ->codage sortie RS232 ?

    Citation Envoyé par DAUDET78 Voir le message
    Dans la notice, ils parlent d'un mode d'emploi du RS232 sur une disquette ?


    et tu as le software en download ici http://www.velleman.eu/distributor/s...?code=DVM345DI

    Le programme est peu documenté et on ne peut
    pas exporter les données sous ascii

    Après quelques heures d'essais, j'ai finalement réussi à
    obtenir ce que je voulais avec un programme rapidement
    fait en bon vieux quick basic (mais très lourd).
    j'ai toujours pas compris le codage effectué mais
    ca marche avec un vieux PC sous Dos :

    Temps (s), temperature (øC)
    .2 021.1
    .5 021.1
    .8 021.1
    1.2 021.2
    1.5 021.2
    1.9 021.2
    2.3 021.2
    2.6 021.2

    Si ça peut interresser quelqun, voici mon source :


    ****************************** *************************

    CLOSE
    CLS

    5 REM ***********ESSAI DU MULTIMETRE THERMOMETRE LUXMETRE..SEL-2232 **************

    REM : ouverture du port de communication
    10 OPEN "COM1:2400,N,8,1,RS,CS,DS, CD" FOR RANDOM AS #1
    OPEN "mesure.txt" FOR OUTPUT AS #2: REM Fichier de sortie
    PRINT "Temps (s), temp‚rature (øC)"
    PRINT #2, "Temps (s), temperature (°C)"


    t1 = TIMER: REM nombre de secondes apres minuit


    30 key$ = INKEY$: REM pour stopper, touche Echap
    IF key$ = CHR$(27) THEN GOTO 70

    40 in$ = INPUT$(14, #1): REM longueur de chaine 14 caracteres

    REM test si le debut de chaine est OK
    test = ASC(LEFT$(in$, 1))
    IF test > 27 THEN
    REM acquisition d'1 caractere pour decaler le debut de chaine
    in$ = INPUT$(1, #1)
    CLOSE
    GOTO 10: REM bug, on reprend tout depuis le debut
    END IF


    GOTO jump
    REM : test pour voir les code ascii a l'‚cran
    FOR n = 1 TO 14
    PRINT ASC(MID$(in$, n, 1));
    PRINT #2, ASC(MID$(in$, n, 1));
    NEXT

    PRINT #2, "--------"

    jump:


    REM : extraction de 4 paires de caractŠres ASCII
    b$ = MID$(in$, 2, 2)
    c$ = MID$(in$, 4, 2)
    d$ = MID$(in$, 6, 2)
    e$ = MID$(in$, 8, 2)



    REM : 1er chiffre
    a0xx$ = CHR$(39) + CHR$(61)
    an0xx$ = CHR$(47) + CHR$(61): REM temperature negative
    a1xx$ = CHR$(32) + CHR$(53)
    a2xx$ = CHR$(37) + CHR$(59)
    a3xx$ = CHR$(33) + CHR$(63)

    REM : 2e chiffre
    a0x$ = CHR$(71) + CHR$(93)
    a1x$ = CHR$(64) + CHR$(85)
    a2x$ = CHR$(69) + CHR$(91)
    a3x$ = CHR$(65) + CHR$(95)
    a4x$ = CHR$(66) + CHR$(87)
    a5x$ = CHR$(67) + CHR$(94)
    a6x$ = CHR$(71) + CHR$(94)
    a7x$ = CHR$(65) + CHR$(85)
    a8x$ = CHR$(71) + CHR$(95)
    a9x$ = CHR$(67) + CHR$(95)

    REM : 3e chiffre
    ax0$ = CHR$(103) + CHR$(125)
    ax1$ = CHR$(96) + CHR$(117)
    ax2$ = CHR$(101) + CHR$(123)
    ax3$ = CHR$(97) + CHR$(127)
    ax4$ = CHR$(98) + CHR$(119)
    ax5$ = CHR$(99) + CHR$(126)
    ax6$ = CHR$(103) + CHR$(126)
    ax7$ = CHR$(97) + CHR$(117)
    ax8$ = CHR$(103) + CHR$(127)
    ax9$ = CHR$(99) + CHR$(127)

    REM : 4e chiffre sans point decimal
    axx0$ = CHR$(135) + CHR$(157)
    axx1$ = CHR$(128) + CHR$(149)
    axx2$ = CHR$(133) + CHR$(155)
    axx3$ = CHR$(129) + CHR$(159)
    axx4$ = CHR$(130) + CHR$(151)
    axx5$ = CHR$(131) + CHR$(158)
    axx6$ = CHR$(135) + CHR$(158)
    axx7$ = CHR$(129) + CHR$(149)
    axx8$ = CHR$(135) + CHR$(159)
    axx9$ = CHR$(131) + CHR$(159)

    REM : 4e chiffre avec point decimal
    axx.0$ = CHR$(143) + CHR$(157)
    axx.1$ = CHR$(136) + CHR$(149)
    axx.2$ = CHR$(141) + CHR$(155)
    axx.3$ = CHR$(137) + CHR$(159)
    axx.4$ = CHR$(138) + CHR$(151)
    axx.5$ = CHR$(139) + CHR$(158)
    axx.6$ = CHR$(143) + CHR$(158)
    axx.7$ = CHR$(137) + CHR$(149)
    axx.8$ = CHR$(143) + CHR$(159)
    axx.9$ = CHR$(139) + CHR$(159)

    REM : construction de la valeur affichee

    REM : premier digit 3 maxi
    SELECT CASE b$
    CASE a0xx$
    z$ = "0"
    CASE an0xx$
    z$ = "-0"
    CASE a1xx$
    z$ = "1"
    CASE a2xx$
    z$ = "2"
    CASE a3xx$
    z$ = "3"
    END SELECT


    REM : 2e digit
    SELECT CASE c$
    CASE a0x$
    z$ = z$ + "0"
    CASE a1x$
    z$ = z$ + "1"
    CASE a2x$
    z$ = z$ + "2"
    CASE a3x$
    z$ = z$ + "3"
    CASE a4x$
    z$ = z$ + "4"
    CASE a5x$
    z$ = z$ + "5"
    CASE a6x$
    z$ = z$ + "6"
    CASE a7x$
    z$ = z$ + "7"
    CASE a8x$
    z$ = z$ + "8"
    CASE a9x$
    z$ = z$ + "9"
    END SELECT

    REM : 3e digit
    SELECT CASE d$
    CASE ax0$
    z$ = z$ + "0"
    CASE ax1$
    z$ = z$ + "1"
    CASE ax2$
    z$ = z$ + "2"
    CASE ax3$
    z$ = z$ + "3"
    CASE ax4$
    z$ = z$ + "4"
    CASE ax5$
    z$ = z$ + "5"
    CASE ax6$
    z$ = z$ + "6"
    CASE ax7$
    z$ = z$ + "7"
    CASE ax8$
    z$ = z$ + "8"
    CASE ax9$
    z$ = z$ + "9"
    END SELECT


    REM : 4e digit
    SELECT CASE e$
    CASE axx0$
    z$ = z$ + "0"
    CASE axx1$
    z$ = z$ + "1"
    CASE axx2$
    z$ = z$ + "2"
    CASE axx3$
    z$ = z$ + "3"
    CASE axx4$
    z$ = z$ + "4"
    CASE axx5$
    z$ = z$ + "5"
    CASE axx6$
    z$ = z$ + "6"
    CASE axx7$
    z$ = z$ + "7"
    CASE axx8$
    z$ = z$ + "8"
    CASE axx9$
    z$ = z$ + "9"
    CASE axx.0$
    z$ = z$ + ".0"
    CASE axx.1$
    z$ = z$ + ".1"
    CASE axx.2$
    z$ = z$ + ".2"
    CASE axx.3$
    z$ = z$ + ".3"
    CASE axx.4$
    z$ = z$ + ".4"
    CASE axx.5$
    z$ = z$ + ".5"
    CASE axx.6$
    z$ = z$ + ".6"
    CASE axx.7$
    z$ = z$ + ".7"
    CASE axx.8$
    z$ = z$ + ".8"
    CASE axx.9$
    z$ = z$ + ".9"
    END SELECT

    REM : calcul du temps t depuis le lancement de l'acquisition
    t = INT((TIMER - t1) * 10) / 10: REM arrondi au 1/10 de s
    PRINT t, z$
    PRINT #2, t, z$: REM ecriture temps/temperature dans le fichier


    60 GOTO 30: REM Boucle

    70 END
    CLOSE

Discussions similaires

  1. Tension de sortie max d'une carte son (sortie casque)
    Par invite37c34b78 dans le forum Matériel - Hardware
    Réponses: 0
    Dernier message: 20/04/2010, 14h40
  2. DAC sortie courant vs sortie tension / ADC SINAD
    Par gold5 dans le forum Électronique
    Réponses: 4
    Dernier message: 11/09/2009, 11h49
  3. Thermomètre à mercure VS thermomètre à gaz parfait
    Par invitef1881787 dans le forum Physique
    Réponses: 7
    Dernier message: 14/08/2008, 15h21
  4. Débit d'eau sortie à la sortie d'un Y
    Par yiei dans le forum Physique
    Réponses: 4
    Dernier message: 24/01/2008, 13h38
  5. tension de sortie du port serie rs232
    Par invitee335123b dans le forum Électronique
    Réponses: 13
    Dernier message: 19/02/2006, 20h52
Découvrez nos comparatifs produits sur l'informatique et les technologies.