UNO WiFi Rev2: Disconnected digital input still triggering ? [SOLVED]

I have been having an issue with a particular digital input regarding the occurrence of
phantom change of states despite knowing the physical contact input was not changing.

const int tnk_wtr_level_switch = 2;

pinMode (tnk_wtr_level_switch, INPUT_PULLUP);

tnk_wtr_level_state = digitalRead(tnk_wtr_level_switch);

I decided to completely remove the switch contact wiring from the input. On the 2nd day
with the input unterminated I did receive a low tank water level alarm.
Would it be advisable to change the pin mode to INPUT and attach a 10k ohm resistor?
What other options are available to try to stabilize the input?

thanks....

Corrected my post! thanks....

The code was correct. It will not compile with the underscore missing.
I just entered it wrong in the post.

A stronger external pullup resistor can certainly be tried.

I think the internl resistor is around 20K IIRC.
I can daisy some resistors together to get over that.

Thought maybe trying a spare input in case the one
being used (DI2) is possibly flaky.

Update to issue-

I discovered that when this particular input does indicate a change of state that initating
a "system reset", which is triggered by an assigned pushbutton input, that this low level wtr alarm does not actually clear and the input go back to "normal". Only after activating the UNO's onboard reset (white pushbutton) does the phantom alarm actually go away.

Does this indicate something is more than likely hanging up in the code/processor?
The program is still running evidenced by temp changes, the RTC (clock) updating
on the webpage, and the onboard yellow LED pulsing.

I had a digitalRead output of the problematic input printed to the Serial Monitor. The first digit is the value returned from the read. But what is curious is there is a 2nd digit. If you read down vertically the 2nd digit produces information. What is this all about?

Code Segment:

  tnk_wtr_level_state = digitalRead(tnk_wtr_level_switch);
  Serial.println();
  Serial.print("tnk_wtr_level_state: ");
  Serial.print(tnk_wtr_level_state);
  delay(2000);

Serial Monitor:

tnk_wtr_level_state: 1:
tnk_wtr_level_state: 13
tnk_wtr_level_state: 18
tnk_wtr_level_state: 1:
tnk_wtr_level_state: 11
tnk_wtr_level_state: 12
tnk_wtr_level_state: 1 
tnk_wtr_level_state: 1G
tnk_wtr_level_state: 1M
tnk_wtr_level_state: 1T
tnk_wtr_level_state: 1
tnk_wtr_level_state: 1
tnk_wtr_level_state: 1t
tnk_wtr_level_state: 1y
tnk_wtr_level_state: 1p
tnk_wtr_level_state: 1e
tnk_wtr_level_state: 1:
tnk_wtr_level_state: 1 
tnk_wtr_level_state: 1c
tnk_wtr_level_state: 1o
tnk_wtr_level_state: 1n
tnk_wtr_level_state: 1t
tnk_wtr_level_state: 1e
tnk_wtr_level_state: 1n
tnk_wtr_level_state: 1t
tnk_wtr_level_state: 1-
tnk_wtr_level_state: 1t
tnk_wtr_level_state: 1y
tnk_wtr_level_state: 1p
tnk_wtr_level_state: 1e
tnk_wtr_level_state: 1:
tnk_wtr_level_state: 1 
tnk_wtr_level_state: 1t
tnk_wtr_level_state: 1e
tnk_wtr_level_state: 1x
tnk_wtr_level_state: 1t
tnk_wtr_level_state: 1/
tnk_wtr_level_state: 1h
tnk_wtr_level_state: 1t
tnk_wtr_level_state: 1m
tnk_wtr_level_state: 1l
tnk_wtr_level_state: 1;
tnk_wtr_level_state: 1 
tnk_wtr_level_state: 1c
tnk_wtr_level_state: 1h
tnk_wtr_level_state: 1a
tnk_wtr_level_state: 1r
tnk_wtr_level_state: 1s
tnk_wtr_level_state: 1e
tnk_wtr_level_state: 1t
tnk_wtr_level_state: 1=
tnk_wtr_level_state: 1U
tnk_wtr_level_state: 1T
tnk_wtr_level_state: 1F
tnk_wtr_level_state: 1-
tnk_wtr_level_state: 18
tnk_wtr_level_state: 1
tnk_wtr_level_state: 1

Discovered after the input goes LOW and generates an alarm the 2nd bit in the Serial Monitor informs us the particualr push notification is decativated at the website that handles receipt of alarm notifications I have set up. Still wondering why this happens like this?

tnk_wtr_level_state: 1
tnk_wtr_level_state: 1
tnk_wtr_level_state: 1
tnk_wtr_level_state: 1
tnk_wtr_level_state: 0
tnk_wtr_lvl_alm: 1                       connecting...hopefully....   
                     connected
                     sending notification request    

tnk_wtr_level_state: 0H
tnk_wtr_level_state: 0T
tnk_wtr_level_state: 0T
tnk_wtr_level_state: 0P
tnk_wtr_level_state: 0/
tnk_wtr_level_state: 01
tnk_wtr_level_state: 1.
tnk_wtr_level_state: 11
tnk_wtr_level_state: 1 
tnk_wtr_level_state: 14
tnk_wtr_level_state: 10
tnk_wtr_level_state: 13
tnk_wtr_level_state: 1 
tnk_wtr_level_state: 1S
tnk_wtr_level_state: 1c
tnk_wtr_level_state: 1e
tnk_wtr_level_state: 1n
tnk_wtr_level_state: 1a
tnk_wtr_level_state: 1r
tnk_wtr_level_state: 1i
tnk_wtr_level_state: 1o
tnk_wtr_level_state: 1I
tnk_wtr_level_state: 1s
tnk_wtr_level_state: 1D
tnk_wtr_level_state: 1e
tnk_wtr_level_state: 1a
tnk_wtr_level_state: 1c
tnk_wtr_level_state: 1t
tnk_wtr_level_state: 1i
tnk_wtr_level_state: 1v
tnk_wtr_level_state: 1a
tnk_wtr_level_state: 1t
tnk_wtr_level_state: 1e
tnk_wtr_level_state: 1d
tnk_wtr_level_state: 1
tnk_wtr_level_state: 1
tnk_wtr_level_state: 1a
tnk_wtr_level_state: 1r
tnk_wtr_level_state: 1 
tnk_wtr_level_state: 12
tnk_wtr_level_state: 10
tnk_wtr_level_state: 12
tnk_wtr_level_state: 14
tnk_wtr_level_state: 1 
tnk_wtr_level_state: 10
tnk_wtr_level_state: 13
tnk_wtr_level_state: 1:
tnk_wtr_level_state: 10
tnk_wtr_level_state: 13
tnk_wtr_level_state: 1:
tnk_wtr_level_state: 14
tnk_wtr_level_state: 10
tnk_wtr_level_state: 1 
tnk_wtr_level_state: 1G
tnk_wtr_level_state: 1M
tnk_wtr_level_state: 1T


Reassigning digital input from "INPUT_PULLUP" to just "INPUT"
and using a 4.7K ohm external resistor tied to the input pin & +5v seems to have stabilized the input.

Note: I would still appreciate some insight on POSTS 11 & 12.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.