float Aux1 = 0;
void setup() {
lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies
the dimensions (width and height) of the display
// Asignaci�n de pines
pinMode(DETECT, INPUT); //Detecta el cruce por cero
digitalWrite(DETECT, HIGH); //Habilita la Resistencia de Pull-up
pinMode(GATE, OUTPUT); // Pin del microcontrolador por donde se obtendr� la se�al
pinMode(selec, INPUT); // Pin de seleccion tipo de controlador
pinMode(boton, INPUT);
digitalWrite(selec, HIGH); //Habilita la Resistencia de Pull-up
// Configurar Timer 1
//OCR1A = 100; //Inicializa el comparador
TIMSK1 = 0x06; //Habilita el comparador A y *no* la interrupci�n por desborde
TCCR1A = 0x00; //Asignaci�n del registro del timer
TCCR1B = 0x00; //Operacion normal, timer deshabilitado
//Rutinas de interrupci�n
void zeroCrossingInterrupt(){ //Detecci�n de cruce por cero
TIMSK1 = 0x06; //Habilita el comparador A y *no* la interrupci�n por desborde
TCCR1A = 0x00; //Asignaci�n del registro del timer
TCCR1B = 0x00; //Operacion normal, timer deshabilitado
}
}
///////////////////////////////////////////////////////////////////////////////////
/////////////////////
void loop(){
if (digitalRead(selec)) {//SIMETRICO
detachInterrupt(1);
// Configurar la interrupci�n de cruce por cero.
attachInterrupt(0,zeroCrossingInterrupt, CHANGE);
lcd.clear();
int pot=analogRead(Pot1);
pot=pot/4; //
if (pot > 506) //
{
pot=506; // Se asigna un valor a la salida
}
if (pot < 3) //
{
pot=3; //
}
i=pot;
OCR1A = i; //Asignar el valor del comparador a un registro.
OCR1B = (512-i);
numerador=3.1416-(2*i*0.347*0.0175)+sin(2*i*0.347*0.0175);
lcd.setCursor(0,0);
lcd.print("Simetrico ");
lcd.setCursor(10,0);
lcd.print("a:");
lcd.print(i*0.347);
lcd.setCursor(0,1);
lcd.print("Vrms: ");
lcd.setCursor(5,1);
lcd.print(120*sqrt(numerador/3.1416));
delay(50);
con = digitalRead(boton);
if(con==HIGH) {
delay(50);
cont = cont+1;
delay(500);
}
else if(con==LOW){
cont=cont;
}
if(cont==1){//120Hz
ICR1=1023; // esto es lo que hay que variar lo de arriba no le pares bola
era para meter el pulsador pero no me sale muy bien
}
if(cont==2){//240Hz
ICR1=512; // esto es lo que hay que variar lo de arriba no le pares bola era
para meter el pulsador pero no me sale muy bien
}
if(cont==3){//360Hz
ICR1=341; // esto es lo que hay que variar lo de arriba no le pares bola era
para meter el pulsador pero no me sale muy bien
}
if(cont==4){//480Hz
ICR1=256; // esto es lo que hay que variar lo de arriba no le pares bola era
para meter el pulsador pero no me sale muy bien
}
if(cont==5){//600Hz
ICR1=205; // esto es lo que hay que variar lo de arriba no le pares bola era
para meter el pulsador pero no me sale muy bien
}
if(cont==6){//1200Hz
ICR1=102; // esto es lo que hay que variar lo de arriba no le pares bola era
para meter el pulsador pero no me sale muy bien
}
if(cont==7){//1200Hz
cont=1;
}
}
}
///////////////////////////////////////////////////////////////////////////////////
////////////////////////