Control de segunda polea

Hola. Os explico.

Tengo esta programacion que lo que hace es detectar el giro de una polea mediante la señal en PIN 2 de un sensor infrarojo

Cuando la polea esta girando me enciende un led verde PIN 12 y cuando se para me enciende un led rojo PIN 11

Esto solo me sirve para controlar una sola polea, pero si quiero controlar varias poleas ....

¿ Que debo añadir para que con otra señal de otro sensor infrarojo ( por ejemplo en el PIN 3 ) me encienda otro led verde cuando detecte giro ( por ejemplo en el PIN 31 ) y otro led rojo cuando se pare de girar ( por ejemplo en el PIN 30 )

muchas gracias.

Si ya lo tienes hecho para una polea y funcióna correctamente bastaría con duplicar lo que ya tienes pero asignando otros pines

¿ Y cuál es la forma de duplicarlo ?

Ahí voy perdido

Si estas perdido es porque ese código simplemente lo copiaste de alguna página web

Duplica los pines?

Lo que tienes para una polea repite en otros pines diferentes.
Si algo esta definido como salida haz lo mismo.
Si esta definido como entra de nuevo lo mismo.

Eso es duplicar.

Como el código no se ve porque simplemente lo adjuntaste mas no te podemos decir.
Te envié un privado con instrucciones para que edites tu primer hilo y pegues debidamente el código para que sea visible para nosotros.
Tal como está hay que descargarlo, y a la mayoría nos da pereza hacerlo.

mira a ver si el codigo esta asi bien.

una cosa,
el codigo no lo he cogido de ninguna web ni nada por el estilo. este codigo me lo ha hecho un amigo pero solo me lo ha hecho para un sensor infrarojo y una polea.
La cuestion es que yo ahora necesito controlar el giro de varias poleas con varios sensores infrarojos y me gustaria que se pudiera usar un solo arduino mega ( usar las 6 interrupciones) en lugar de un uno ( solo dos interrupciones) para cada polea.

duplicar......
¿ y donde duplico ?

en void setup , en void loop, copio todo el programa una y otra vez uno debajo de otro.......
he probado varias cosas pero al compilar siempre me da error

Buen dia, amigo el principal problema es que no tienes ni siquiera un base de programación por lo que te sera muy difícil realizar lo que deseas. (ya te dijeron como pero no lo entiendes)
Al parecer tu código mide revoluciones y en base a eso enciende un led ya sea rojo o verde. Eso es en teoria peeeero, lamento decirte que el código que hizo tu amigo no creo que funcione correctamente con un delay de 400 milisegundos, entonces hasta este momento tienes 3 opciones:

1.-Decirle a tu amigo que su código esta mal y que lo corrija y de paso le agregue lo que quieres

2.-Que tomes unas lecciones de arduino , intentes hacerlo por ti mismo y asi comprenderás lo que estas haciendo, y cuando lo intentes, planteas tus dudas (para mi la opcion mas recomendable, hay muchos tutoriales y libros gratuitos)

3.-Que pidas al foro que te den el código hecho y esperar que un buen samaritano te lo haga.

Ahora como sugerencia, si lo único que quieres es saber si la polea gira o no, y en base a eso encender el led rojo o verde, no veo necesario el uso de una interrupción y las muchas condicionales que usas en tu código
Bueno me despido y espero no me tomes a mal mis palabras. Saludos

Hola RIG.
El código que he puesto funciona perfectamente.

Solo necesito saber cómo puedo completar el código para poner otra entrada de señal de sensor infrarrojo por el pin 3, otro led verde en el pin 31 y otro led rojo en el pin 30.

Y repito. El programa funciona. Lo he usado 15 horas al día durante 30 dias y hace la función que busco detectar cuando gira o se detiene una polea.

Gracias

Vamos a ver polarode, creo que las respuestas son claras, tan difícil es hacer esto?

Tienes esto

float valor=0;
float rev=0;
int rpm;

Por qué no lo duplicas como te hemos comentado? Por ejemplo

 float valor1=0;
float rev1=0;
int rpm1;

Se entiende de esta manera? Ahora todo lo que tengas declarado para la primera polea lo duplicas, lógicamente cambiando su nombre.

Si pero ademas debe generar otra ISR y para eso debe saber cual es la otra ISR disponible, nada del otro mundo, donde diga

attachInterrupt(0,isr,RISING);  //PIN 2

agrega

attachInterrupt(1,isr,RISING);  //PIN 3

Te recomiendo que vayas a Documentación => Indice de Temas tutoriales => Clases de Youtube y mires dichas clases para que logres entender mejor como es esto.

El camino entonces es estudiar, mejorar tu base de conocimiento y entonces volver a encarar la idea.