Bonjour, j'ai mon pi pico2, je fais une acquisition de mesure sur l'entrée analogique, mais j'ai du mal à comprendre comment ce code fonctionne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
        // 12-bit conversion, assume max value == ADC_VREF == 3.3 V
        const float conversion_factor = 3.3f / (1 << 12);
        uint16_t result = adc_read();
        printf("Raw value: 0x%03x, voltage: %f V\n", result,  conversion_factor);
        gpio_put(LED_PIN, 1);
        printf("Raw value: 0x%03x, voltage: %f V\n", result, result * conversion_factor);
comment on obtient 0.806 ? c'est la résolution du convertisseur ?

si j'ai un convertisseur 12 bit et que je suppose que j'ai un mot de 11bit pour définir la tension j'aurais une résolution
de 0.0016v par résolution (3.3V/2047), je suppose que le bit du poids le plus fort sert à déterminer s'il est négatif ou positif

avec mon multimetre je mesures à la tension d'entrée une valeur de 0.79V ce qui ne correspond pas au resultat du moniteur .
comment on comprend ce 3.3f ? pour le 1<<12 je suppose que c'est à cause d'une valeur signé , qu'on travail sur un signal qui peut être positif et négatif.
le Raw Valeur c'est la valeur brut récupérer dans le registre du convertisseur ou c'est la l'adresse ou se trouve le registre du résultat lu ?

printf("Raw value: 0x%03x, voltage: %f V\n", result, conversion_factor)


Nom : mesure_courant.png
Affichages : 136
Taille : 106,8 Ko
merci d'avance pour la réponse