Digital Read in Arduino

Just like analogRead() helps you to read analog voltages, digitalRead() helps you read digital levels.



When pin is the number of the pin whose digital level you wish to read. This function returns either HIGH or LOW.

Please note that if the pin you are wishing to read is not connected to anything, it can return either HIGH or LOW, and this value can change with time and noise. Also, in general, analog pins can be used for digitalRead(). As stated in Arduino’s documentation, the following are the exceptions −

Arduino Nano, Pro Mini, and Mini’s A6 and A7 pins, which can only be used as analog inputs.


int pinToRead = 5;

void setup() {
   // put your setup code here, to run once:

   pinMode(pinToRead, INPUT);

   int a = digitalRead(pinToRead);

   if (a == HIGH) {
      Serial.println("The pin is at a HIGH Level");
   } else {
      Serial.println("The pin is at a LOW Level");

void loop() {
   // put your main code here, to run repeatedly:


The Serial Monitor Output is given below −