IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Raspberry Pi Discussion :

Utilisation du CAN mcp3202


Sujet :

Raspberry Pi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2020
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2020
    Messages : 29
    Par défaut Utilisation du CAN mcp3202
    Bonjour a tous
    je profite de mon temps libre , maintenant a la retraite pour m’initier a python et Raspberry.
    Je suis aujourd'hui devant un problème :
    je me sers de l'excellent document de https://deusyss.developpez.com/tutor...Gpio/#LIII-C-5
    pour essayer de mettre en œuvre un CAN mcp3202, pour cela je m'inspire très fortement du listing d'Alexandre Galode, Mais je ne parviens a lire que sur ch0 , quand j'envoie ma tension a lire en ch1 , j'ai toujours 0 V . pour le cablage j'utilise cette carte http://https://www.amazon.fr/gp/prod...?ie=UTF8&psc=1
    Pouvez vous me dire ou je déconne . Merci

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    #
    #  test_CAN_2.py
    #  
    #  Copyright 2020  <pi@raspberrypi>
    #  
    # source devellopez.com Raspberry et le port GPIO par Alexandre Galode
    # et https://scruss.com/blog/2013/02/02/simple-adc-with-the-raspberry-pi/
     
    import spidev 
    import time
     
     
    def lire_analog(puce_spi , entree_analog ):#entrée_analog = cho :0  ou ch1 :1
        liaison = spidev.SpiDev(puce_spi ,entree_analog) 
     
        liaison.max_speed_hz = 300000 # en Hertz 
     
        # Initialisation des parametres de lecture
        # (cf datasheet pour les curieux) mcp3202mcp3202
     
        if entree_analog == 0: 
            value = 128 
        else: 
            value = 160 
        to_send = [value, 0] 
        print (value)
        # Lecture 
        rd_octets = liaison.xfer2(to_send) 
     
        # La reponse arrive sur deux octets 
        msb = rd_octets[0] 
     
        lsb = rd_octets[1] 
     
        value = (msb << 8) + lsb 
     
        calcul = 2 * (value * 3.3) / 4096.0 
     
        return calcul 
     
     
     
    while True:
        entree_analog = 1  # 0 pour lire en ch0   pour lire en ch1
        puce_spi = 0
     
        calcul = lire_analog(puce_spi , entree_analog )
     
        print ("{:2.3f}". format(calcul))
     
        time.sleep(2)

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 206
    Billets dans le blog
    48
    Par défaut
    Bonjour,

    Très rapidement, ce ne serait pas 192 au lieu de 160 ?

  3. #3
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2020
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2020
    Messages : 29
    Par défaut
    Citation Envoyé par f-leb Voir le message

    Très rapidement, ce ne serait pas 192 au lieu de 160 ?
    bonjour f-leb
    hélas non, même en changeant 160 par 192, e résultat est toujours 0.000.
    j'en suis venu a douter du mcp3202, je l'ai donc changé et c'est pas mieux.

    Voici le message que j'ai , quand j'essaie de capturer une tension sur ch1 Nom : Capture d’écran du 2020-11-23 17-57-54.png
Affichages : 490
Taille : 31,9 Ko

    je change juste la valeur de : entree_analog dans mon programme et bien-sur j'applique une tension en ch1

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 206
    Billets dans le blog
    48
    Par défaut
    Alors là, il faut fouiller les datasheets car quelque chose m'échappe...

    Avec le MCP3202, il y a 3 octets échangés d'après la doc :
    Nom : trameSPI_mcp3202.PNG
Affichages : 464
Taille : 85,7 Ko

    Dans le programme Python, il n'y a que deux octets...
    A moins qu'il y ait confusion avec le MCP3002...
    Nom : trameSPI_mcp3002.PNG
Affichages : 482
Taille : 81,4 Ko

    Mais dans ce cas je ne vois pas d'où viennent ces valeurs de 128 ou 160...

    Je cherche

  5. #5
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 206
    Billets dans le blog
    48
    Par défaut
    Le lien amazon de ton premier message indique une erreur, est-on sûr d'avoir un MCP3202 et non un MCP3002 ou autre ?

  6. #6
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2020
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2020
    Messages : 29
    Par défaut
    pour moi 128 initialise bien Ch0 et comme tu disais 192 semblerait correcte pour initialiser ch1 , mais j'ai tester le prog d'Alexandre Galode sans changer une ligne et ça fonctionne sur ch1 avec init a 160 ???.
    Peut être que Alexandre Passera par la un de ces jours et nous éclairerait

  7. #7
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 206
    Billets dans le blog
    48
    Par défaut
    Citation Envoyé par sergio1958 Voir le message
    ... mais j'ai tester le prog d'Alexandre Galode sans changer une ligne et ça fonctionne sur ch1 avec init a 160 ??
    Et maintenant tu nous dis que cela fonctionne aussi sur ch1 avec le programme initial. Heu... problème résolu ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] Utiliser 'bold' dans can.create_text
    Par Invité dans le forum Tkinter
    Réponses: 1
    Dernier message: 23/05/2015, 13h58
  2. Réponses: 0
    Dernier message: 25/07/2014, 15h42
  3. [CR 2008] Utilisation de la propriété can growl sur un champ
    Par arnfi1987 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 05/12/2012, 09h34
  4. Net::SSH::Perl Can't bind socket to port 1023: Adresse déjà utilisée
    Par sohnic dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 27/11/2006, 21h32
  5. utiliser DBI (Can't locate DBI.pm)
    Par milka dans le forum SGBD
    Réponses: 5
    Dernier message: 12/08/2005, 19h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo