How to Use the NRF24L01’s IRQ Pin to Generate an Interrupt With Arduino

In this instructable we look at how to use the pulse signal from an nRF24L01+ transceiver module's IRQ pin to trigger an interrupt in Arduino. You can find the code from the video on my blog:

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.



    • Indoor Lighting Contest

      Indoor Lighting Contest
    • Make It Fly Challenge

      Make It Fly Challenge
    • Growing Beyond Earth Maker Contest

      Growing Beyond Earth Maker Contest



    Tip 10 months ago on Introduction

    Thanks for the code. As an additional note : I found that the IRQ signal from the NRF24 stays LOW and so will not generate another IRQ until the Rxdata had been accessed. So, it’s very important to include your following code (or a similar action) in void interruptFunction() to reset the IRQ signel to HIGH.

    while(wirelessSPI.available()) { //get data sent from transmit &gotByte, 1 ); //read one byte of data and store it in gotByte variable . This will reset the IRQ signal so other IRQs can be sent.

    As the gotByte value was never used I assumed those two lines could be omitted - but they cannot. Without them the NRF24 would hold the IRQ pin LOW and so could not issue another IRQ.