How to know if input signal is high or low with Arduino | applied electronics engineering

# How to know if input signal is high or low with Arduino

By Applied Electronics - Monday, April 17, 2017 No Comments
Often you will be need to read some input signal. The input signal can be in any voltage range, for example 1.55V to 2.3V. Now if you want to connect 1.55V-2.3V range input signal to one of the Arduino UNO digital pin what do you think the Arduino microcontroller will interpret this signal- High or Low signal?

Let's dwell some foundation for digital logic system. In the digital system with 1 and 0 bits there is a range of voltage for 1 and for 0. This is called the logic level. With the development of digital system, now, we have two different popular digital logic system. One is called TTL logic level and the other is called 3.3V CMOS logic level. The TTL logic level is concerned with 5V where the 3.3V CMOS is concerned with 3.3V. TTL is a methodology of creating digital devices and so is CMOS. The TTL technology is based on Bipolar Transistors while the 3.3V CMOS digital system are based on CMOS transistors.

In TTL logic, the input signal is interpreted as high if the input signal voltage range is within 2V to 5V. If the input signal voltage is in the range 0V to 0.8V then it is interpreted as logic low. With 3.3V CMOS devices, if the input signal is between 0V to 0.8V then the input is low logic. If the input signal is in the range 2V to 3.3V then it is interpreted as logic high.

The Arduino UNO in similar manner has a predefined range of voltage for logic high and low. If the input voltage is between 0V to 1.5V then it is interpreted as logic 0. If the input voltage is between 3V to 1.5V then it is interpreted as logic high.

So in this way you can know whether the input signal is logic high or logic low with Arduino UNO.