Rectificación trifásica controlada con Arduino

#1
Hola, necesito rectificar de forma controlada el una línea trifásica, el objetivo es alterar la luminosidad de una bombilla 220v al mover un potenciometro esto consta del cruce por cero (Que ya probé simulado y en montaje físico y funciona) pero tengo problemas con la siguiente etapa al programar el código en Arduino, el código es el siguiente:

int pulso=9; //pin de salida digital para el pulso
const int analogPin=A0;
int position;
int diming;
void setup() {
pinMode(pulso,OUTPUT); //pulso como salida
Serial.begin(9600);
attachInterrupt(0,Zero_Cross,FALLING); //interrupcion con deteccion del cruce por cero flanco de bajada
}
void Zero_Cross(){
int td=8.14*diming; //formula para sacar tiempo de retardo(8.14microsegundos=8333tiemposemiciclo/1023partes)
delayMicroseconds(td); //retado en microsegundos del tiempo de retardo
digitalWrite(pulso, HIGH); //un alto despues de ese tiempode retardo
delayMicroseconds(500); //pulso dura 5 microsegundos
digitalWrite(pulso, LOW); // despues de 5 microsegundos un bajo
}

void loop() {
diming=analogRead(analogPin);
position=map(diming, 0, 1023, 1400, 7500);
Serial.println(diming);
delay(1000);
}


Respecto al circuito compartiré el archivo de simulación PROTEUS por si alguno desea verlo.

Efectivamente la simular se me crea el pulso en cada inicio de semiciclo pero no logro dar con la rectificación usando el ARduino para que detecte todo correctamente con el código si alguno tiene una sugerencia bienvenida es.
 

Adjuntos

Fogonazo

Exorcista & Moderador eventual
#2
Si rectificas trifásica obtienes una tensión mayor a los 220V eficaz que soporta la lámpara.
 
Última edición:
#3
Si rectificas trifásica obtienes una tensión mayor a los 220V eficaz que soporta la lámpara.
Si no Los filtra, no.
Y si los filtra no le vale un triac.
Edito, pues si porque va a rectificar trifásica...
Pues no veo claro el tema de la trifásica.

Hola, necesito rectificar de forma controlada el una línea trifásica, el objetivo es alterar la luminosidad de una bombilla 220v al mover un potenciometro esto consta del cruce por cero (Que ya probé simulado y en montaje físico y funciona) pero tengo problemas con la siguiente etapa al programar el código en Arduino, el código es el siguiente:

int pulso=9; //pin de salida digital para el pulso
const int analogPin=A0;
int position;
int diming;
void setup() {
pinMode(pulso,OUTPUT); //pulso como salida
Serial.begin(9600);
attachInterrupt(0,Zero_Cross,FALLING); //interrupcion con deteccion del cruce por cero flanco de bajada
}
void Zero_Cross(){
int td=8.14*diming; //formula para sacar tiempo de retardo(8.14microsegundos=8333tiemposemiciclo/1023partes)
delayMicroseconds(td); //retado en microsegundos del tiempo de retardo
digitalWrite(pulso, HIGH); //un alto despues de ese tiempode retardo
delayMicroseconds(500); //pulso dura 5 microsegundos
digitalWrite(pulso, LOW); // despues de 5 microsegundos un bajo
}

void loop() {
diming=analogRead(analogPin);
position=map(diming, 0, 1023, 1400, 7500);
Serial.println(diming);
delay(1000);
}


Respecto al circuito compartiré el archivo de simulación PROTEUS por si alguno desea verlo.

Efectivamente la simular se me crea el pulso en cada inicio de semiciclo pero no logro dar con la rectificación usando el ARduino para que detecte todo correctamente con el código si alguno tiene una sugerencia bienvenida es.
Lee.
Delay no funciona dentro de una interrupción, como es lógico.
No he mirado delaymicros pero debe de ser igual.

Casualmente estoy haciendo lo mismo. Si que va pero a medias, quiero usar un timer en lugar de un delay.

Totalmente preliminar, lo he subido porque viene a cuento de este post.
Cuando lo complete subiré un vídeo mejor y el código.
De momento va con un delay y mi religión me prohíbe reconocer que en ocasiones lo uso jajajajaja

Como no se puede poner un delay en la interrupción, se activa un flag y el delay está en el bucle principal. (Chiisssssss que no lo oiga nadie).

No me compliqué mucho, los saltos que se ven son de ms en ms.

El esquema un PC814, un MOC320, un BTA06400 y tres resistencias.

Cuando tenga un rato lo publicó entero.
 
Última edición:

Fogonazo

Exorcista & Moderador eventual
#4
Mis recuerdos de las formulas de electricidad están algo cubiertos por una gruesa capa de óxido y seguirán así, pero me parece que la eficaz resultante es superior a los 220V.
Y si no es así con toda seguridad será de otra manera.
Pues no veo claro el tema de la trifásica.
Ya somos 2

Tal vez se esté hablando (Escribiendo) sobre una lámpara de varios Kw
 
#5
Hola todos como están de nuevo no he dado con la solución para detectar cada fase en el cruce por cero con un solo arduino uno así que decidí usar 3 arduinos en paralelo uno para cada fase y detectar cada fase y según la fase aplicarle el retardo correspondiente, la carga no es estrictamente las bombillas puede ser cualquiera pero que sea trifásica ya que es la red que estamos manejando, ya había hecho la rectificación AC normal controlada con Arduino para un bombillo o motor desde arduino.
 
#6
Necesitas tres fuentes de interrupción, y el Arduino uno tiene dos.
Hay otros arduinos con más fuentes de interrupción.

O simplemente una sola fuente de interrupción y tres pines digitales
 
#7
Necesitas tres fuentes de interrupción, y el Arduino uno tiene dos.
Hay otros arduinos con más fuentes de interrupción.

O simplemente una sola fuente de interrupción y tres pines digitales

Te cuento que a mi parecer el mayor problema es que creo en Arduino las interrupciones son asíncronas y en algún punto las fases se cruzaran y no me detectará una (O al menos eso pudimos concluir al analizar con el osciloscopio la red y un código precargado que no funcionó). También otro compañero está trabajando con el Arduino MEGA pero no le ha dado, otra solución que tengo es con la tarjeta Freedom Freescale que probraré el día de mañana.

No se que opines vos.

Salu2,
 
#8
No entiendo a qué te refieres con asíncronas. Las interrupciones son asíncronas por definición, son cuando son. La respuesta es síncrona con el reloj del sistema porque todo en un microcontrolador es síncrono.
Tampoco entiendo el resto de lo que postulas.

Puedes hacer tres circuitos detectores de paso por cero con tres optoacopladores que activen una sola interrupción con una puerta or y cada vez que se active la interrupción, verificas con tres pines cual de las tres ha sido.
Eso o tres circuitos a tres interrupciones.
 

Dr. Zoidberg

Well-known-Papá Pitufo
#9
la solución para detectar cada fase en el cruce por cero con un solo arduino uno así que decidí usar 3 arduinos en paralelo uno para cada fase y detectar cada fase y según la fase aplicarle el retardo correspondiente
:oops::oops::oops::oops::oops::oops:
El Arduino tiene interrupt-on-change en todos los pines de todos los ports pero las maneja a nivel de port y no de pin, así que en la web hay algunas rutinas para gestionarlas como si fueran "interrupciones independientes por cada pin".
Que tal si estudiamos y buscamos un poco???
 
#11
No entiendo a qué te refieres con asíncronas. Las interrupciones son asíncronas por definición, son cuando son. La respuesta es síncrona con el reloj del sistema porque todo en un microcontrolador es síncrono.
Tampoco entiendo el resto de lo que postulas.

Puedes hacer tres circuitos detectores de paso por cero con tres optoacopladores que activen una sola interrupción con una puerta or y cada vez que se active la interrupción, verificas con tres pines cual de las tres ha sido.
Eso o tres circuitos a tres interrupciones.
Sí en el cruce por cero tengo exactamente lo que mencionas y funciona con los 3 optoaclopadores por esa parte y una or formada
:oops::oops::oops::oops::oops::oops:
El Arduino tiene interrupt-on-change en todos los pines de todos los ports pero las maneja a nivel de port y no de pin, así que en la web hay algunas rutinas para gestionarlas como si fueran "interrupciones independientes por cada pin".
Que tal si estudiamos y buscamos un poco???

Hola no tengo mucha experiencia con arduino pero sigo aprendiendo bueno he buscado y me topé con esto:

Change Interrupt on all pins

Hay cosas que me confunden un poco así que mientras las estudio paralelamente por tiempo, trabajo POR AHORA solucionar con 3 arduinos y una detección de pulso para cada FASE y a partir de la segunda fase desfasar por una regla de 3 en tiempo la conversión o equivalencia en grados de la siguiente fase. Leeré sobre lo que me comentaron para trabajarle y entender más el Arduino.
 
Última edición:

Temas similares


Arriba