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