Orden delay no funciona para encender y apagar led

Como puedo hacer que una serie de ordenes delay funcione, solo enciende y se apaga en un flash rapido el led, el led no sigue las indicaciones de encendidos y apagados, cada cierto tiempo que se le asigna con el delay.

#include <Wire.h>
int led1 = 7;
int led2 = 9;
char c;

void setup() {
Wire.begin(8);
Wire.onReceive(receiveEvent);
Serial.begin(9600); **
pinMode(led1, OUTPUT);
** pinMode(led2, OUTPUT);

}

void loop() {
delay(1000);
}

void receiveEvent(int howMany) {
while (0 <Wire.available()) {
** char c = Wire.read();**
** Serial.println(c);**
if (c==‘A’) {
digitalWrite(led1, HIGH);
delay(3000);
** digitalWrite(led1, LOW);**
** delay(4000);**
** digitalWrite(led1, HIGH);**
delay(1000);
** digitalWrite(led1, LOW);**
Serial.println(“LETRA A”);
}
if (c==‘B’) {
digitalWrite(led2, HIGH);
delay(3000);
** digitalWrite(led2, LOW);**
** delay(4000);**
** digitalWrite(led2, HIGH);**
delay(1000);
** digitalWrite(led2, LOW);**
Serial.println(“LETRA B”);
}

** }**
** }**

Lee el privado con instrucciones para que edites el código usando etiquetas. (normas del foro)

Ademas de editar tu código deberías contarnos que tienes conectado en el bus I2C (pines A4 y A5) que lees con:

char c = Wire.read();}