❤️ Curso de PIC: goo.gl/5riyKn 💙 Curso de ARDUINO: bit.ly/2q7Ln1c 🧡 Curso de MATLAB: bit.ly/2AtFZvr 😱 Como ser Experto en PIC en 7 Días 👉 bit.ly/2OTkNry ➤ Descargar el Código: wp.me/p5P46A-9d ➤ Implementación el PWM en PIC: bit.ly/2HI08E2 ➤ Explicación del Duty Cycle: bit.ly/3mBGnge
@@SergioACGiraldo es que tengo que hacer eso pero con trasmisión serial
@erickvelazquezhernandez4 жыл бұрын
Pero gracias
@alanshokerisimo3 жыл бұрын
Excelente video ! hay poca información de PIC en la web y esto ayudo bastante :)
@michelrazz9 жыл бұрын
gracias hno, me sirvió de mucho y andaba en un momento de ansiedad
@juanantoniohernandezbeato5636 жыл бұрын
muy bueno, me encantó este tutorial , gracias ...
@justovelarde34562 жыл бұрын
Felicitaciones por el video. muy instructivo. Una consulta, si yo quisiera trabajar con una valor fijo del duty cicle, ya no sería necesario el uso del potenciómetro? Gracias.
@SergioACGiraldo7 жыл бұрын
Para obtener el Código del Video: wp.me/p5P46A-9d Lista de Reproducción de todo el curso: goo.gl/5riyKn
@samuelespinoza8855 жыл бұрын
Qué buen vídeo te felicito y ganaste un suscriptor
@SergioACGiraldo5 жыл бұрын
Hola Samuel, muchas gracias, que bueno que te sirvió. Saludos!!
@albertsonido43712 жыл бұрын
que programa estas usando para la simulación? esta intrigante me re gusto!!!!
@SergioACGiraldo2 жыл бұрын
Es el Proteus 8. Que bueno que te ha gustado. Saludos!
@juanluis65127 жыл бұрын
El mejor, excelente gracias. Pero si quisiera regular la intensidad de un led que debería modificar?
@angiesofiaapontesanguino21432 жыл бұрын
es posible generar de alguna manera varias señales cuadradas por el puerto B?
@9211jorge7 жыл бұрын
excelente noche ,gracias por sus videos me han sido de mucha ayuda, quisiera preguntarle si es posible que generando 2 salidas de pwm pueda seleccionar con botones que salida variara con el potenciometro que esta conectado al pin adc, muchas gracias
@elementalwattson6 жыл бұрын
Hola, necesito saber si con esto puedo controlar una cerradura trabapestillo de 12VAC sin que se queme, mediante un mosfet, aprovechando los 12VDC de la entrada que usa el circuito que reconoce los controles remotos y pulsadores para abrirla.
@carlosadolfogarciaramos78936 жыл бұрын
ese mosfet es para altas corrientes y altos voltajes, que deberia usar yo si solo ocupo controlar un motor de 5 volts?
@tutorialesymaskevin22575 жыл бұрын
Excelente Vídeo! en el caso que quisiera usar una instrucción digital de un ciclo y no un potenciometro cual sería el código ¿¿¿???
@marcocardenas65153 жыл бұрын
hola Sergio me podrías ayudar, lo que quiero es generar una salida analógica regulable de 0 a 10 mv que sea estable y no genere ruido y que la entra a regular va a ser por puerto serial que va desde 0 hasta 5000.
@oscarpalafox73 жыл бұрын
¿cual seria el o los lenguajes mas sencillos para programar PICs? ¿recomendarias siempre usar C para programarlos o hay otro mas sencillo?
@SergioACGiraldo3 жыл бұрын
Si, lo ideal para microcontroladores como lenguaje sencillo es Lenguaje C. Puedes usar MicroPython también, pero no es tan óptimo como lenguaje C.
@pedrosilvestre95569 жыл бұрын
excelente aportación
@megam20098 жыл бұрын
aporte.
@alexandermorales84608 жыл бұрын
profe feliz domingo aqui estudiando,,,, otra preguntica la conversion adc la puedo hacer en el void main para que me quede ya fija durante el programa antes de que entre al while??? de todos modos en mi caso la puerta nunca va a ser mas grande o mas pequeña?? que me dice
@SergioACGiraldo8 жыл бұрын
Para ese caso No necesitas usar conversión adc. El PWM es totalmente independiente de la conversión adc. Si que necesitas es variar el ancho de pulso, deberas hacerlo por programación. Puedes definir un ancho de pulso fijo y luego cuando necesites reducir la velocidad defines que utilice otro ancho de pulso, que haga que tu motor vaya más lento. Osea, utilizando sentencias if - then puedes lograr lo que necesitas. Saludos.
@alexandermorales84608 жыл бұрын
ok profe lo que estaba pensando es decirle que me lea un potenciometro antes del hwile para que sepa de que tamaño es el recorrido no para q me maneje el PMW es como para que calcule el tiempo de recorrido rapido y luego que entre una variable con un DUTY de un 50 o 60 % menos que el rapido o le digo que me multiplique 60 por 100 la divida entre el valor de la variable rapida para que me quede con un 60% que me dice o la creo de una vez con 2 valores prefijados sin mucho rollo.
@sergioangellopezarteaga20085 жыл бұрын
un módulo llamadulo jajaja, a alguien más le dio risa? buen video por cierto
@ezequieldiaz11027 жыл бұрын
excelente video
@jairovelazquez43972 жыл бұрын
Que microcontroladores tienen más de 2 pwm
@alexandermorales84608 жыл бұрын
hola profe buen dia la pregunta no tiene nada que ver con el tema pero se que me puedes ayudar necesito hacer un sistema con modulo de punto remoto a 4 hilos + - señal y reloj para recibir informacion y saber que modulo me lo esta enviando el reloj es para sincronizar lo los modulos pueden ser 3 o 4 conoces algun integrado que me pueda hacer que yo le de una direccion con un dipswitch de 8 para su direccion y q al enviar un 0 o un 1 yo sepa que fue el no importa que no sea con pic
@alexandermorales84608 жыл бұрын
profe una pregunta esa oscilacion del pwm es independiente al programa que se este usando ejemplo se interrumpe con cualquiera de las interrupciones?
@SergioACGiraldo8 жыл бұрын
El PWM no se interrumpe, él continua trabajando.
@jhonsebastianboterolemos30466 жыл бұрын
TE HAS GANADO TU LIKE Y SUPSCRIPCION
@davidvasquez73418 жыл бұрын
Buenas noches, una pregunta la resolucion de "valor" Puede variar segun el pic o para todo pic tomaria un valor de 8 o 16 bits? digamos en el pic 18f4550 tambien se usan esas dos resoluciones para "valor" o podria digamos usar 10 bits?
@SergioACGiraldo8 жыл бұрын
Hola +David Vasquez , en el video me equivoqué, pero ya coloque la corrección. La variable "Valor" es un dato de 10 bits, y vale para todos los pics de gama Media como por ejemplo el 18F4550. Esa variable "Valor" va a depender de la resolución que queramos alcanzar en nuestro PWM. Puedes visitar la pagina: controlautomaticoeducacion.com/15-pwm-ancho-por-modulacion-de-pulso/ ahi explique detalladamente como averiguar esa resolución y como ella influencia el máximo dato que se debe guardar en la variable "Valor". Puedes el ejemplo 2, donde se genera una señal de 4Khz y veras aqui, que la variable "Valor" el máximo dato que podria guardar es 63.
@andrexivera65798 жыл бұрын
Buenas tardes, tengo una pregunta, es posible que ese valor del potenciometro sea de 12 voltios? es que ese voltaje vendra de un panel y segun el valor que me de debo configurar el duty cicle
@SergioACGiraldo8 жыл бұрын
Hola, puedes tomar el voltaje del Panel que son los 12v (como máximo) y pasarlos primero por un divisor de voltaje (2 resistencias, puede ser una de 10k en serie con una de 7.2k) para que el voltaje te baje a 5v. Recuerda que los microcontroladores solo soportan 5v o 3.3v, por eso debes escalizar todas tus señales a estos valores. De lo contrario vas a quemar tu componente. Saludos.
@maryramirez2326 жыл бұрын
Hola, Hola, disculpa tendrás un ejemplo de aplicación a servomotor?
@SergioACGiraldo6 жыл бұрын
Hola Mary, todavia no he hecho el ServoMotor en el curso, ese es uno de los próximos videos que debo colocar en el curso de microcontroladores. Saludos.
@maryramirez2326 жыл бұрын
muchas gracias, de verdad que tus videos como me han ayudado
@julito2010283498 жыл бұрын
con que comando se hace lo del mclr con pull up? Si se implementa fisicamente, a la salida del pwm cuando esta al maximo se debe encontrar con 5V cierto, gracias si puedes aclarar mis dudas, porque implementandolo fisicicamente lo maximo que me da en la salida es 1.3 v
@SergioACGiraldo8 жыл бұрын
Julio el master clear se declara en los fuses en el encabezado #fuses nomclr (para no usar mclr) algunos pics no tienen esta opcion y debes implementarlo fisicamente en el pin mclr colocar una resistencia a positivo. En cuanto a el PWM debes asegurarte de tenerlo en el 100%, de lo contrario no podrás medirlo con un multimetro, para eso deberas usar un Osciloscopio. Saludos.
@alexandermorales84608 жыл бұрын
HOLA PROFE BUEN DIA AQUI ESTUDIANDO APROVECHANDO EL SABADO PARA ESTUDIAR TENGO UNA DUDA COMO HAGO PARA CONSEGUIR UNA FRECUENCIA MINIMA DE 40 HZ
@andreeyehamir36136 жыл бұрын
Ing. Consulta: Si en una parte del programa le cargo un valor fijo (60%) al ccp1, este valor ya no será modificado en el resto del programa, y deseo cargarles valores variables al ccp2 en mi bucle principal, tendré la salida fija (ccp1) y la dinámica (ccp2) funcionando a la vez? O solo puedo usar un pwm a la vez? Saludos.
@SergioACGiraldo6 жыл бұрын
Hola Andree. Sin problemas, cada CCP funciona de forma independiente y los puedes usar al mismo tiempo.
@ld3664 жыл бұрын
Hola amigo me puede enseñar a enviar variables float por rs232 Excelente canal un abrazo!
@SergioACGiraldo4 жыл бұрын
Una forma simple de hacerlo es: printf('%f', variable_float);
@ld3664 жыл бұрын
Hola Sergio, ya lo intente de esa forma; lo que busco es crear una señal adc y enviarla por rs232 para que sea visualizada en una pantalla! En otras palabras busco controlar y aplicar el video del encoder pero variando un potenciometro desde un pic y el otro controlara el pwm y cargarle el duty d el valor del potenciometro. Pero me dicen que se debe enviar el valor del adc (float) en cadena string.... Gracias...
@SergioACGiraldo4 жыл бұрын
@@ld366 es parecido con lo que vimos en este video: kzbin.info/www/bejne/l6fXiqCZqtCmopI
@jhovanidiaz76204 жыл бұрын
buenas tardes, disculpe como seria el codigo si quiero una frecuancia de 500 Hz ya que con un prescaler de 4 y un postcaler de 1 me sale una carga del timer2 de 499. Sin embargo intente una con un prescaler de 16 y postacler de 1 obtengo una carga del timer2 de 124 pero ninguno de esos valores me sale la frecuncia de 500 Hz.
@maelectronics84506 жыл бұрын
Buen video disculpa ¿se puede controlar el pwm con entradas digitales?
@SergioACGiraldo6 жыл бұрын
Claro que puedes. Tomas el numero binario de las entradas digitales, lo transformas a un numero decimal y se lo asignas al Duty Cicle.
@leangalante29048 жыл бұрын
Hola Sergio, muy buen video. Te comento mi problema. Tengo que controlar 6 servos (cada uno con distinta señal), hay alguna forma de realizarlo que no sea usando 3 pic? Ya que mi pic sólo tiene 2 salidas ccp. Por cierto el pic a utilizar es el 16f873a (muy parecido al 16f877a solo que con menos puertos). Y te agradecería mucho si me dijeras si es posible usar tmr0 en vez de tmr2. Desde ya muchas gracias!
@SergioACGiraldo8 жыл бұрын
Puedes manejar Servos con un solo PIC, puedes manejar el numero de servos que quieras con el numero de salidas que tenga el PIC sin problemas. Ej si el pic tiene 8 salidas, puedes manejar 8 servos. Yo lo haría con desbordamiento en el tmr0. De hecho la practica de Servos es la próxima que estoy montando para subirla en la pagina. Pero lamento decirte que todavia va a demorar, pues estoy muy atareado con el Doctorado y tengo la pagina muy descuidada. Cuando tenga un tiempo la monto. Suerte. Por lo menos sabes que puedes usar un solo PIC.
@leangalante29048 жыл бұрын
Muchas Gracias por la respuesta. Con gusto lo miraré. Un saludo!
@josevarela22755 жыл бұрын
Buenos días señor Sergio, quiero pedirle un favor si me puede ayudar con un proyecto. Mi proyecto trata de simular ondas cuadradas pero el problema es que necesito aumentar su frecuencia y velocidad como lo hace en este vídeo; intente programar la señal con el código del vídeo pero no me toma la señal que quiero, que podría hacer en este caso.
@SergioACGiraldo5 жыл бұрын
Debes tener en cuenta que dependiendo del cristal que le pongas, vas a tener una frecuencia máxima en la salida PWM, como es explicado en la entrada wp.me/p5P46A-9d
@gabrielyaht50905 жыл бұрын
Buenas tardes sergio, hoy encontré tu canal y me pareció muy interesante ya me suscribí!!! Tengo una duda.... Como puedo controlar un motor de 120 vac con micro controlador? el proyecto que me piden es variar la velocidad del motor de 120 vac utilizando el PWM por medio de un pic cabe aclarar que el pic puede ser de cualquier modelo, esa es mi duda saludos!!!
@SergioACGiraldo5 жыл бұрын
Necesitas una etapa de potencia para eso. Puedes usar un MOSFET o un Rele de estado solido para recibir la señal de pwm, y de esa forma regular la velocidad del motor, claro, si el motor es monofasico. Trifasico ya complica un poco. Tambien puedes hacerlo con TRIACS. La forma más efectiva de mantener el torque y regular la velocidad, seria colocando un inversor o variador, y con el PIC enviar la señal de control por pwm (claro que esa última opción es muy cara)
@MrBetos0075 жыл бұрын
@@SergioACGiraldo como podria hacer lo del pwm con el mosfet y un pic?
@SergioACGiraldo5 жыл бұрын
@@MrBetos007 para AC es más común los triac, pero con mosfet puedes crear un DIMMER controlado por PWM usando transistores de efecto de campo (mosfet). En google puedes encontrar algunos.
@MrBetos0075 жыл бұрын
@@SergioACGiraldo el triac lo pondria en la salida? Hacia el motor monofasico?
@alexandermorales84608 жыл бұрын
profe una pregunta si yo quiero que un motor q tiene 70 segundos de recorrido cuando llegue a 65 baje la velocidad un cierto porcentaje lo puedo hacer yo lo se. pero el tiene una interrupcion que cuando yo presiono un boton el se devuelve yo puedo guardar ese tiempo de recorrido que llevaba en una variable y no se pierde con la interrupcion? es para qie el sepa donde estaba parado y cuando se devuelva el tambien faltando 5 segundos tiene q bajar la velocidad osea en los 2 sentidos tiene que bajarla 5 segundos antes de llegar al final de carrera
@SergioACGiraldo8 жыл бұрын
Puedes hacerlo. Para eso declaras la variable de forma Global, osea despues de las instrucciones de los encabezados como por ejemplo la variable duty que creamos en este video. Esa variable esta declarada de forma global y puede ser usada por cualquier funcion o interrupcion del programa del PIC.
@alexandermorales84608 жыл бұрын
mil gracias profe ando buscando la vuelta de como implementarlo
@alexandermorales84608 жыл бұрын
profe una pregunta para yo controlar un motor ac esa frecuencia debe estar entre los 60 hz ? que es la frecuencia de mi pais ?? y modifico entonces el duty
@matoss199620128 жыл бұрын
sólo motores de cc
@alexandermorales84608 жыл бұрын
profe disculpe mi insistencia el motor ac no se puede controlar mediante el pwm controlando la fase?
@SergioACGiraldo8 жыл бұрын
No, para motores AC, no puedes hacerlo con un PWM. Para eso vas a necesitar un circuito de potencia que controle las fases del motor ac, algo como un variador de velocidad. El PWM lo podrias usar como señal de control, pero debes mandarla a tu etapa de potencia, (Por ejemplo a alguna entrada del variador de velocidad) y de esa forma modificar la velocidad del motor.
@alexandermorales84608 жыл бұрын
saludos profe claro profe yo digo es utilizar el pwm para controlar la fase por medio de un triac que maneje la suficiente corriente que demanda el motor ac entonces si puedo profe?
@SergioACGiraldo8 жыл бұрын
Hola Alexander, si utilizas un Triac, puedes hacerlo siempre y cuando tu motor de AC sea monofasico. Si es trifasico debes regular las tres fases y ahi necesitarias otro circuito de potencia o un variador de velocidad. Pero claro, con un motor monofasico, puedes hacerlo muy parecido con el cxto que vimos en este video. Éxitos en tu proyecto.
@armandojaz8 жыл бұрын
Buenas soy nuevo en esto entiendo alguanas cosas y otras no, pero hay voy, tengo pensado hacer un proyecto pero con el pic 18f4550, necesito lo siguiente: colocar en on-off una salida mediante un potenciometro, es decir que el potenciometro al irlo incrementando o a cierto porcentaje me ponga en on una salida y viceversa, al disminuir que me ponga off la salida...esta configuracion me servira para esto???espero me puedan ayudar y gracias de antemano...
@SergioACGiraldo8 жыл бұрын
Armando, pues no se, va a depender de lo que estes pensando hacer. El PWM efectivamente coloca una salida (ccp1) en ON-OFF y puede ser con un potenciometro, a medida que sube esta mucho más tiempo en ON y a medida que baja está mucho más tiempo en OFF, eso si, ese cambio de ON-OFF es a altisima frecuencia, es decir que son cambios que ocurren constantemente a una altisima velocidad.
@armandojaz8 жыл бұрын
le envie un correo por el blog espero me pueda ayudar y gracias de ante mano...
@nipoanz78656 жыл бұрын
Sergio, cuáles son los módulos especiales que tienen mas pwm?, gracias
@SergioACGiraldo6 жыл бұрын
Hola Nipoaz, puedes buscar en el selector de Microchip, alli puedes encontrar el pic que más te convenga, por ejemplo buscar cuales tienen más pwm, puertos usb, ethernet, etc. El link es: www.microchip.com/paramchartsearch/chart.aspx?branchID=1005 Por ejemplo yo busqué un pic con 5 pwm, y encontre el PIC16F1768. Saludos.
@josedavidrodriguezvaldes91855 жыл бұрын
Más videos así por favor
@carpiorodriguezjoseantonio80017 жыл бұрын
disculpe tengo una duda y es la siguiente: si quisiera apagar el pwm tendría que apagar el puerto o que tendría que hacer? si pudiera responder se lo agradecería mucho
@SergioACGiraldo7 жыл бұрын
Simplemente poner el pwm en cero. set_pwm1_duty(0);
@e14enrique6 жыл бұрын
Mi duda es en como se puede hacer para hacer el control para los hertz yo quisiera trabaja con diferentes frecuencia en las cuales puedan ir aumentando y disminullendo las frecuencia de los hertz de lo minimo que seria 245 hertz segun el calculo a 200khertz se podria hacer eso ??
@SergioACGiraldo6 жыл бұрын
Hola Enrique, si puedes hacerlo, igual que lo vimos en el Blog, cada que desees cambiar la frecuencia del PWM, debes crear una rutina que recalcule el timer2 para luego programarla en el pic (setup_timer_2) y también calcular la resolución a dicha frecuencia para poder mandarla el PWM con (set_pwm1_duty).
@ricardomoran90624 жыл бұрын
Hola Sergio Quede confundido un poco espero pueda despejar mi mente Si rp2 es de 8 bits por que en duty_cicle le ponemos a que escriba lo que el adc lee si son 10 bits??? Por que no marca error??? Hice varias pruebas y si le pongo que envíe una señal a 255 me da prácticamente un 1 constante Pero si le pongo 256 me da una función cuadrada con un ms en alto y 3 ms en bajo No lo logró digerir
@SergioACGiraldo4 жыл бұрын
Hola Ricardo, el PWM del PIC es de 10 bits, el PR2 es de 8 bits, pero este es usado para realizar un preescaler a la frecuencia del pwm. Te recomiendo entres al sitio WEB, pues allí está todo más detallado que en el video. En esta configuración es necesario adaptar bien la resolución para que te entregue adecuadamente la señal cuando le ingresas un duty cicle al sistema: wp.me/p5P46A-9d Si quedas con dudas puedes escribir de nuevo. Saludos.
@maryramirez2326 жыл бұрын
disculpa y si quiero mandar ese dato (duty) por serial como lo podria hacer? usando la funcion printf?
@SergioACGiraldo6 жыл бұрын
debes tomar el dato del puerto serial, convertirlo a un valor entero (porque el viene en formato char) y mandar el dato al duty
@alexandermorales84608 жыл бұрын
excelentisimo profe quiero implementar un programa para un porton electrico que me baje la velocidad 2 o 3 segundos antes de llegar al final de la carrera yo lo tengo hecho en asembler pero sin el pmw lo voy hacer en c a ver como me sale
@SergioACGiraldo8 жыл бұрын
Ya lo tienes hecho en asembler??. Para hacer esto, debes tener algun modulo de potencia para el motor, Pienso yo que es un motor AC, pero es monofasico o trifasico?. Recuerda que el pic solo sirve como elemento de control, este debe mandar la señal a la etapa de potencia (Puede ser un inversor de frecuencia si el motor es trifasico) para poder regular la velocidad del motor ac.
@alexandermorales84608 жыл бұрын
si claro profe eso el pic sabe cuando esta abriendo y cuando esta cerrando, con un reley doble tiro doble polo invierto la fase y el neutro ya que es monofasico. y el trian es quien me corta la fase de entrada que es la misma que le entrego al motor, el PMW es lo que me regula la velocidad mandandole los pulsos al TRIAC mejor dicho a un (moc 3011) que es quien activa al triac, lo que no se es de cuanto debe ser la frecuencia q que tengo que generar me imagino que una maxima de 60hz y una minima de 30hz para que me reduzca la velocidad del motor.
@alexandermorales84608 жыл бұрын
si quiere le envio el programa de asembler y el plano en proteus usted me dice para que vea como trabaja.
@johnrivers18466 жыл бұрын
Como lo implementarias para 2 potenciómetros? Y otro pwm?
@SergioACGiraldo6 жыл бұрын
sería muy parecido, habilitando otra entrada analógica y activando el segundo pwm del pic (setup_ccp2(ccp_pwm);)
@calimanska8 жыл бұрын
Hola excelente aportación, apenas estoy experimentando con el pic, ¿como podría poner un botón e paro e inicio? Saludos y muchas gracias por el aporte, Aprendo mucho de ellos.
@SergioACGiraldo8 жыл бұрын
Hola Adrian, utiliza lo visto en la entrada de antirebote, de la pagina, y para parar colocas la salida del pwm en cero y para iniciar vuelves y colocas la salida del pwm en el valor que estaba. Debes hacerlo con sentencias IF - ELSE. Saludos.
@ABCDEF-lx9zm8 жыл бұрын
solo una duda. a lo que dice en su pagina. en el ejemplo 1 donde se realizo el calculo para generar la señal de 1 Khz, en la parte donde dice "Donde si valor vale 0, tendre un ciclo de trabajo del 0%, si valor vale 1000, tendré un ciclo de trabajo de 100%, si valor vale 500, tendré un ciclo de trabajo de 50%" , se supone que lo maximo que puedo leer es 1024 y este valor lo almacenos en duty y dicho valor se lo estamos asignando a la función set_pwm1_duty(duty);, pero entonces cuando "duty" llegue a 1000 me estara mandando un pwm con ciclo de trabajo del 100% pero si pasa de 1000?? si se supone que el pot al tope . leemos 1024. que pasa ??? saludos ing.
@SergioACGiraldo8 жыл бұрын
Efectivamente. Para generar un PWM de 1Khz como esta en el ejemplo para alcanzar el 100% del pwm debemos asignar 1000 a duty, pues como se explica en la pagina lo maximo que podemos poner depende de la resolución. Como cuando se hace un PWM de 4Khz, que lo máximo que podriamos poner en la variable duty es de 64. Ahora bien, en el ejemplo yo asigno directamente los 1024 que se leen del potenciometro pues es muy poca la diferencia y no afecta mucho. Cuando se pasa de 1000, el sigue mandando el 100% en el PWM. Ahora si quisieramos ser más precisos, deberiamos hacer una interpolación de estos valores, para cuando el micro lea 1024 el coloque en la variable duty 1000. Saludos.
@ABCDEF-lx9zm8 жыл бұрын
eso es lo que estaba pensando porque crei que si importaba,. antes de mandarle el duty a la funcion set_pwm1(duty);,colocar un condicional if, donde establesca si duty es mayor o igual a 1000 entonces le asigne a duty el valor 1000, y despues de se if ahora si mandarle el valor duty a la funcion set_pwm1(duty) esta bien asi cierto??? ... y gracias por contestar.
@SergioACGiraldo8 жыл бұрын
Totalmente valido. te va a funcionar sin problemas. Saludos.
@ABCDEF-lx9zm8 жыл бұрын
muchas gracias ingeniero. Termine sus tutos. ahora a realizar proyectos propios. Le doy las gracias aprendi demaciado con sus tutoriales.
@SergioACGiraldo8 жыл бұрын
Gracias, lo importante es que te sirvieron de algo las clases. Éxitos en tus proyectos. :)
@osmarluna38434 жыл бұрын
Como lo podre hacer en lenguaje ensamblador?
@andresfeliperodriguezcuerv76079 жыл бұрын
Amigo ya pude lograr controlar leds y motor dc estoy intentando hacerlo con pic c y un pic 18f4550 controlar un bombillo a 110V ac pero por pwm como se haria? si tienes algun tutorial gracias excelente video
@SergioACGiraldo9 жыл бұрын
+Andrés Felipe Rodríguez Cuervo basicamente seria el mismo ejemplo del motor. Solo que para swichear la intensidad del bombillo debes emplear algún integrado que lo permita. Por ejemplo puede ser con un relé de estado solido o con triacs. Para emplear ese pic, simplemente cambia el encabezado del programa. #include
@andresfeliperodriguezcuerv76079 жыл бұрын
Si pero de la misma forma se podria variar la iluminacion de la lampara es que cuando conecto el pin de l pic a la etapa de potencia a un moc y un triac empieza a parpadear la lampara en estado alto y se baja un poco estado intermitente como hago para poder variar bien esa iluminacion y no haga lo que me sucede digamos de 0% al 25% al 50% y 100% sin que haga intermitencia y vaya subiendo bien me hago enterder gracias
@elementalwattson5 жыл бұрын
2:29 width = Ancho (Band widht = Ancho de banda) with = con (I'm with her = Estoy con ella)
@SergioACGiraldo5 жыл бұрын
Thank you very much for your observation. You are right!!
@luisalbertocervantesescami47864 жыл бұрын
Hola Sergio, disculpa yo intenté hacer una señal pwm de 20 kHz, y todo muy bien, pero me percato de que mucho antes de que el potenciometro gire el 100% la señal PWM se hace continua, segun mi simulación el ciclo de trabajo está al 100% cuando el potenciometro a penas ha girado el 18%, ¿sabes a qué se debe?, por cierto ya utilizé los 3 preescalers y sigue igual :(, saludos y felicitaciones por tu canal
@SergioACGiraldo4 жыл бұрын
Nuevamente Luis, todo está en el sitio WEB: wp.me/p5P46A-9d, dale un vistazo al contenido. Se debe a la resolución, por ejemplo en el sitio web si miras el ejemplo 2, donde se hace un PWM de 4KHz, allí calculamos que como máximo podíamos enviar un duty cicle de 63. El duty cycle es configurado entonces por la siguiente instrucción: set_pwm1_duty(valor); Donde si valor vale 0, tendre un ciclo de trabajo del 0%, si valor vale 63, tendré un ciclo de trabajo de 100%, si valor vale 32, tendré un ciclo de trabajo de 50%
@rolandoaguilera31147 жыл бұрын
Porque el cristal de cuarzo es elegido como 4MHZ?
@SergioACGiraldo7 жыл бұрын
Puedes escoger el que desees, no necesariamente debe ser el de 4000MHZ, yo escogí ese fue porque es el que más uso. El cristal es solo un oscilador que le proporciona una señal de reloj estable al pic, puedes ponerle uno mayor si quieres para obtener mayor velocidad, uno de 20000MHZ por ejemplo, pero debes cambiar en el #FUSES en lugar de colocar XT debes colocar HS y obviamente hacer todos los cálculos con dicho cristal para el pwm.
@rolandoaguilera31147 жыл бұрын
Cuales son las implicaciones de usar un cristal de cuarzo mayor o menor? Alguna ventaja o desventaja? Muchas Gracias! Excelente Aporte!
@ANTONIOSTAR6 жыл бұрын
Bueno professor, poderia adicionar um botão para inverter sentido do motor?
@SergioACGiraldo6 жыл бұрын
Olá Antonio. Para inverter o motor será necessario vc colocar no circuito uma ponte H. Um exemplo dessa ponte é a vista no video de motor passo a passo. Talvez vc possa ter uma ideia assistindo aquele video. Grande abs. controlautomaticoeducacion.com/microcontroladores-pic/motor-paso-a-paso/
@ANTONIOSTAR6 жыл бұрын
GRACIAS PROFESSOR
@melaniebonifaz25077 жыл бұрын
Disculpa con tu codigo me dice q el device esta mal y que me me falta declararle bien. Tu codigo esta copiado y pegado para comprobar pero me pasa eso. Como puedo areglarlo por favor ?
@SergioACGiraldo7 жыл бұрын
mmm no se, será la versión del PIC C talvez? Que error te aparece en el Device?
@melaniebonifaz25077 жыл бұрын
que el device le falta () pro le pongo y despues me da error que me faltad declarar. Pero le borre y me corrio. Estoy adapatando a un l293D pro en una parte disminuye en otra aumenta y en otra vuelva a disminuir no esta controlando bien.
@SergioACGiraldo7 жыл бұрын
Ok, que bueno que te simuló. Tu problema talvez sea la frecuencia del pwm que quieras implementar, pues de esto va a depender la carga del Timer2. Mi recomendación es que ingreses al blog, pues allí esta un poco más explicado que en el video, porque hay cosas que fui adicionando después de haber grabado el video. Te dejo el link: controlautomaticoeducacion.com/15-pwm-ancho-por-modulacion-de-pulso/ Éxitos en tu proyecto. Saludos.
@melaniebonifaz25077 жыл бұрын
Ahi mismo estoy pero no se si me puedes ayudar por fa. Mira estoy con un oscilador de 8MHz y quiero q vaya de 0 a 1023. Le hice tus calculos pero nada no se si me puedes ayudar .
@leosoto91206 жыл бұрын
Melanie Bonifaz ¿lograste resolver el problema del device ya q me pasa lo mismo q a ti ?
@lucaspajarocauzzi5 жыл бұрын
Hola! Que PIC podría usar para generar 4 salidas PWM??? Muchas gracias!
@SergioACGiraldo5 жыл бұрын
Lucas puedes buscar en el selector de Microchip, alli puedes encontrar el pic que más te convenga, por ejemplo buscar cuales tienen más pwm, puertos usb, ethernet, etc. DEBBES DEZPLAZARTE HACIA LA DERECHA, la pagina es muy ancha, al final a la derecha estan los modulos PWM. El link es: www.microchip.com/paramchartsearch/chart.aspx?branchID=1005
@lucaspajarocauzzi5 жыл бұрын
Gracias pude entrar! Quiero hacer un controlador para un motor con 4 fases que estoy diseñando.! Tenes algún otro sitio donde pueda sacar más información? Muchas gracias por tu respuesta! 😊
@antonioblanco30868 жыл бұрын
Hola Sergio como te va? he copiado tu código para usarlo con un pic 16f877A y solo con cambiar el encabezado por #include me genera el siguiente error :" Unknown keyword in #FUSES "INTRC_IO"" . he quitado el intrc_io y compila perfecto pero al momento de simular en proteus el programa se queda muerto no hace absolutamente nada. He colocado el codigo tal cual como tu lo tienes y en proteus lo he simulado con el 16f887 y efectivamente si funciona. que puedo hacer?
@SergioACGiraldo8 жыл бұрын
Antonio, lo acabé de probar y funciona bien con el 16f877A eliminando el fuse intrc_IO tal y como lo indicas. Seguramente no has colocado el MCLR (master clear) a positivo, osea debes colocar el PIN 1 a positivo (+5v) para que el programa se ejecute, si este pin esta desconectado, no te va a funcionar.
@antonioblanco30868 жыл бұрын
Amigo te agradezco muchísimo que respondieras a la brevedad. Resulta que apague el equipo y al rato cuando lo prendí probé de nuevo y funcionó perfecto, quizás fue algún error del programa que al reiniciar se quitó o quien sabe. El asunto es que (no sé por qué) el programa funciona sin conectar el pin 1 a vcc, al menos en el 16f877A. En fin muchas gracias por el vídeo vi tu canal y explicas fino, gracias!
@oscarcasarroja13188 жыл бұрын
Antonio Blanco lo que pasa es que el 16F877A no tiene oscilador interno, por eso te tira error, si no conectas el MCLR, es probable que no funcione bien tu micro, el MCLR debe ir a VCC con una resistencia de 10k en serie, o inhabilitar el MCLR por software
@antonioblanco30868 жыл бұрын
Oscar Casarroja Gracias por el consejo! lo tendré en cuenta
@franciscojavier6636 жыл бұрын
+Antonio Blanco serías tan amable de compartirme tu codigo, igualmente trato de hacer el mismo ejercicio pero con un P16f877a. mi correo es pachoaj@hotmail.com porfa, te lo agradecería mucho!
@soleydadesousa875 жыл бұрын
hola puedo usar ese codigo con el pic18f4550
@SergioACGiraldo5 жыл бұрын
Claro que se puede, es solo cambiar en el encabezado la libreria del PIC
@elementalwattson4 жыл бұрын
Lo hice pero no anda.. la unica diferencia es que pongo unsigned int16... que supuestamente seria lo mismo y no funciona, se apaga cada tanto el led y se prende al variar los valores. Hace intermitencias nada mas. Tambien uso la funcion map para convertir los valores recibidos de 0-512 a 0-1000.
@SergioACGiraldo4 жыл бұрын
Copiaste el código del sitio Web? Link en la descripción del video. Y configuraste el PWM a 1KHz. Si pones una frecuencia mayor debes disminuir la resolución en el duty cicle, por ejemplo si el PWM es 4KHz el duty va de 0 - 63 únicamente. Todo está detallado en el sitio web.
@elementalwattson4 жыл бұрын
@@SergioACGiraldo Ya está! No había visto la fórmula para determinar VMax. Solucionado!! Mil gracias por este excelente y completo curso. Sos el único que lo ha dado al 100% duty cycle :D
@Gratiman6 жыл бұрын
Es modulación por ancho de pulso no ancho por modulación de pulso, por lo demás excelente video.
@juanjoseromero2873 жыл бұрын
Quita la música, desconcentra
@wilsonfabiandiazmartinez19686 жыл бұрын
Amigo no declaraste los puertos
@SergioACGiraldo6 жыл бұрын
Si, es verdad. En este código no use ninguna instrucción que llamara los puertos B,C,D. El modo analogo lo active con Setup_adc_ports( ALL_ANALOG );
@edgarpintor91683 жыл бұрын
@@SergioACGiraldo si sólo quieres activar el puerto a como análogo?
@jhovanidiaz76204 жыл бұрын
buenas tardes, disculpe como seria el codigo si quiero una frecuancia de 500 Hz ya que con un prescaler de 4 y un postcaler de 1 me sale una carga del timer2 de 499. Sin embargo intente una con un prescaler de 16 y postacler de 1 obtengo una carga del timer2 de 124 pero ninguno de esos valores me sale la frecuncia de 500 Hz.
@SergioACGiraldo4 жыл бұрын
Hola Jhovani, y que frecuencia te está saliendo. Efectivamente con el prescaler de 16 debes llegar a una carga del timer2 a 124, configurándolo asi: setup_timer_2(T2_DIV_BY_16,124,1); Y tu máximo Duty Cicle será de 498, de ahí para arriba siempre se mantendrá en 1 el PWM, ese seria tu valor máximo a configurar en el PWM. O sea para conseguir una frecuencia a la mitad, 50%, tu duty cicle debe ser de 249
@jhovanidiaz76204 жыл бұрын
@@SergioACGiraldo muchas gracias profe de echo ya la obtuve, pero tambien requiero ahora una de 50Hz y 100Hz pero osea tengo que colcar una crystal de 1 MHz externo pero como quedaria el codigo?
@SergioACGiraldo4 жыл бұрын
Debes usar el Oscilador interno, igual que lo hicimos en el ejemplo del servomotor, donde configuramos el PWM a 50Hz. Dale un vistazo. controlautomaticoeducacion.com/microcontroladores-pic/servomotor-con-pic/
@jhovanidiaz76204 жыл бұрын
@@SergioACGiraldo va que va muchas gracias ya me estaba reventando la cabeza :( Una última duda profe estuve variando el postcaler pero no entendí su función, no veía cambios en las ondas cuadradas, y que valores puede tomar esté?
@SergioACGiraldo4 жыл бұрын
El Postcaler es un número de 1-16 que dice cuántas veces el Timer2 tiene que desbordarse para llamar a la interrupción (1 es una vez, 2es 2 veces, y así sucesivamente).