Problem waking up from sleep with RISING interrupt


I have a reed sensor connected to pin 2 of Arduino Mega. There is a pulldown resistor at pin 2 as well. When the sensor is activated the pin goes to HIGH state. When the sensor keeps inactive the Arduino enters sleep mode. I want to wake it up when the sensor is activated again. So I tried to set a RISING interrupt on pin 2. However the Arduino doesn’t wake up. I tried other kinds of interrupt, and I could wake the Arduino only with LOW interrupt.

Does anyone knows why it’s not waking with RISING interrupt?

Here follows my code:

#include <avr/sleep.h>

int interruptPin = 2; 
int sleep_count = 0;

void setup() {
  pinMode(interruptPin, INPUT);

void sleepNow() {

    set_sleep_mode (SLEEP_MODE_PWR_DOWN);   
    sleep_enable ();          
    attachInterrupt(digitalPinToInterrupt(interruptPin), wakeUp, RISING);
    sleep_mode ();            

void wakeUp {

    //do something

    sleep_count = 0;


void loop() {


  // checks if it should goes to sleep mode
  if (sleep_count >= 10000) {
      Serial.println("Timer: Entering Sleep mode");
      sleep_count = 0;
      sleepNow();     // sleep function called here

}//end loop

Thanks for any help!

Arduino Pin 2 on the Arduino MEGA 2560 is INT4. There is a footnote in the ATmega2560 datasheet that says "For INT7:4, only level interrupt." That mean you can't use a RISING, FALLING, or CHANGE interrupt on Pin 2 (or 3) to wake the processor. The only available choice is LOW.

Thanks for the response.
I had to use an inverter circuit, and now when the the sensor is activated pin 2 goes to LOW. Now a LOW interrupt works for me.