Hola a todos,ya modifique el código y mejore la explicación con respecto a la asesoría que necesito.
Necesito generar 4 pulsos, por las salidas digitales por ejemplo 8,9 y 10,11, en este momento estoy usando un Arduino Mega.
Los pulsos tienen estas características:
1)8 y 9 son los mismos pulsos, pero los necesito que estén saliendo cada uno por una salida digital. Del mismo modo 10 y 11 son otra pareja igual de pulsos pero diferentes de 8 y 9. Por lo tanto, son en total dos pulsos, solo que cada uno lo duplicare y lo enviare independientemente cada uno en una salida digital.
He aquí el grueso del asunto con el que necesito de sus experiencias:
2)Los pulsos que necesito generar son con el corte de una entrada análoga de un potenciometro que se produce con una onda trigonométrica que genero con un barrido en grados con la ayuda de un ciclo for.
Es decir que las señales Vc y Vd ( señales trigonométricas) las debo comparar con una señal de control (Potenciometro) llamada Vx. Es decir, que para cada señal Vc y Vd, tendría un par de pulsos asociados cada una de este modo, en 8,9 y 10,11.
Pienso que esta comparación de las señales con respecto al estado de la señal del potenciometro se puede hacer con un arreglo IF, por eso pido la ayuda de ustedes porque ya lo he intentado y no me ha funcionado correctamente.
- Algo importante es que solo necesito generar un flanco de subida que es con el primer corte con la onda cosenoidal, el segundo que seria el flanco de bajado no es importante, no se como podría limitar esto.
Muchas gracias a todos por su ayuda, espero que este nuevo post modificado y mejorado sea mas entendible.
float V1,V2,V4,V6,V7;
float Vc,Vd,Vcc;
float Vx;
void setup() {
Serial.begin(19200);
pinMode(A0,INPUT);
}
void loop() {
Vx=2.0*analogRead(A0)/1023.0; //Lectura de un potenciometro, va estar en el rango de 0 a 2
//Vx=1.5; //Ingreso manual de datos
for (float j = 0; j <= 360; j++) {
V1=1.0*cos(j * (PI / 180.0));
//Genero las dos señales necesarias Vd y Vc
Vd=V1+1.0;
Vc=1.0-V1;
if(Vc>=Vx){V6=1;}else{V6=0;}
if(Vd>=Vx){V7=1;}else{V7=0;}
Serial.print(V7-2.0);
Serial.print(" ");
Serial.print(V6-2.0);
Serial.print(" ");
Serial.print(Vx);
Serial.print(" ");
Serial.print(Vd);
Serial.print(" ");
Serial.println(Vc);
}
}