Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

ESP32: Analog Werte messen am Eingang als Spannung

18.06.2021 (πŸ‘3154)

Video Tutorial



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