Pages: [1]   Go Down
Author Topic: Paso por cero con optocoplador h11aa1  (Read 1842 times)
0 Members and 1 Guest are viewing this topic.
Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 317
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Estoy intentando detectar el paso por cero de la corriente AC 220 que deberia ser 50hz con un optocoplador H11aa1 que se suele usar para esto, el caso esque no consigo medirlo, se q se puede hacer con los diodos que tiene y un resistencia de un mega como me dijo igor R y funciona pero lo quiero medir asi para tener aislado los dos circuitos.
La conexion la he sacado de aqui, yo tengo 2 resistencias de 100k en la entrada lo que me dan 1,195v entre los pines 1 y 2 segun el tester:


El codigo que uso es el mismo que me funciona bien con los diodos pero ahora me da el doble, osease:
Code:
volatile unsigned long tanterior;
volatile unsigned long tnuevo;
volatile float frec;

void setup()
{
  Serial.begin(19200);
  pinMode(2,INPUT);
  attachInterrupt(0,myfunc,CHANGE);
}

void loop()
{
  Serial.println(frec);
}

void myfunc()
{
  if (digitalRead(2))
  {
    tanterior=tnuevo;
    tnuevo=micros();
    frec=1000000.0/(tnuevo-tanterior);
  }
}
Sacados del puerto serial me da esto:
101.01
98.97
98.97
98.97
100.89
100.89
98.85
.....

A ver si me podeis hechar un cable.
Logged

Ciudad Real
Offline Offline
God Member
*****
Karma: 1
Posts: 751
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uno de los problemas que le veo es que no vas a detectar el paso por 0 realmente, el diodo dejará de lucir antes de que llegue a 0 asi que la medida no será real .


el atmega tiene una una forma que seguramente te habrá comentado Igor

por si acaso

http://www.atmel.com/dyn/resources/prod_documents/doc2508.pdf
« Last Edit: November 28, 2011, 03:06:34 am by SrDonGato » Logged

Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 317
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si si esa forma la se y esta probada y funciona como he comentao,  pero aunque no sea exacto deberia darme un valor aproximado, ya que no necesito una precision perfecta, en este caso si estamos midiendo 220 a 50hz deberia dar 50 o algo aproximado y 98- 100 de aproximado tiene poco creo yo.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 8
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

El problema está en la instruccion: attachInterrupt(0,myfunc,CHANGE);

 Si usas CHANGE un paso por 0 genera dos interrupciones uno de 5V a 0 y el otro de 0 a 5V. Yo no creo que la pregunta if (digitalRead(2)) sea confiable y te esté dando 1 en un caso y 0 en el otro.

Elimina la pregunta por el estado del Pin y usa cualquiera de las otras 3 opciones. Yo recomiendo LOW.
« Last Edit: November 27, 2011, 11:42:25 pm by Kolb » Logged

Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 317
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

He probao las otras maneras y quitando lo del pin2 y la cosa va a peor, me dan numeros como 539-541 o 23899 y cosas asi.
Se supone que cada semi ciclo dura 10.0 mS (50Hz), yo creo q deberia detectarlo sin problemas, el mismo codigo como dice SrDonGato usando los diodos del microcontrolador o usando unos diodos externos schosky si que funciona, pero ya es otra forma muy distinta.
Tal vez se me escapa algo.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 8
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola Riscking, ahora veo que tu programa funciona perfectamente. Lo que pasa es que por c/ciclo de AC realmente pasará por 0 dos veces y tu circuito no hace diferencia en cuanto al sentido, es decir, es lo mismo si pasa bajando o si pasa subiendo. Divide por 2 y problema resuelto!! 
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola
Se que este hilo es viejo, pero aprovechando que esta el diagrama.
Como cálculo las resistencias que van a los pines 1 y 2 del opto H11AA1, y que potencia deben ser capaz de disipar, si es que se quiere conectar a la red de 220V-50Hz.
Muchas gracias.
Logged

Pages: [1]   Go Up
Jump to: