MEGA 256 and 74hc238 decoder some issue

HELLO!
why does when i conect 74hc238 decoder to arduinno and generate the code for the selection pins at the output of decoder witch is connect to arduino ,I don't have 1 logic to show me that it work.
what should I have to do in this case?
I connect at the output of decoder an LED and it blinks and arduino is not capable to read the value!!!

Post your code & schematic.

CrossRoads:
Post your code & schematic.

here is the code:

int EN = 52;
int S0 = 53;
int S1 = 51;
int S2 = 49;
int S3 = 47;
int output=30;
int val=0;

void out0()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, LOW);
  digitalWrite (S1, LOW);
  digitalWrite (S2, LOW);
  digitalWrite (S3, LOW);
}
  void out1()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, HIGH);
  digitalWrite (S1, LOW);
  digitalWrite (S2, LOW);
  digitalWrite (S3, LOW);
}
  
  void out2()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, LOW);
  digitalWrite (S1, HIGH);
  digitalWrite (S2, LOW);
  digitalWrite (S3, LOW);
}
  void out3()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, HIGH);
  digitalWrite (S1, HIGH);
  digitalWrite (S2, LOW);
  digitalWrite (S3, LOW);
}
  void out4()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, LOW);
  digitalWrite (S1, LOW);
  digitalWrite (S2, HIGH);
  digitalWrite (S3, LOW);
}
  void out5()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, HIGH);
  digitalWrite (S1, LOW);
  digitalWrite (S2, HIGH);
  digitalWrite (S3, LOW);
}
  void out6()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, LOW);
  digitalWrite (S1, HIGH);
  digitalWrite (S2, HIGH);
  digitalWrite (S3, LOW);
}
  void out7()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, HIGH);
  digitalWrite (S1, HIGH);
  digitalWrite (S2, HIGH);
  digitalWrite (S3, LOW);
}
  void out8()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, LOW);
  digitalWrite (S1, LOW);
  digitalWrite (S2, LOW);
  digitalWrite (S3, HIGH);
}
  void out9()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, HIGH);
  digitalWrite (S1, LOW);
  digitalWrite (S2, LOW);
  digitalWrite (S3, HIGH);
}
  void out10()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, LOW);
  digitalWrite (S1, HIGH);
  digitalWrite (S2, LOW);
  digitalWrite (S3, HIGH);
}
  void out11()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, HIGH);
  digitalWrite (S1, HIGH);
  digitalWrite (S2, LOW);
  digitalWrite (S3, HIGH);
}
  void out12()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, LOW);
  digitalWrite (S1, LOW);
  digitalWrite (S2, HIGH);
  digitalWrite (S3, HIGH);
}
  void out13()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, HIGH);
  digitalWrite (S1, LOW);
  digitalWrite (S2, HIGH);
  digitalWrite (S3, HIGH);
}
  void out14()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, LOW);
  digitalWrite (S1, HIGH);
  digitalWrite (S2, HIGH);
  digitalWrite (S3, HIGH);
}
  void out15()
{
//  digitalWrite (EN, LOW);
  digitalWrite (S0, HIGH);
  digitalWrite (S1, HIGH);
  digitalWrite (S2, HIGH);
  digitalWrite (S3, HIGH);
}

void setup()
{
  //open serial for monitor, set pinMode
  Serial.begin (9600);
  pinMode (EN, OUTPUT);
  pinMode (S0, OUTPUT);
  pinMode (S1, OUTPUT);
  pinMode (S2, OUTPUT);
  pinMode (S3, OUTPUT);
  pinMode (output, INPUT);
}

void loop(){
out0();
delay(100);
out1();
delay(100);
out2();
delay(100);
out3();
delay(100);
out4();
delay(100);
out5();
delay(100);
out6();
delay(100);
out7();
delay(100);
out8();
delay(100);
out9();
delay(100);
out10();
delay(100);
out11();
delay(100);
out12();
delay(100);
out13();
delay(100);
out14();
delay(100);
out15();
delay(100);

val=digitalRead(output);
Serial.print(val);

}