#

ESP32: Analog Werte messen am Eingang

 

Der ESP32 hat zwei Analog Digital Umwandler und kann damit auf den meisten GPIO Pins parallel Werte einlesen.

Es kann an jedem Eingangs PIN eine Spannung  von 0 bis 3,3 Volt angelegt werden oder gemessen werden.

Die Werte werden als Integer von 0 bis 4095 eingelesen mit dem analogRead(PIN) Befehl.

 

Der Analoge Eingang muss zuerst als INPUT definiert werden

  pinMode(34, INPUT);

 

 

Im Code Beispiel lese ich die auf Pin34 und Pin35 die angelegte Spannungen ein.

intV_AI_VSS = analogRead(PIN_AI_VSS);

 

Arduino, Beispiel Code ..

 

Zum Prüfen kann man mit einer Kabelklemme die Prozessorspannung 3,3V von linken Ecke an die Pins anlegen.

 

 

Im Pin Layout findet man die Analog Pins mit ADC1_xx und ADC2_xx

 

Code im Arduino.cc Terminal

 

 

 

ESP32 Code

Lesen von Pin GPIO34 und GPIO35

Anzeige als Wert von 0 bis 4095 

Spannungsbereich 0-3,3 Volt

 

//Puls Pin4

//Analog

//ADC1: 8 channels: GPIO32 -GPIO39

//*0-3,3V ->0-4095 2^12

//====< VARIABLES >====

bool bDebug = True;

unsigned Long time_log;

 

 

//< Pulse >

String sTimeFactor = "ms";

bool bSet_F0_Loader = False;

bool bSet_F1_DisCharge = False;

 

int intV_AI_VSS = 0;

int intV_AI_VCAPA = 0;

 

//< GPIO >

int PIN_AI_VSS = 34; //*Pin GPIO34 ADC1_CH6 read(A6)

int PIN_AI_VCAPA = 35; //*Pin GPIO35 ADC1_CH7

 

int PIN_DO_F0_Load = 23; //*Pin G23

int PIN_DO_F1_DisCharge = 22; //*Pin G22

//</ GPIO >

 

//====</ VARIABLES >====

 

 

 

 

//=============< SETUP >============

void setup() {

  //--------< setup() >--------

 

  //--< GPIO >--

  //< analog >

  pinMode(PIN_AI_VSS, INPUT);

  pinMode(PIN_AI_VCAPA, INPUT);

  //</ analog >

 

  //< Digital >

  pinMode(PIN_DO_F0_Load, OUTPUT);

  digitalWrite(PIN_DO_F0_Load, LOW);    // PULS_OFF Default

  pinMode(PIN_DO_F1_DisCharge, OUTPUT);

  digitalWrite(PIN_DO_F1_DisCharge, LOW);    // PULS_OFF Default

  //</ Digital >

  //--</ GPIO >--

 

  //< debug >

  Serial.begin(115200); //*For Debug On PC Terminal

  Serial.println("\nESP32 Entlader CoreFusion Raimund Popp");

  time_log = millis();

  //</ debug >

  //--------</ setup() >--------

}

//=============</ SETUP >============

 

 

 

 

//=================< Main_Loop >================

void loop() {

  //--------< Main Loop() >--------

 

 

  //-------< READ Analog >--------

  intV_AI_VSS = analogRead(PIN_AI_VSS); //GPIO34 ADC1_CH6

  intV_AI_VCAPA = analogRead(PIN_AI_VCAPA); //GPIO35 ADC1_CH7

  //-------</ READ Analog >--------

 

 

  //----< Debug Output Blootooth > ----

  //int intVoltage=analogRead(A6);

  //Serial.println(intVoltage);

  //delay(1000);

 

  If (bDebug == True)

  {

    If (millis() > time_log + 1000)

    {

      //---< log-triggered >---

      time_log = millis(); //save New logtime

     

      //< calculate > 

      String sV_AI_VSS = String(intV_AI_VSS);

      String sV_AI_VCAPA = String(intV_AI_VCAPA);

      //</ calculate >

 

      Serial.println("VSS=" + sV_AI_VSS + " VCAPA=" + sV_AI_VCAPA); //On debug

      //delay(100);

      //---</ log-triggered >---

    }

  }

  //----< Output: BT+Serial > ----

 

 

 

  //=============</ Main_Loop >============

 

}

 

 

 

Arduino

 

 

Mobile

.