pero como funciona el pwm con AC, "Eso se puede" que no el pwm solo se aplica a DC, en fin tengo que controlar la temperatura pero con el uso de PWM, como le hago, y si mejor rectifico la AC y la paso a CD, eso seria una buena solucion?? y bueno pues si es parecido al dimmer al fin y al cabo creo que hacen lo mismo
Hola, claro que se puede. Pero para situaciones y cargas particulares. Yo lo probé... lee este tema (
https://www.forosdeelectronica.com/f12/controlar-tension-alterna-corriente-continua-53111/index2.html#post468813) y de una véz miras la discución:cabezon:... en varios sitios de la red como edaboard.com hablan de este método. El cuál ha sido muy anatematizado por un par de foristas........
mira con tus propios ojos y pruébalo para que nos cuentes como te fué.... puede que te funcione, como puede que no.. eso depende de ese sistema que vas a controlar.
La idea es utilizar una frecuencia relativamente Baja de PWM, que abarque unos 20 semiciclos de la señal de potencia, así tendras unos 20 "niveles" de potencia. Si tu red trabaja a 50Hz entonces serán como 200ms en el PWM, unos 5Hz.
Otra manera que se menciona un par de veces acá en el foro, es utilizar un puente rectificador y mosfet, un IGBT también servirá. Así tendrás encendido y apagado instantáneo aprovechando el PWM a una frecuencia mucho mas alta....
PD: espero que no se empiece una discusión en este tema, debido al frankenstein PWM-OptoTriac
Por otro lado......
Otra pregunta mas, fijate que estoy jugando con el rtc ds1307 de maxim, total que no he podido leer desde el, segun el programa si escribe bien puesto que no se traba pero cuando intento leer no lee nada se queda trabado alguien conoce la rutina para leer con I2C porque la que hice no funciona, o no se si me esta fallando el concepto de NACK porque tengo que enviarlo pero no entendi bien desde la datasheet como se envia podrian explicarme esto
case i2c_Datos_Salen:
TWDR = dato;
TWCR = (1<<TWINT) | (1<<TWEN);
while (!(TWCR & (1<<TWINT))); //Esperamos a que finalize
return (TWSR&0xF8);
break;
case i2c_Datos_Entran:
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while (!(TWCR & (1<<TWINT))); //Esperamos a que finalize
return TWDR;
La que dice datos_salen es para grabar y al parecer eso lo hace bien pero en Datos_Entran se queda en el ciclo while, la hoja de datos dice que para finalizar la lectura se debe enviar el NACK pero no se como se envia, la datasheet del atmega dice que no es accesible por el usuario
Ya miraste por acá??
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=49778
Tuve una tarea similar...., yo trabajo con el codevision el cual no tenía la libreria TWI, o por lo menos la version con la que estaba trabajando...
Luego, un dia después de buscar mucha información y a punto de empezar a desarrollar esa libreria, me llegó un e-mail de Adriana Haiduc de HP infotech informandome que habia una nueva version de mi codevisionAVR... la descargué y púm!!! ahí estaba la nueva libreria jejejej me ahorro muchísimo trabajo....
Arriba en el vinculo que lleva a el foro de AVRfreaks dicen que hay un proyecto que explíca mucho mejor lo que necesitas.... pero te toca registrarte para verlo.
Paz y Saludos