4 - 4 = 0, las llaves como mínimo están "balanceadas", tantas abiertas tantas cerradas (falta revisar que estén en los lugares adecuados).
Cada if() tiene su juego de llaves, lo mismo para cada else entonces de aquí el error no proviene.
¿Hace falta que pruebe la otra opción o te alcanza para ver que el error no está en mis códigos?
Y por cierto, postea el código y los errores con el formato correcto.
no te creas que no lo intento ,pero me lio bastante con estas cosas,lo que no entiendo es que haya llaves de mas o de menos si lo que hago es copiar y pegar ,algo se me escapa.
Sin que sirva de precedente, (todos hemos sido novatos alguna vez), te envío el código mas espaciado, completo y revisado.
A mi me funciona correctamente.
Sigue los comentarios que he añadido.
Verás que he cambiado la instrucción del LED, para que inicialmente este apagado, mientras no llega el contador a "8".
A cada LOOP se vuelve a apagar.
Tu puedes hacer las copias que quieras, con las transformaciones que creas conveniente.
Sobre todo, estudia mas Arduino!!!
Un saludo !!! ......
..
/*
CONTADOR DE REVOLUCIONES DEL FORO
El LED 13 se encuentra normalmente apagado.
Cuando el contador supera "8", se enciende el LED.
Cuando se reinicia el LOOP ... se apaga otra vez.
https://forum.arduino.cc/t/insertar-digitalread/1324669/17
******************** ENGRAL *******************************
*/
volatile unsigned long contador = 0; // Variable entera que se almacena en la RAM del Micro
const byte ledPin = 13; // LED 13 que se encuentra en la placa UNO.
const byte isrPin = 3; // INPUT
void interrupcion1() // Funcion que se ejecuta durante cada interrupion
{
contador++; // Se incrementa en uno el contador
}
void setup()
{
Serial.begin(57600);
Serial.println(" A_REVOLUCIONES_MS_3_FORO");
pinMode(ledPin, OUTPUT); // El pin 13 es una salida digital
}
void loop()
{
contador = 0;
// -------- sección crítica --------
attachInterrupt(digitalPinToInterrupt(isrPin), interrupcion1, RISING);
delay(1000);
detachInterrupt(digitalPinToInterrupt(isrPin));
// ----------------------------------
//contador = contador / 1 * 1; // SUPRIMIDA DE MOMENTO
Serial.print(contador);
Serial.println(" RPM");
if (contador > 8) // Si contador supera a 8...
{
digitalWrite (ledPin, HIGH); // Encender LED
}
else //SI NO........
{
digitalWrite (ledPin, LOW); // Apagar LED
}
if (digitalRead(ledPin) == HIGH) // Si LED 13 esta HIGH...
{
Serial.println("LED encendido"); // Imprime en MONITOR
}
else
{
Serial.println("LED apagado");
}
} // 2ªLLAVE-LOOP
//************** FIN *****************
Pues por lo visto lo has hecho mal.
Además no adjuntas ninguno de los dos códigos que te dieron error al compilar, así que no podemos ver cual es el error porque no somos adivinos.
Por otro lado, entiendo que se te complique controlar las llaves pero ¿también se te complica editar tus post?
Tienes suerte que @ENGRAL haya tenido ganas de corregir tu código mal posteado, yo no pensaba hacerlo hasta que cumplieras las normas.
Pues lo intenté editar para ponerlo bien y no lo entiendo porque no sale, pero gracias igualmente. No lo hago por molestar ,igual necesito mas horas de practica las cuales no tengo.
El problema es que recurrí a esto de forma puntual para solucionar una carencia y lei y lei vi videos pero no lo controlo y no lo practico habitualmente .
Bueno amigos.
Despues de mucha idas y venidas y rompederos de cabeza mios y vuestros ,el sistema ya funciona. Paso a describr con detalle la aplicacion por si a alguien le sirve.
Esto es (capricho) por haber instalado sensores de aparcamiento en un coche antiguo.
Los traseros van de maravilla porque solo se activan con la marcha atrás,pero los delanteros ,a pesar de ser activados con la señal de pedal de freno ,daban lecturas indeseadas sobre todo en rotondas.
Solución ? coger la señal del captador de velocidad del vehiculo (impulsos convertidos=a rpm ,y decirle al sensor de parking que a partir de x velocidad no funcione (de serie en todos ya hace años) ...
Solo 2 recomendaciones : Poner un optoacoplador a la entrada y un transistor a la salida ,para no mezclar ni sobrecargar lo cuel lleva a efectos indeseados.
Gracias y aunque es un tema muy particular ,lo dejo aquí y estoy a disposicion por si a alguien le interesa algun detalle.
volatile unsigned long contador = 0; // Variable entera que se almacena en la RAM del Micro
const byte ledPin = 6; // LED que se encuentra en el pin 6
const byte isrPin = 3; // INPUT
void interrupcion1() { // Funcion que se ejecuta durante cada interrupion
contador++; // Se incrementa en uno el contador
}
void setup() {
Serial.begin(57600);
pinMode(ledPin, OUTPUT); // El p1n 6 será una salida digital
}
void loop() {
contador = 0;
// -------- sección crítica --------
attachInterrupt(digitalPinToInterrupt(isrPin), interrupcion1, RISING);
delay(1000);
detachInterrupt(digitalPinToInterrupt(isrPin));
// ----------------------------------
contador = contador / 1 * 1;
Serial.print(contador); Serial.println(" RPM");
if (contador > 8) { //setpoint del contador
digitalWrite (ledPin, LOW); // Apagar LED
} else {
digitalWrite (ledPin, HIGH); // Encender LED
if (digitalRead(ledPin) == HIGH) {
Serial.println("LED encendido");
} else {
Serial.println("LED apagado");
}
}
}