Medir Velocidad RPM de un Motor Encoder con PIC 🚗 [PIC C en CCS C] # 029

  Рет қаралды 55,229

Sergio A. Castaño Giraldo

Sergio A. Castaño Giraldo

Күн бұрын

Пікірлер: 124
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
❤️ 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
@davidgavilanes6868
@davidgavilanes6868 2 жыл бұрын
Excelente Informacion Gracias a ud aprendi todo lo que me quedo dudas en las clases universitarias
@alfonsoalfredocamacho8502
@alfonsoalfredocamacho8502 7 жыл бұрын
Aprovecho Sergio para decirte que he visto otros videos y los tuyos son los mas didacticos gracias por tu ayuda y conocimientos que explicas bastante claro
@johnlenimanchenofreire9865
@johnlenimanchenofreire9865 2 жыл бұрын
Gracias por compartir valiosa información, muy bien explicado.
@SergioACGiraldo
@SergioACGiraldo 2 жыл бұрын
Gracias a vos John por tomarte el tiempo en comentar. saludos.
@sebastianrodriguez1506
@sebastianrodriguez1506 3 жыл бұрын
Muchas gracias. Excelente profesor
@SergioACGiraldo
@SergioACGiraldo 2 жыл бұрын
Gracias Sebastian, que bueno que te ha gustado. Saludos.
@baar2321
@baar2321 11 ай бұрын
Muchas gracias por tus videos!!
@saraemanuel1
@saraemanuel1 7 жыл бұрын
excelente como siempre sergio
@SergioACGiraldo
@SergioACGiraldo 7 жыл бұрын
Gracias Emerson. Un abrazo grande para vos.
@marcostexoquipa6876
@marcostexoquipa6876 3 жыл бұрын
Me ayudo mucho su video. Muchas gracias xD.
@SergioACGiraldo
@SergioACGiraldo 3 жыл бұрын
Excelente Marcos, que bueno que el video te fue de utilidad. Saludos y muchos éxitos!
@ubaldoserraldemartinez4172
@ubaldoserraldemartinez4172 2 жыл бұрын
excelente viedo. tendrás al gun video de como conectar un encoder fisicamente a un motor dc?
@bayron1251
@bayron1251 6 жыл бұрын
gracias por toda la información que nos brinda severo dios lo bendiga....
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
de nada Bayron, que bueno que te haya servido. Saludos!
@videoszolution5380
@videoszolution5380 Жыл бұрын
Sergio cordial saludo. Estoy tratando de hacer esta programacion con el pic12f1822 y este tiene CCP1 en 2 pines RA0 y RA5, podrias por favor decirme como lo configuro para determinado pin, gracias.
@dayanagonzalezsanchidrian2149
@dayanagonzalezsanchidrian2149 3 жыл бұрын
Hola, Sergio. Quisiera saber cuál es el último video del curso de microcontroladores PIC. ¿Es el número 55 de la lista de reproducción de KZbin o hay otros videos en algún otro sitio web? Muchas gracias de antemano.
@SergioACGiraldo
@SergioACGiraldo 3 жыл бұрын
Dayana por ahora es hasta el número 55, más adelante seguiré colocando más videos.
@vladimirmendez2721
@vladimirmendez2721 4 жыл бұрын
Buenas noches Ingeniero, disculpe una consulta. Logré realizar un tacometro usando timer0 y el pin6 T0CKI , ahora quiero hacer un pwm con el pin2 AN0 como el de su video, pero me da error en sAN0, uso el pic16f877a, como podría hacerlo?
@SergioACGiraldo
@SergioACGiraldo 4 жыл бұрын
Hola Edson, el 16F877A no admite el sAN0, tienes que quitar el "s" y colocarlo así: AN0. No entendí si quieres hacer un PWM en el pin 2??? Ese PIN No es de PWM. Los pines de PWM son el RC1 y RC2 pines 16 y 17 respectivamente. Saludos.
@vladimirmendez2721
@vladimirmendez2721 4 жыл бұрын
@@SergioACGiraldo gracias por la pronta respuesta ingeniero, repliqué su video de medir RPM pero con timer0 y con el pic16f877a quiero configurar en AN0 el potenciómetro y en TOCKI el generador de pulsos, pero el programa no me funciona
@SergioACGiraldo
@SergioACGiraldo 4 жыл бұрын
Tienes que ver que error te marca, por lo menos ya pudiste quitar el primer error que era el sAN0. Debes empezar por partes, primero que te haga la conversión ADC, luego piensas en hacer el pulso con el timer. Acá en el canal hay un video donde hicimos un tren de pulsos con el timer 0, en esa ocasión lo hicimos para controlar un servomotor, quizas te pueda servir. kzbin.info/www/bejne/oqaykoaQiMaUqJo
@SergioACGiraldo
@SergioACGiraldo 7 жыл бұрын
Para obtener el Código Visita: wp.me/p5P46A-4f Link PWM: wp.me/p5P46A-9d Manejo de LCD: wp.me/p5P46A-4M Lista de Reproducción del Curso Completo: goo.gl/5riyKn
@adolfooteroanton2106
@adolfooteroanton2106 4 жыл бұрын
Hola Sergio. Es un gusto siempre ver tus videos pues aprendo y reafirmo mis conocimientos. Bien en este video me surge una duda en cuanto a la explicación del código referente a el flanco programado. En la programacion pones flanco de subida pero explicas como flanco de bajada. ¿Estoy entendiendo mal la programación del Pic? Por tu atención de antemano te agradezco saludos.
@SergioACGiraldo
@SergioACGiraldo 4 жыл бұрын
Hola Adolfo, disculpa, fue un error al momento de hacer el video. En el sitio web siempre está toda la información actualizada, dale un vistazo que allá está corregido. Saludos.
@legendario340
@legendario340 5 жыл бұрын
hola, estoy usando el pic18f452 con un cristal de 10 Mhz ya agregue la librería del micro y le coloque HS en fuses, pero me genera error en la linea 31, undefined identifer, que puede ser, ayuda x favor
@JL-ek9mi
@JL-ek9mi 4 жыл бұрын
Buenas tardes Sergio, sobre este circuito tengo una duda, el modelo de PIC, usted lo elaboro o esta dentro de los modelos de Proteus, le comento ya que hace días soy su seguidor, corrí este archivo desde Proteus y el PIC 16F877 no corrió, lo intente con su archivo (bajándolo) y corre de 10, sabría usted decirme que sucede, por favor, por otro lado felicidades, amigo es usted un genio, tiene un Don, un fuerte abrazo desde México.
@anthonyinostroza3433
@anthonyinostroza3433 5 жыл бұрын
Tremendo capo, bravo
@EduardoKnight
@EduardoKnight 7 жыл бұрын
Hola excelente video me ha ayudado bastante, una duda si podrías resolverla, cómo hacer un control PID de posición de un motor con encoder, cómo obtener la función de transferencia? Muchas gracias ! excelentes aportaciones las que haces
@lugoxy1597
@lugoxy1597 4 жыл бұрын
Buenas , soy nuevo en esto y estoy tengo disponible un Dspic33, servira la misma analogia? se q el codigo cambia pero no se si servira o es diferente. saludos
@sebasA
@sebasA 5 жыл бұрын
si inicializo otra entrada de datos, las interrupcion no se haria tambien por ejemplo cuando active la otra entrada?
@SergioACGiraldo
@SergioACGiraldo 5 жыл бұрын
Hola Sebastian, visita el blog que alli coloque las interrupciones del 16f887: wp.me/p5P46A-4f Vas a tener que habilitar la interrupción externa por pines rb4-rb7 para conectar los otros motores y tendrás que programar que solo lea el flanco de bajada. Con un if (bit_test(portb,4)==0) dentro de la interrupción lo puedes lograr.
@Ventedtax0
@Ventedtax0 5 жыл бұрын
hola queria saber el diodo de que tamaño es??
@dragon81454
@dragon81454 3 жыл бұрын
No está el código en lenjuage ensamblador
@josephvelasquez4852
@josephvelasquez4852 6 жыл бұрын
una consulta! cuando corro el programa me sale error, que hay mucha carga en la pc y nno esta corriendo a tiempo real y el resultado que me bota es 0 porque no lee ni un flanco de bajada! ya que en ese tiempo aun no se mueve el encoder! como podria arreglarlo! lo hice con PIC 16F877A!
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Lo del tiempo real es una advertencia del proteus, sin embargo te debería ejecutar el código solo que un poco mas lento.
@josephvelasquez4852
@josephvelasquez4852 6 жыл бұрын
ya vi mi error! no se porque mi proteus esta mal! no compila algunas cosas y si lo hace lo hace con error! no se si sea mi proteus o mi lpatop pero no es el codigo! gracias por responder! Mas bien si tienes alguna solucion para lo que me esta pasando seria xvr!! instale otros proteus y sigue sin funcionar! no se que pueda estar pasando!
@israelsanchez8750
@israelsanchez8750 5 жыл бұрын
¿Cómo saber si esta girando hacia adelante o hacia atrás?
@SergioACGiraldo
@SergioACGiraldo 5 жыл бұрын
La respuesta está en el minuto 7:47 dale click para que te lleve al momento exacto.
@israelsanchez8750
@israelsanchez8750 5 жыл бұрын
@@SergioACGiraldo pero en este caso se deberia meter la segunda señal del encoder, para esto se necesitaria otra interrupcion externa?
@SergioACGiraldo
@SergioACGiraldo 5 жыл бұрын
Vas a tener que habilitar la interrupción externa por pines rb4-rb7 para conectar los otros motores y tendrás que programar que solo lea el flanco de bajada. Con un if (bit_test(portb,4)==0) dentro de la interrupción lo puedes lograr.
@yairettien3974
@yairettien3974 6 жыл бұрын
Hola disculpa al momento de implementarlo no me agarra el potenciometro para controlar la velocidad, ayúdame ploxx
@andressaucedoguadian7932
@andressaucedoguadian7932 4 жыл бұрын
el video es muy pero muy bueno, el problema que tengo e que cuando quiero modificar la programacion, ya no me velve a correr siendo que solo le quite la multiplicacion por 60/10 y ademas aun que nada más compile el mismo archivo en c por curiosidad ya no me vuleve a trabajar el circuito, que pued hacer?
@SergioACGiraldo
@SergioACGiraldo 4 жыл бұрын
Hola Andres, ya te había respondido en el sitio web. Yo probé el código en mi computador, compilé de nuevo y a mi me está funcionando perfectamente. Borré la multiplicación y sigue funcionando. Que versión del CCS estás usando? Mi version del CCS C es la 5.076. Saludos
@andressaucedoguadian7932
@andressaucedoguadian7932 4 жыл бұрын
@@SergioACGiraldo creo entonces ha de ser el compilador, estoy usando el PIC c compiler, supongo que es por eso que no e corre el programa
@SergioACGiraldo
@SergioACGiraldo 4 жыл бұрын
Si es el mismo. Pic c ccs c.
@andressaucedoguadian7932
@andressaucedoguadian7932 4 жыл бұрын
@@SergioACGiraldo aa entonces es la versión 4.1 crees que sea por eso?
@osmarluna3843
@osmarluna3843 4 жыл бұрын
Como podría implementar este programa pero en lenguaje ensamblador?
@jhonny4036
@jhonny4036 7 жыл бұрын
Buenas Noches Sergio una gran pregunta con respecto a este vídeo. ¿Cómo saber si esta girando hacia adelante o hacia atrás? En realidad estoy haciendo un contador de vueltas, pero solo cuenta hacia adelante y quiero implementar que al invertir el sentido de giro empiece a restar las vueltas que lleva.
@SergioACGiraldo
@SergioACGiraldo 7 жыл бұрын
Para implementar lo del sentido de giro, tienes que usar otra señal de encoder, así como lo tiene el componente del proteus como lo explique en el video, puedes dar un vistazo a la ayuda en el proteus del componente que explica bastante bien. Si un encoder está en nivel alto, el otro estará en nivel bajo y viceversa, así sabrás el sentido en que está girando el motor.
@fernandofraga1505
@fernandofraga1505 6 жыл бұрын
En caso de querer hacerlo con una fuente externa que se usaria para evitar el uso de relés. Seria triac u optó acoplador?
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Fernando no entendi la pregunta. Para el circuito se usa una fuente externa que alimenta el microcontrolador PIC y alimenta el circuito de potencia conformado por el Mosfet y el Motor. En el circuito no hay ningún relé. Saludos.
@fernandofraga1505
@fernandofraga1505 6 жыл бұрын
Sergio Castaño solo quiero saber cómo sería la aplicación con una fuente de alimentación externa para el motor
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Ok Fernando, seria la fuente, conectada al motor con un diodo en paralelo para evitar las corrientes inversas, conectada al mosfet, conectada a tierra. Mira en el video en el minuto 6:52 sale el circuito. Si observas verás un triangulo de color Azul, ese triangulo es la fuente de alimentación externa que tu quieres colocar. Saludos.
@joseeduardosanchezsalazar7200
@joseeduardosanchezsalazar7200 6 жыл бұрын
excelente vídeo ingeniero !!!!! siempre es grato aprender de usted, tengo unas dudas. ¿¿¿como puedo habilitar mas de 1 interrupción en el PIC 18F4550???, ya que requiero controlar 2 motores. y la corrección en cuanto a la precision de la velicidad, ¿¿ como se puede mejorar??
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Hola Jose, visita el blog que alli coloque las interrupciones del 16f887 que son parecidas a las del 18f4550. wp.me/p5P46A-4f Vas a tener que habilitar la interrupción externa por pines rb4-rb7 para conectar los otros motores y tendrás que programar que solo lea el flanco de bajada. Con un if (bit_test(portb,4)==0) dentro de la interrupción lo puedes lograr. Para llamar varias interrupciones desde el main: enable_interrupts(int_EXT); //Activa interrupcion por RB0 enable_interrupts(int_RB); //Activa interrupcion por RB4-RB7 enable_interrupts(global); //Habilita interrupciones de forma global y creas las funciones globales para cada una #INT_EXT . . . #INT_RB . . . Saludos
@joseeduardosanchezsalazar7200
@joseeduardosanchezsalazar7200 6 жыл бұрын
excelente!!! muchs gracias por sus aportaciones, buen dia y gracias !!!!!!!!
@luismaravilla2555
@luismaravilla2555 4 жыл бұрын
Hola buen proyecto, disculpa yo no cuento con el programa donde se hace el codigo pero si tengo proteus y me gustaria utilizarlo para simular un proyecto, podrias pasar el .hex para ponerlo en mi proteus porfavor :3
@SergioACGiraldo
@SergioACGiraldo 4 жыл бұрын
Está en el sitio web para descarga: wp.me/p5P46A-4f
@luismaravilla2555
@luismaravilla2555 4 жыл бұрын
@@SergioACGiraldo Muchas gracias ya pude :D
@marcelalopez4407
@marcelalopez4407 4 жыл бұрын
Hola, excelente video, me sirvió para mi proyecto, pero tengo una pregunta, ¿ hay alguna manera de poder agregar una banda para poder indicar la posición?
@marcelalopez4407
@marcelalopez4407 4 жыл бұрын
Tambien me gustaria saber si hay alguna forma de invertir el giro del motor
@SergioACGiraldo
@SergioACGiraldo 4 жыл бұрын
@@marcelalopez4407 No entiendo a que te refieres con una banda. Una de las formas de medir la posición de forma eléctrica es con el encoder, tal vez con una banda te refieras a algo mecánico acoplado al motor? También podrías acoplarle un potenciometro lineal y medir la resistencia, claro evitando que el motor gire continuamente. Para cambiar el giro del motor, puedes usar un Puente H.
@juancabascangob6353
@juancabascangob6353 6 жыл бұрын
Disculpa como encuentro ese cono azul que esta encima del motor?
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Eso es la fuente de alimentación de 12VDC, puedes reemplazarlo por un vsource o simplemente puedes colocar esa punta azul buscandola en la parte izquierda donde hay una onda sinosuidal que dice "generator mode" colocas el DC, y lo configuras a 12V
@juancabascangob6353
@juancabascangob6353 6 жыл бұрын
Gracias @@SergioACGiraldo
@henriqueamorim7605
@henriqueamorim7605 2 жыл бұрын
A las 16:43 abriste una ventana de Proteus, ¿cómo llegaste a ella?
@SergioACGiraldo
@SergioACGiraldo 2 жыл бұрын
Eso es cuando cargas el programa en el PIC, en lugar de cargar el .hex, cargas el otro archivo que es mas pesado. Así cada vez que le des pause a la simulación te aparece la ventana con el código del pic
@Jorg0996
@Jorg0996 7 жыл бұрын
Hola buenas noches, antes que nada muchas gracias por compartir tan buena información, tengo una duda ojalá me puedas apoyar, si quisiera ocupar el otro pulso que me da el encoder para determinar su posición como lo puedo conectar si solo cuento con solo una interrupción externa ? Saludos y muchas gracias por el aporte
@SergioACGiraldo
@SergioACGiraldo 7 жыл бұрын
Hola Jorge, no entiendo bien, si capturas los pulsos ya puedes saber la posición, sin necesidad de utilizar otra señal, en este ejemplo podemos saber la posición, yo simplemente tome esa posición y con base en el tiempo consegui la velocidad, no necesitarias otro señal para eso. Con este pic no consigues usar otro señal pues no cuentas con mas interrupciones externas, podrias intentar con interrupciones por cambio de estado RB4-Rb7 pero no estoy seguro si funciona, nunca lo he hecho. En un caso asi la recomendación es usar un pic de la familia 18. Esos pics manejan creo hasta 3 interrupciones externas. Saludos.
@Jorg0996
@Jorg0996 7 жыл бұрын
Sergio Castaño hola muchas gracias por responder, me refería al sentido de giro, saber si está en un sentido horario o anti horario, así ocupar los dos pulsos que me da el encoder pero como podría emplearlos con solo una interrupción ?
@SergioACGiraldo
@SergioACGiraldo 7 жыл бұрын
Jorge, lo mejor es que uses otro pic, por ejemplo el 18f4550, ese pic cuenta con 3 interrupciones externas. Saludos.
@Jorg0996
@Jorg0996 7 жыл бұрын
Sergio Castaño muchas gracias Sergio lo pondré en practica EXCELENTES VIDEOS
@chrisguerrero6679
@chrisguerrero6679 7 жыл бұрын
Amigo y si quisiera usar un puente h en vez del mosfet, cambiaria en algo la programacion del pic?
@soniamartinez1576
@soniamartinez1576 6 жыл бұрын
Chris Guerrero no nada la salida del pwm osea el ccp1 lo conectas al enable de un l239d
@jcelectronicaytelecomunica9805
@jcelectronicaytelecomunica9805 4 жыл бұрын
15:30 se Lee el flanco de subida L to H
@SergioACGiraldo
@SergioACGiraldo 4 жыл бұрын
Correcto. Gracias.
@javiercodutti7667
@javiercodutti7667 6 жыл бұрын
Hola Sergio!!!, muy bueno tu video, solo queria preguntarte como puedo utilizar el PWM y el encoder para que gire a una cierta velocidad y se mantenga constante sin utilizar el potenciometro. De otra manera, quiero poder programar la velocidad a la quiero que gire el motor y que se mantenga constante. Desde ya muchas gracias!!!
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Hola Javier, para dejar fija la velocidad solo debes declarar el "set_pwm1_duty(X);" donde la X la reemplazas por un numero del 0 al 1000. Siguiendo la configuración del video. Siendo 1000 la máxima velocidad y 0 velocidad nula.
@javiercodutti7667
@javiercodutti7667 6 жыл бұрын
Muchas Gracias Sergio!! Voy a seguir tus pasos, gracias por responder, lo que quiero hacer seria mas un PID que juato encontre en otros videos tuyos, un abrazo grande!!
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Excelente Javier, es solo seguir los videos de PID de mi canal. Abrazos.
@ANTONIOSTAR
@ANTONIOSTAR 6 жыл бұрын
Muy Bueno, como adicionar um botão para inverter o sentido do motor?
@almamg1365
@almamg1365 7 жыл бұрын
Hola, excelente video... solo una duda para probar el codigo en otro Pic basta con cambiar entradas y salidas en el código o hay alguna función especial?
@SergioACGiraldo
@SergioACGiraldo 7 жыл бұрын
Generalmente es solo cambiar el encabezado, colocando la libreria del PIC que vas a trabajar. Y colocar la dirección de memoria de los puertos. Puede que algunos fusibles no existan en determinados PICs por lo tanto debes borrarlos tambien.
@michaelsantafe7117
@michaelsantafe7117 5 жыл бұрын
como hago para medir las rpm sin encode... con un optocoplador?
@jorgeorlandomirandanahui1977
@jorgeorlandomirandanahui1977 7 жыл бұрын
muchas gracias broh esta muy buenos tus videos ,si quiero identificar a ese motor como una planta y obtener su funcion de transferencia , que criterio sobre el tiempo de muestreo debo tener en cuenta ,
@SergioACGiraldo
@SergioACGiraldo 7 жыл бұрын
La mismas que hemos hecho. Debes estimular el sistema y ver la velocidad de respuesta. Obtener la constante de tiempo y puedes por ejemplo dividir esa constante de tiempo por 20, ya eso te dará un criterio del periodo de muestreo a utilizar.
@luisjeraldyramosmunoz6133
@luisjeraldyramosmunoz6133 5 жыл бұрын
Hola, buen video, una pregunta, esto me sirve para un motor bruhsless y su control de velocidad?
@SergioACGiraldo
@SergioACGiraldo 5 жыл бұрын
no, para eso la mejor opción es conseguir un ESC para regular el brushless
@TheAgustin1991
@TheAgustin1991 6 жыл бұрын
que me puedas ayudar a hacer unos programas que no entiendo porfa??
@entregallinas
@entregallinas 7 жыл бұрын
buen sensei
@user-yomero
@user-yomero 5 жыл бұрын
Hola en que programa esta hecho?
@SergioACGiraldo
@SergioACGiraldo 5 жыл бұрын
El programa está hecho en PIC C Compiler y la simulación en Proteus.
@oscarmora9914
@oscarmora9914 7 жыл бұрын
Hola, Felicidades por tu video, muy pero muy bien explicado, de hecho me surgió una duda que espero me puedas resolver. Tengo una maquina con dos motores, que se sincronizan a mano (apagando y prendiendo el del producto final). Si yo quisiera contar las vueltas del motor primario con un sensor óptico y contar las vueltas del secundario con un sensor magnético. Necesito DOS interrupciones externas, una interrupción de subida y la otra de bajada. Como configuro esto en un PIC16F88 ?, Se puede? o necesito dos pic's? o como? Porque todos hablan de UNA interrupción, pero no he encontrado quien hable de DOS O MAS. Seria interesante.... :) SALUDOS P.D. Visite su pagina, muy bien armada y muy profesional, pero tiene errores en la redacción (ojo).
@SergioACGiraldo
@SergioACGiraldo 7 жыл бұрын
Hola Oscar, para eso necesitaras los 2 pics, pues solo cuentas con una interrupción externa. Otra forma es utilizar otro pic, uno de la familia 18 por ejemplo el pic18f4550, ese cuenta con 3 interrupciones externas. Gracias por el comentario, soy conciente de los errores ya me lo han dicho, jeje, es por causa de vivir en Brasil por tantos años el portugues extragó mi español. Pero voy a intentar tener más cuidado. Saludos.
@oscarmora9914
@oscarmora9914 7 жыл бұрын
Ok... entonces el pic18f4550, voy a investigas sobe ese pic para hacer la practica, a ver como me sale, espero que bien y si tubiera alguna duda..... pues te estaré molestando. Muchas gracias por compartirnos de tu conocimiento. FELICIDADES. Y GRACIAS...... P.D. Lo de tu pagina .... Todo muy bien, solo son detalles.... pero todo muy bien. :)
@juampyhdr5966
@juampyhdr5966 4 жыл бұрын
Excelente video amigo, pero tengo una duda. Si llego a una velocidad de 100RPM, 200RPM y 500 RPM en vez de utilizar el LCD y utilizar solo luces LED Verde, Amarillo y Rojo. ¿Como puedo realizar la programación? Gracias.
@SergioACGiraldo
@SergioACGiraldo 4 жыл бұрын
Con condicionales y activando y desactivando las salidas digitales del PIC. Saludos.
@estudianteelectrico6728
@estudianteelectrico6728 6 жыл бұрын
Olá Sergio . Somente hoje eu consegui entender a contagem do numero de pulsos para calcular a velocidade. Minha duvida era a seguinte: a cada interrupção do timer2 ocorrida pela mudanca de nivel de sinal vindo do encoder do motor, a variável pulso incrementa e vai subindo até atingir 65535. Porém o programa le o numero de pulsos em apenas 1 segundo. a cada segundo é lido o numero de pulsos. Um detalhe o timer2 possui um overflow de 996us ou 0,996 segundo. Overflow = PR2 * Ciclo maquina* Prescaler* Postscaler. Obrigado novamente.
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Olá estudante elétrico tudo bom!!! Eu não entendi muito a tua dúvida mas vamos lá. No exemplo deste video, a gente não utilizou o Timer2. A gente utilizou a interrupção externa por o pino RB0. Ou seja que cada que o pino RB0 deteta um flanco de descida ele entra na interrupção. Ai eu criei um contador que ele vai fazendo a conta do numero de flancos de descida do encoder do motor. Só que para fazer o calculo da velocidade eu preciso saber o tempo, por isso eu coloco um delay de quase 1 segundo. Enquanto o PIC está no delay ele só esta entrando na interrupção e fazendo a contagem. Uma vez o delay passa, o PIC vai ver quantos pulsos ele conseguiu pegar e faz o cálculo da velocidade e zera nuevamente o contador para repetir o processo novamente.
@juanpirpoca
@juanpirpoca 7 жыл бұрын
Gracias Sergio , ¿se podría usar un encoder externo de 2500 ppv , 5 v ?
@SergioACGiraldo
@SergioACGiraldo 7 жыл бұрын
Yo diria que si, simplemente colocar el tren de pulsos en la interrupción externa que es bastante rápida y precisa no deberias tener problema.
@juanpirpoca
@juanpirpoca 7 жыл бұрын
Como siempre muy buenas tus clases. gracias
@emelyjose
@emelyjose 7 жыл бұрын
hola buenas noche amigo sergio... sergio si lees este mensaje me gustaria tu respuesta en cuanto a una ayuda, y pues, asi nos ayudas a todos los interesados con respecto al mismo tema... podrias realizar un tutoria...un manual...o un video de como realizar una libreria en ccs pic que no exista. en especial la de comunicacion I2c . la motiva a esta solicitud es que tengo ya un buen tiempo queriendo realizar un proyecto de incubadora de huevos de haves, pero la verdad es que no consigo leer una temperatura estable con el lm35... y pues me gustaria implementar en especial el adc mcp3421 por su tamaño que posee mayor resolucion de lectura . te escribo por estre medio por que no se por donde mas contactar contigo. gracias y pues espero puedas ayurame segun dispongas tiempo...gracias
@SergioACGiraldo
@SergioACGiraldo 7 жыл бұрын
Hola emelyjose, el tutorial N°17 hace justamente eso, aqui explico como hacer librerias para 3 dispositivos. El tutorial 17 es justamente sobre comunicación i2c y cuenta con 2 videos. Espero te sirva, te dejo aqui el link: controlautomaticoeducacion.com/18-comunicacion-i2c/ Te dejo adicionalmente la lista de reproducción de todo el curso de microcontrolaores: kzbin.info/aero/PLF-qcfymUY4VvPaoquGoQ5auW_n968P4N Saludos.
@emelyjose
@emelyjose 7 жыл бұрын
sergio muchas gracias, dejame ver los videos.... en cuanto adelante el programa te lo comparto para que me des tu opinion ...ya que esto lo estoy haciendo con conocimiento empirico . gracias
@jessicacrispinvillalva3853
@jessicacrispinvillalva3853 4 жыл бұрын
como podria modificarlo a km/h?
@soniamartinez1576
@soniamartinez1576 6 жыл бұрын
Lo puedo configurar para que me trabaje con el 18f4550
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Si, es solo cambiar el encabezado: #include Y las direcciones de memoria de los puertos: #byte porta = 0xf80 // Identificador para el puerto A. #byte portb = 0xf81 // Identificador para el puerto B. #byte portc = 0xf82 // Identificador para el puerto C. #byte portd = 0xf83 // Identificador para el puerto D. #byte porte = 0xf84 // Identificador para el puerto E.
@estudianteelectrico6728
@estudianteelectrico6728 6 жыл бұрын
Amigo, estoy empezando a programar. Tengo una duda. tengo un kit de estudio con un PIC16F877A y sólo un pin libre, el RC0. Es posible utilizar la iteración del timer1, conectando la señal de un sensor óptico H21A1 en el perno RC0, configurado para T1CK1, leer las muñecas del timer1 por el recuento de los pulsos del sensor óptico, y así conocer la velocidad? Este vídeo kzbin.info/www/bejne/Y6ekqYutgbCtoas muestra el sensor que quiero utilizar. Gracias.
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Olá Estudante Elétrico. Realmente o mais recomenável é utilizar a interrupção externa, mas como vc só tem livre o RC0 talvez funcionaria sim, lendo os pulsos do sensor óptico. Mas na tua plaquinha de estudo o que vc tem ligado na porta RB0 e nas RB4-RB7? Eu nunca testei o projeto sem interrupções mas eu acredito que a gente consiga fazer sim, é só fazer o ensaio e experimentar. Qualquer dúvida é só perguntar. Abs.
@estudianteelectrico6728
@estudianteelectrico6728 6 жыл бұрын
Beleza Sergio, obrigo pela atenção e ajuda. Vou tentar fazer o código aqui. Inicialmente nao vejo problema, pois a interrupcao le o sinal do encoder e faz uma variável contar a cada pulso, ou seja estara lendo os pulsos e incrementando a variavel. Isto pode ser feito com o T1CK1 configurado, ou seja estara tambem lendo os pulsos e incrementando o timer. Vou tentar assim até ter uma nova placa, melhor com mais funcionalidades. Já fiz um teste e contou manualmente, porem ainda não utilizei um motor. Estou trabalhando nisto agora. Em CNC's como pode um microcontrolador controlar as leituras simulataneas de 4, 5, 6, 7 encoders de eixos ao mesmo tempo? Será que projetam para trabalhar vários microcontroladores simultaneamente?
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Olá Estudante Elétrico, agora que li bem, vc está usando o timer 1 para contabilizar os pulsos. Perfeito!! é uma boa forma de levar a contagem e calcular a velocidade do motor. Ela funciona bem porque vc pode configurar a interrupção por timer1. O importante na leitura da velocidade de motores é fazer ela com alguma interrupção para evitar perder pulsos quando eles acontecerem. No caso da CNC, elas são feitas com motores de passo, e é possível fazer a contagem de passos para saber a posição dos eixos. Também são empregados chaves de fim de curso para maior segurança. Sucessos com teu projeto. Grande abraço.
@estudianteelectrico6728
@estudianteelectrico6728 6 жыл бұрын
Valeu Sergio, muito obrigado pelas respostas e ajuda nas duvidas. Estou acompanhando seu canal. Abraço.
@wilsonfabiandiazmartinez1968
@wilsonfabiandiazmartinez1968 6 жыл бұрын
Amigo en la vida real que tipo de motor puede ser
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Wilson lo puedes usar en cualquier motor. Ya venden motores con el encoder integrado, o tu mismo podrías adaptarle el encoder a tu motor. Saludos.
@fernandofraga1505
@fernandofraga1505 6 жыл бұрын
Para una aplicación real como seria la fuente de poder?
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
Hola Fernando, en una aplicación real necesitarás que tu fuente entregue 5V DC para alimentar el microcontrolador y que entregue el voltaje para el motor. En el ejemplo, el motor es de 12V DC, entonces tu fuente necesita entregar 5V DC y también 12 V DC. Saludos.
@fernandofraga1505
@fernandofraga1505 6 жыл бұрын
Sergio Castaño y cual sería el máximo voltaje que soportaría este MOSFET
@SergioACGiraldo
@SergioACGiraldo 6 жыл бұрын
El Mosfet aguanta unos 55V segun el Datasheet. Saludos.
@mariosaenz4075
@mariosaenz4075 7 жыл бұрын
hola yo leo las dos señales del encoder para saber en que dirección se movió y el tercer pin yo lo utilizo para saber a que RPM tiene el motor donde puedo subir el programa para que lo descarguen..... lo realice es CCS compiler
@victorlopez4805
@victorlopez4805 6 жыл бұрын
Hola disculpa me interesa tu proyecto podrias compartirmelo por favor
@soniamartinez1576
@soniamartinez1576 6 жыл бұрын
Compártelo wfdiaz59@misena.edu.co
@wylseb5180
@wylseb5180 6 жыл бұрын
De cuanto son las resistencias
Comunicacion Serial (parte 1) 💻 Programación de PIC en CCS C (PIC C) # 030
21:15
Sergio A. Castaño Giraldo
Рет қаралды 57 М.
Motor DC con Encoder - Arduino [Velocidad y Posición] ✅ DFRobot
28:54
Sergio A. Castaño Giraldo
Рет қаралды 88 М.
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН
☑️ 13.1. PWM with PIC (Pulse Width Modulation) ☑️ PIC Program in CCS C (PIC C)
23:29
Curso de Microcontroladores PIC  💡 Endender y Apagar un LED [PIC C en CCS C] - # 001
25:04
PROGRAMACIÓN DE ENCODER OPTICO ¿CÓMO SE USA?
10:28
Aprendamos Ingeniería
Рет қаралды 68 М.
✅ Medir RPM de un Motor (usando interrupciones con Arduino)
7:59
El profe García
Рет қаралды 279 М.
MEDICION DE FRECUENCIA CON INTERRUPCIONES (INT Y CCP) EN PIC
32:18
Alcides Ramos Zambrano
Рет қаралды 6 М.
Conversor Análogo Digital ADC PIC ⚡ CCS C (PIC C) # 024
25:34
Sergio A. Castaño Giraldo
Рет қаралды 60 М.
Comunicación I2C (Parte 1) - Programación de PIC en CCS C (PIC C) # 034
16:11
Sergio A. Castaño Giraldo
Рет қаралды 39 М.
21.- CURSO MICROCONTROLADORES PIC - PWM (MODULACIÓN POR ANCHO DE PULSO)
9:51
Electrónica y Circuitos
Рет қаралды 15 М.
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН