Outils pour utilisateurs

Outils du site


dev:iot:riot:esp32:utiliser_convertisseur_analogique_numerique

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
dev:iot:riot:esp32:utiliser_convertisseur_analogique_numerique [2021/04/18 16:28] 77.192.232.26dev:iot:riot:esp32:utiliser_convertisseur_analogique_numerique [2021/04/18 16:49] (Version actuelle) 77.192.232.26
Ligne 48: Ligne 48:
  
 ===== Exemple ===== ===== Exemple =====
 +
 +==== Montage ====
  
 On branche un potentiomètre sur le GPIO33 du d'une carte de type ESP32-DEVKIT. On cherche ici à afficher régulièrement sa valeur sur le port série. On branche un potentiomètre sur le GPIO33 du d'une carte de type ESP32-DEVKIT. On cherche ici à afficher régulièrement sa valeur sur le port série.
 +
 +Note: Note that the call to adc_init is needed for the reads to work. I remeber that the ESP8266 had a 1.0 V reference, maybe this is also the case here?
 +
 +==== Code ====
  
 Déclarer l'utilisation de la fonctionnalité periph_adc dans le Makefile Déclarer l'utilisation de la fonctionnalité periph_adc dans le Makefile
Ligne 84: Ligne 90:
 <code c main.c> <code c main.c>
 #include <stdio.h> #include <stdio.h>
-  +
 #include "xtimer.h" #include "xtimer.h"
 #include "periph/adc.h" #include "periph/adc.h"
-  +
 #define RES ADC_RES_10BIT #define RES ADC_RES_10BIT
 #define ADC_GPIO33 ADC_LINE(11) #define ADC_GPIO33 ADC_LINE(11)
-  +
 int main(void) int main(void)
 { {
-    int sample = 0; +        int sample = 0; 
-   + 
-    printf("%u lignes detectees. \n\r", ADC_NUMOF); +        printf("%u lignes detectees. \n\r", ADC_NUMOF); 
-    //initialisation de l'entrée ADC +        //initialisation de l'entrée ADC 
-    if(adc_init(ADC_GPIO33) < 0 ) {  +        if(adc_init(ADC_GPIO33) < 0 ) { 
-        printf("Echec initalisation de l'rntree ADC n° %u \n\r", ADC_GPIO33); +                printf("Echec initalisation de l'entree ADC n° %u \n\r", ADC_GPIO33);
-    } else { +
-        printf("Ligne n° %u active\n\r", ADC_GPIO33); +
-    }    +
-   +
-    while(1) +
-    {    +
-       +
-        //lecture du CAN +
-        sample = adc_sample(ADC_LINE(ADC_GPIO33), RES); +
-        if (sample < 0) { +
-            printf("ADC_ADC_GPIO33(%u): selected resolution not applicable\n\r", ADC_GPIO33);+
         } else {         } else {
-            printf("ADC_ADC_GPIO33(%u): %i\n\r", ADC_GPIO33, sample); +                printf("Ligne n° %u active\n\r", ADC_GPIO33); 
-           +        } 
-   + 
-        xtimer_sleep(2); +        while(1) 
-       +        { 
-   +         
-    return 0;+                //lecture du CAN 
 +                sample = adc_sample(ADC_GPIO33, RES); 
 +                if (sample < 0) { 
 +                        printf("Resolution %u invalide pour la ligne %u \n\r", RES, ADC_GPIO33); 
 +                } else { 
 +                        printf("ADC LINE (%u): %i\n\r", ADC_GPIO33, sample); 
 +                
 + 
 +                xtimer_sleep(2); 
 +        
 + 
 +        return 0;
 } }
 </code> </code>
dev/iot/riot/esp32/utiliser_convertisseur_analogique_numerique.1618763291.txt.gz · Dernière modification : 2021/04/18 16:28 de 77.192.232.26