From 56e02f956b47b1131377f7d7e1d23797f4154e65 Mon Sep 17 00:00:00 2001 From: elral <3263285+elral@users.noreply.github.com> Date: Thu, 17 Oct 2024 15:39:52 +0200 Subject: [PATCH 1/2] correct pin assignement for A6 and A7 for analog read --- src/MF_Analog/MFAnalog.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/MF_Analog/MFAnalog.cpp b/src/MF_Analog/MFAnalog.cpp index 6fb31cba..94aef074 100644 --- a/src/MF_Analog/MFAnalog.cpp +++ b/src/MF_Analog/MFAnalog.cpp @@ -18,6 +18,12 @@ void MFAnalog::attach(uint8_t pin, const char *name, uint8_t sensitivity) _sensitivity = sensitivity; _pin = pin; _name = name; +#if defined(ARDUINO_AVR_PROMICRO16) + if (_pin == 4) + _pin = A6; + else if (_pin == 6) + _pin = A7; +#endif pinMode(_pin, INPUT_PULLUP); // set pin to input. Could use OUTPUT for analog, but shows the intention :-) // Fill averaging buffers with initial reading for (uint8_t i = 0; i < ADC_MAX_AVERAGE; i++) { From 924db15b7f9d2cfeba91805507cad8e7942e950c Mon Sep 17 00:00:00 2001 From: elral <3263285+elral@users.noreply.github.com> Date: Fri, 18 Oct 2024 08:15:02 +0200 Subject: [PATCH 2/2] add comment for required changes --- src/MF_Analog/MFAnalog.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/MF_Analog/MFAnalog.cpp b/src/MF_Analog/MFAnalog.cpp index 94aef074..72c34953 100644 --- a/src/MF_Analog/MFAnalog.cpp +++ b/src/MF_Analog/MFAnalog.cpp @@ -19,6 +19,9 @@ void MFAnalog::attach(uint8_t pin, const char *name, uint8_t sensitivity) _pin = pin; _name = name; #if defined(ARDUINO_AVR_PROMICRO16) + // ProMicro has a special pin assignment for analog pins + // therefore reading from A6 and A7 does not work + // via "digital" pins. See also pins_arduino.h if (_pin == 4) _pin = A6; else if (_pin == 6)