Arduino

bitRead() Function in Arduino

If you’re an Arduino enthusiast or a hobbyist, you’re probably familiar with bit manipulation. As Arduino is a microcontroller-based platform so we have to deal with bits of data very frequently. For that Arduino has a series of functions that helps to manipulate bits in Arduino. The bitRead() function is one of them. This article will cover the bitRead() function and its working in detail.

What is bitRead() in Arduino?

The bitRead() function reads a specific bit from a byte variable. This function contains two parameters, the byte variable to read from and the index of the bit. The index of the bit starts from 0, which means the first bit has an index of 0, and the eighth bit has an index of 7.

Syntax

The bitRead() function syntax is as follows:

bitRead(value, bit)

Parameters

This function takes two parameters:

  • value is the variable or value that you want to read the bit from. It can be an integer, byte, or any other variable that can be represented as a binary value.
  • bit is the position of the bit that you want to read. It can be an integer from 0 to 7, representing the bit position in the binary representation of value.

Return

The bitRead() function gives the specified position bit value which is either 0 or 1.

How to use bitRead() in Arduino?

Using bitRead() in your Arduino projects is simple. To read a specific bit from a byte variable, you need to call the bitRead() function and pass the byte variable and the index of the bit as parameters. Here’s an example of how to use bitRead() to read the value of the fourth bit from a byte variable:

byte myByte = 0b10101010; // binary representation of 170
bool fourthBit = bitRead(myByte, 3); // read the value of the fourth bit

In this example, we define a byte variable named myByte and assign it a binary value of 10101010. We then call the bitRead() function and pass the myByte variable and the index of the fourth bit as parameters. The bitRead() function returns the value of the fourth bit as a boolean value, which we store in a variable named fourthBit.

Example Code of Using bitRead() in Arduino

Here’s an example code that uses bitRead() to read a specific bit (the 3rd bit) from a byte variable and prints its value to the Serial Monitor:

void setup() {
  Serial.begin(9600);
  byte x = 0b10000101;      // the 0b shows a binary value
  Serial.println(x, BIN);   // 10000101
  // Read the 3rd bit (bit position 2) of the byte variable x
  byte bitValue = bitRead(x, 2);

  // Print the value of the bit to the Serial Monitor
  Serial.print("Value of the 3rd bit: ");
  Serial.println(bitValue);
}
void loop() {}

In this example, we use bitRead() to read the 3rd bit (bit position 2) of the byte variable x and store the result in a byte variable named bitValue. Finally, we print the value of the bit on the Arduino serial terminal. Note that we only read one bit in this example.

Conclusion

In this article, we discussed what bitRead() is, how it works, and how you can use it in your Arduino projects. We also discussed examples of how to use the bitRead() function to read a specific bit of a number. Using the bitRead() function we can optimize code, save memory, and increase flexibility when working with microcontrollers.

About the author

Kashif

I am an Electrical Engineer. I love to write about electronics. I am passionate about writing and sharing new ideas related to emerging technologies in the field of electronics.