Mega sleeping and not awakening

I tried to make the MEGA sleep and awaking it afterward on Pin 2.
I tried pulling input pin 2 HIGH and then grounding it to awake the MEGA.
I also tried putting 2 LOW (included code) and then putting 5V (jumper from 5V supply on board) on pin 2 , but it keeps sleeping… What can be the cause?
The Serial comm message is OK and the led blinks 250msec.

#include <avr/sleep.h>
const byte LED = 9;
void wake ()
{
  sleep_disable();
  detachInterrupt (digitalPinToInterrupt(2)); 
}  

void makeSleep(){

  ADCSRA = 0     // disable ADC
  set_sleep_mode (SLEEP_MODE_PWR_DOWN);  
  sleep_enable();
  noInterrupts ();
  
  attachInterrupt (digitalPinToInterrupt(2), wake, CHANGE);
  EIFR = bit (INTF0);  // clear flag for interrupt 0
  interrupts ();  // one cycle
  sleep_cpu ();   // one cycle
}



void setup () 
  {
  pinMode(2,INPUT);
  digitalWrite (2,HIGH); 
  Serial.begin(115200);
  }  

void loop () 
{
 Serial.println("awake and going to sleep after LED blink");
  pinMode (LED, OUTPUT);
  digitalWrite (LED, HIGH);
  delay (250);
  digitalWrite (LED, LOW);
  delay (250);
  makeSleep();

  }

solved.

/*
Waking from sleep with a signal: detect a logic level change on an interrupt pin (D2 or D3 on the Arduino). These are processor pins 4 and 5 on the actual Atmega328 chip.
interrupt (pin change)  will wake the processor, as this sketch demonstrates. When asleep it uses 0.15 µA of current.

 * C Trigger mode of the interrupt pin. can be:
 * 
 
* LOW a low level trigger
* CHANGE a change in level trigger
* RISING a rising edge of a level trigger
* FALLING a falling edge of a level trigger
*
* In all but the IDLE sleep modes only LOW can be used.

 */
// OOK NOG NAZIEN https://forum.arduino.cc/index.php?topic=438214.0
// en http://www.engblaze.com/hush-little-microprocessor-avr-and-arduino-sleep-mode-basics/

#include <avr/sleep.h>

const byte LED = 9;
byte old_ADCSRA = ADCSRA;
int teller;
 
void wake()
{
  // cancel sleep as a precaution
  sleep_disable();
  // precautionary while we do other stuff
  detachInterrupt (digitalPinToInterrupt(2)); //D2 is interrupt 0; zie "Arduino Timers interrupts ISR.ods"
  ADCSRA= old_ADCSRA ;
}  // end of wake




void makeSleep(){
      // disable ADC // ev onthouden :   oude= ADCSRA;(byte old_ADCSRA = ADCSRA;)
  ADCSRA = 0;  
  
  set_sleep_mode (SLEEP_MODE_PWR_DOWN);  
  sleep_enable(); // enables the sleep bit in the mcucr register

  // Do not interrupt before we go to sleep, or the
  // ISR will detach interrupts and we won't wake.
  noInterrupts ();
  
  // will be called when pin D2 goes low 
  //EIFR = (1 << INTF0);   //use before attachInterrupt(0,isr,xxxx) to clear interrupt 0 flag 
  attachInterrupt (digitalPinToInterrupt(2), wake, LOW);
  //EIFR = bit (INTF0);  // clear flag for interrupt 0
 
  // turn off brown-out enable in software
  // BODS must be set to one and BODSE must be set to zero within four clock cycles
 // MCUCR = bit (BODS) | bit (BODSE);
  // The BODS bit is automatically cleared after three clock cycles
 // MCUCR = bit (BODS); 
  
  // We are guaranteed that the sleep_cpu call will be done
  // as the processor executes the next instruction after
  // interrupts are turned on.
  Serial.println("    sleep");
  interrupts ();  // one cycle
  sleep_cpu ();   // one cycle
  wake();
}



void setup () 
  {
  pinMode(2,INPUT);  
  digitalWrite (2, INPUT_PULLUP);  // HIGH =enable pull-up// wellicht?? kapot?? door 5V op te steken??) gaat ook nt met INPUT_PULLUP
  Serial.begin(115200);
  
  }  // end of setup

void loop () 
{
  Serial.print(teller++);
 Serial.println("  awake and going to sleep after LED blink");
  pinMode (LED, OUTPUT);
  digitalWrite (LED, HIGH);
  delay (250);
  digitalWrite (LED, LOW);
  delay (250);
  makeSleep();

    



  } // end of loop