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)
Partager