Тёмный

SERVOMOTORES CON PIC ➡️ TIMER 0 Interrupción 😏 (CCS C) # 040 

Sergio A. Castaño Giraldo
Подписаться 140 тыс.
Просмотров 18 тыс.
50% 1

Опубликовано:

 

29 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 64   
@SergioACGiraldo
@SergioACGiraldo 5 лет назад
❤️ Curso de PIC: goo.gl/5riyKn 💙Curso de ARDUINO: bit.ly/2q7Ln1c 💜 Descargar Código en ➡️ wp.me/p5P46A-iT 💛Servo Motor PWM (CCP) ➡️ bit.ly/2FSjTY5 😱 Como ser Experto en PIC en 7 Días 👉 bit.ly/2OTkNry
@coki3677
@coki3677 4 года назад
Que tal Sergio he adquirido el PIC16F887 y funciona bien tu código con dos servos pero para un tercer caso no funciona y hago lo mismo que comentas de agregar solo un caso 3 con sus respectivos cambios y no pasa nada incluso agregue esa variable para el puerto c usando el puerto c cero y también el puerto c tres y nada que hay que cambiar o agregar al código para poder hacer trabajar mas de dos servos ya que quiero hacer funcionar 5 servos, gracias y saludos.
@SergioACGiraldo
@SergioACGiraldo 4 года назад
@@coki3677 te has fijado si la variable servo se carga con 3 para efectuar el caso 3?? porque como está el código con el IF/ELSE esa variable nunca será 3, hay que hacer un IF/ELSE convencional o hacer un contador. Con contador sería algo como: servo++; if(servo>3) servo=1;
@coki3677
@coki3677 4 года назад
Sergio A. Castaño Giraldo ok lo intentare mañana gracias por el dato
@rodrigofloresgonzalez3951
@rodrigofloresgonzalez3951 2 года назад
Aunque el programa funciona, no esta controlando correctamente los servomotores porque con la sentencia if(servo) en la interrupción de TMR0 solo esta enviado un pwm (o señal astable) al servomotor seleccionado. Al otro esta enviando una señal en BAJO. Cuando debería a ambos enviar sus PWM y en la rutina solo hacer los cambios a la señal correspondientes si es que se indicaron. RobotyPIC si lo hace bien.
@davidlima5333
@davidlima5333 Год назад
Buenas ,tengo una duda amigo sabes si el código me sirve para un servomotor de 360 grados ??? Hice la prueba con el servo motor de 180 y funciona muy bien pero cuando le pongo el de 360 gira a lo loco 😢 Y gracias por tus vídeos me ayudan bastante espero sigas creciendo
@jorchmendozachok6342
@jorchmendozachok6342 5 лет назад
me sirvio demasiado tu trabajo, lo use como ejemplo para controlar la alarma de un medidor de temperatura, especificamente para el buzzer, para que sonara y dejara de hacerlo, (el int_RTCC). Gracias
@SergioACGiraldo
@SergioACGiraldo 5 лет назад
Gracias Joarch, me alegro que te haya servido, saludos!!
@BrandonViramontes
@BrandonViramontes 3 года назад
Muchas gracias, una explicación muy detallada de la práctica :)
@filosopando
@filosopando 5 лет назад
Hola Sergio! En primera, muchas gracias por el tutorial. Tengo el problema de que el timer0 no es preciso! Configure el timer0 para cada 20 ms e hice para que de alto en 1ms y bajo en 19ms y no es preciso... En alto lo hace a 870us Mi otro problema es que al aumentar el angulo, el servo se va para direcciones aleatorias; es decir si presiono el boton de aumentar el servo reduce, si lo vuelvo a presionar, aumenta el doble... #pragma config FOSC = XT_XT // Oscillator Selection bits (XT oscillator, PLL enabled (XTPLL)) #pragma config PWRT = ON // Power-up Timer Enable bit (PWRT enabled) #pragma config BOR = OFF // Brown-out Reset Enable bits (Brown-out Reset disabled in hardware and software) #pragma config BORV = 3 // Brown-out Reset Voltage bits (Minimum setting 2.05V) #pragma config WDT = OFF // Watchdog Timer Enable bit (WDT disabled (control is placed on the SWDTEN bit)) #pragma config WDTPS = 32768 // Watchdog Timer Postscale Select bits (1:32768) #pragma config CCP2MX = ON // CCP2 MUX bit (CCP2 input/output is multiplexed with RC1) #pragma config PBADEN = OFF // PORTB A/D Enable bit (PORTB pins are configured as digital I/O on Reset) #pragma config LPT1OSC = OFF // Low-Power Timer 1 Oscillator Enable bit (Timer1 configured for higher power operation) #pragma config MCLRE = ON // MCLR Pin Enable bit (MCLR pin enabled; RE3 input pin disabled) #pragma config LVP = OFF // Single-Supply ICSP Enable bit (Single-Supply ICSP disabled) #include #define _XTAL_FREQ 4000000UL //Frecuencia de trabajo actual unsigned int temporal = 0; unsigned int servo = 1; // Servos para seleccionar Servo1 = 1 / Servo2 = 0 //ANGULOS ACTUALES DE LOS SERVO 1 Y 2 unsigned int ang_servo1 = 1000; unsigned int ang_servo2 = 1000; unsigned int val_min = 1000; unsigned int val_max = 2000; void Configurar_TMR0(void){ INTCONbits.GIE = 0; T0CON = 0x88;//1000 0100 INTCONbits.TMR0IE = 1; // Permitir el desbordamiento del Timer0 INTCONbits.GIE = 1; } void ingresoTmr0(unsigned int tiempo){ //1000 temporal = (65535 - tiempo); TMR0L = temporal; temporal = (65535 - tiempo); TMR0H = temporal >>8; T0CONbits.TMR0ON = 1; } void Configurar_Puertos(void){ ADCON1 = 0x0F; TRISBbits.RB0 = 1; //BOTON PARA IZQUIERDA DEL SERVO 1 TRISBbits.RB1 = 1; //BOTON PARA DERECHA DEL SERVO 1 TRISBbits.RB2 = 1; //BOTON PARA IZQUIERDA DEL SERVO 2 TRISBbits.RB3 = 1; //BOTON PARA DERECHA DEL SERVO 2 TRISEbits.RE0 = 0; //SERVO 1 TRISEbits.RE1 = 0; //SERVO 2 } void main(void){ Configurar_TMR0(); Configurar_Puertos(); T0CONbits.TMR0ON = 0; //ESTABLECER UN VALOR INICIAL //SERVO 1 EN BAJO while(1){ //PARA EL SERVO 1 IZQUIERDA if(PORTBbits.RB0 == 1){ //ANG_SERVO1 = 1000 __delay_ms(15); if(ang_servo1 == val_min){ ang_servo1 = val_min; servo = 1; } else{ ang_servo1 = ang_servo1 - 50; servo = 1; } } //PARA EL SERVO 1 DERECHA if(PORTBbits.RB1 == 1){ __delay_ms(15); if(ang_servo1 == val_max){ ang_servo1 = val_max; servo = 1; } else{ ang_servo1 = ang_servo1 + 50; servo = 1; } } //PARA EL SERVO2 IZQUIERDA if(PORTBbits.RB2 == 1){ __delay_ms(15); if(ang_servo2 > val_min){ ang_servo2 = ang_servo2 - 50; servo = 0; } else{ ang_servo2 = val_min; servo = 0; } } //PARA EL SERVO2 DERECHA if(PORTBbits.RB3 == 1){ __delay_ms(15); if(ang_servo2 < val_max){ ang_servo2 = ang_servo2 + 50; servo = 0; } else{ ang_servo2 = val_max; servo = 0; } } } } //IMAGINANDO QUE INGRESE 1000 void __interrupt (high_priority) Tmr0ISR(void){ if(INTCONbits.TMR0IF){ switch(servo){ case 1: if(PORTEbits.RE0){ ingresoTmr0(ang_servo1); LATEbits.LE0 = 0; } else{ ingresoTmr0(20000-ang_servo1); LATEbits.LE0 = 1; } INTCONbits.TMR0IF = 0; //CONTO 2ms (ESTANDO EN BAJO) / SALTA A LA INTERRUPCION Y AHORA CUENTA //19ms (ESTANDO EN ALTO) break; case 0: if(PORTEbits.RE1){ ingresoTmr0(ang_servo2); LATEbits.LE1 = 0; } else{ ingresoTmr0(20000-ang_servo2); LATEbits.LE1 = 1; } INTCONbits.TMR0IF = 0; break; } } }
@johnrivers1846
@johnrivers1846 5 лет назад
Podrías hacer un video de como programar 2 microcontroladores haciendo uso de los módulos RF :D Por cierto buen video :D
@carlox9635
@carlox9635 3 года назад
hola Sergio gracias por las clases ¿Se puede utilizar el Timer 1 para controlar los servomotores?
@juliomamani3019
@juliomamani3019 5 лет назад
Bien el ejemplo
@JoseCarlos-ep3yd
@JoseCarlos-ep3yd 5 лет назад
Muy buena informacion, sabras si es posible usar el timer0 para controlar un brushless y al mismo tiempo usar los ccp para controlar por pwm motores dc pero a una mayor frecuencia ? por ejemplo el controlador del brushless trabaja igual que un servo (50hz) y los motores dc con una frecuencia de unos 1000hz, todo esto usando el oscilador interno con un pic16f1938, gracias por tu informacion
@rodrigofloresgonzalez3951
@rodrigofloresgonzalez3951 2 года назад
Aunque el programa funciona, no esta controlando correctamente los servomotores porque con la sentencia if(servo) en la interrupción de TMR0 solo esta enviado un pwm (o señal astable) al servomotor seleccionado. Al otro esta enviando una señal en BAJO. Cuando debería a ambos enviar sus PWM y en la rutina solo hacer los cambios a la señal correspondientes si es que se indicaron. RobotyPIC si lo hace bien.
@pedrotapiajimenez9261
@pedrotapiajimenez9261 2 года назад
Se me ocurre usar al tmr0 para que mande la interrucion cada 20ms y con el tmr 1 o el trm2 medir un tiempo desde 1ms hasta los 2 ms. quise hacerlo todo con el tmr0 pero no pude, conbinando dos timers si se puede. yo trabajo en assembler.
@emmanuelr.8834
@emmanuelr.8834 5 лет назад
No hay como te expliquen los conocimientos, deberías hacer el vídeo del TIMMER 0 saludos Sergio, sigo todos tus vídeos de PIC´s
@SergioACGiraldo
@SergioACGiraldo 5 лет назад
Hola Emmanuel gracias por el comentario. Si, debo sacar el tiempo para grabar el del TIMER, ahora estoy grabando otros videos del curso de PIC, pronto los publicaré. Saludos!
@emmanuelr.8834
@emmanuelr.8834 5 лет назад
@@SergioACGiraldo que bien, este mundo es fascinante, estos últimos vídeos me han estado ayudando mucho , en la universidad, para mis proyectos de PICS, de antemano muchas gracias por la explicación detallada, y el tiempo en hacerlo.... los esperare gracias ;)
@Chipoelectrico
@Chipoelectrico 5 лет назад
Bueno, me he visto todos los vídeos de micro-controladores, me parece un trabajo impresionante y ademas, bien explicados, es cierto que con los últimos y tanta matemática me pierdo un poco, pero sera cuestión de poner mas empeño. Gracias y enhorabuena. Subscrito quedo al canal, aunque no se si de este tema publicaras mas. Eso si, lo de los bloqueos, como que no me gusta nada, pero bueno, se que tenéis que hacer algo para tener mas audiencia.
@SergioACGiraldo
@SergioACGiraldo 5 лет назад
Hola Jacinto gracias por el comentário me alegra que te haya servido el curso y lo más importante que hayas aprendido. Este curso de PIC ya está bastante avanzado, sin enbargo iré montando algunos otros videos explicando otros perifericos o otras aplicaciones. Lo de los códigos es justamente para poder llegar a más audiencia. Saludos y te desejo el mejor de los éxitos.
@Chipoelectrico
@Chipoelectrico 5 лет назад
@@SergioACGiraldo 👍💪 Que pic me recomendarías con muchos PWM, que monte unas tiras navideñas que sea la envidia del barrio.
@SergioACGiraldo
@SergioACGiraldo 5 лет назад
explora esta la pagina de Microchip www.microchip.com/ParamChartSearch/Chart.aspx?branchID=30048 Ai puedes seleccionar el numero de PWMs que necesites y otras caracteristicas y te va a mostrar que PIC se adapta a tu aplicación.
@Chipoelectrico
@Chipoelectrico 5 лет назад
@@SergioACGiraldo Muchisimas gracias.
@Chipoelectrico
@Chipoelectrico 5 лет назад
Ainssss,,, creo que tendrás que hacer un vídeo de como leer un datasheet y aplicarlo a la programación 🤣🤣🤣 ,,, que lio de datos.
@coki3677
@coki3677 4 года назад
compañero, disculpa la molestia, te comento que si pude cargar el código a un PIC16F877A y realice la conexiones pertinentes incluso la recomendación de conectar los comunes en un solo punto y alimentar por separado al pic (por medio de un cargador de 5v a 1A) y pulsadores y servos a una fuente regulable, cristal de cuarzo de 4mhz y sus respectivos capacitares 22pf, resistencia de 10 kohms en el pin 1 del micro y conectado a 5v del cargador, también sus resistencias de 10 kohms a los pulsadores (uso pulsadores de los mismos que usted usa) y el común del pin 31 del pic y el pin 32 a 5v a la conexión del cargador , dicho lo anterior y que realice el cambio de librería para el PIC16F877A y de acuerdo a las conexiones del pic16f887 al 877A en lo que respecta a los servos son las mismas en el puerto C (pines 16 y 17) y los pulsadores en el puerto A (pines 2, 3 y 4), finalmente alimente el circuito y solo me funciona un servo para el pin 17 y el servo del pin 16 no se mueve al realizar el cambio con el pulsador conectado al pin 4 (change), ademas el pulsador que realiza la disminución del pulso también se activa para mas y para menos con un solo botón pero el que esta diseñado para aumentar el pulso funciona bien y no realiza otra cosa de acuerdo a la asignación de puertos para el pic de este tutorial en mi caso por ser otro pic la sintaxis debe ser diferente o que debo corregir te agradezco las atenciones, saludos
@SergioACGiraldo
@SergioACGiraldo 4 года назад
Hola Coki, la sintaxis no cambia para nada, es solo cambiar la librería, además porque los dos pics son prácticamente el mismo, el 887 es la evolución del 877a. Puedes hacer la prueba en el proteus y ver que funciona normalmente con el 16F877A. Debes verificar tus conexiones, usa un multimetro para ver que todo esté bien conectado. También verifica los pulsadores (ya que tienen 4 pines) y es fácil confundir su conexión, verificando que efectivamente se tomó los dos pines adecuados del pulsador, que siempre esté abierto y solo de continuidad cuando se apreta. Saludos.
@emirlucero1397
@emirlucero1397 5 лет назад
grandioso video me ayudo mucho ! , pero no como puedo hacer para que controle 4 servos :c podrías aconsejarme soy nuevo en esto gracias
@alaneguiamedellin4951
@alaneguiamedellin4951 4 года назад
En caso de usar N servos, debemos cambiar las instrucciones if else en swich case o un if anidado?
@SergioACGiraldo
@SergioACGiraldo 4 года назад
Puede ser switch case. Saludos.
@ricsrdolobo4450
@ricsrdolobo4450 5 лет назад
Gracias por compartir tus conocimientos me fue de mucha ayuda tu video te ganaste un sub y un like, tengo una duda para usar un oscilador externo de 20Mhz tendria que usar el timer1? gracias de antemano
@SergioACGiraldo
@SergioACGiraldo 5 лет назад
No, solo debes poner en el Fuse el HS y declarar el cristal de 20MHz en el encabezado. #FUSES HS #use delay(crystal=20000000)
@ricsrdolobo4450
@ricsrdolobo4450 5 лет назад
@@SergioACGiraldo Muchas gracias por responder, logre cambiar el oscilador gracias por la ayuda
@marianass1450
@marianass1450 4 года назад
Hola Sergio para mover 7 motores de cuantos voltios y bueno tambien amperios necesito la fuente externa para poder hacerlo
@SergioACGiraldo
@SergioACGiraldo 4 года назад
Depende de los motores que uses. Debes mirar el datasheet de tus motores. Para el motor mostrado en el video (5v - 900mA) necesitaría una fuente de 5v a 10A
@jesusbernuyr.1108
@jesusbernuyr.1108 5 лет назад
Hola! La funcion delay_ms del C funcionaria de la misma manera que el TIMER0? Para poder controlar multiples servos
@SergioACGiraldo
@SergioACGiraldo 5 лет назад
No, el TIMER 0 es mucho más preciso que simplemente hacer un delay_ms, dado que este último solo coloca el PIC a hacer nada, mientras el timer0 activa la interrupción en el intervalo de tiempo establecido correctamente.
@jesusbernuyr.1108
@jesusbernuyr.1108 5 лет назад
@@SergioACGiraldo Muchas gracias!
@juancamilogomez1076
@juancamilogomez1076 5 лет назад
Hola disculpa cómo podría hacer que que cuando se cambie de servomotor esté no se des energize
@ikr_panorama6967
@ikr_panorama6967 4 года назад
Hola una duda,para agregar un 3er servomotor que se tendria que poner en el codigo? le añadi otro case con el ang3 y no me lo detecta,sin embargo si modifico el case 2 con ang3 si sirve ese pn,por lo que veo no detecta 3 case,sabes porque se da esto? saludos
@SergioACGiraldo
@SergioACGiraldo 4 года назад
Si, es porque debes modificar la variable entera Servo que está dentro del switch/case switch(servo) El código está hecho para que esa variable únicamente tome el valor de 1 y 2, por eso no te va a aceptar otros casos, debes modificar eso en la linea 86 del código, borras esa linea y haces tu lógica.
@ikr_panorama6967
@ikr_panorama6967 4 года назад
Claro,pero mi problema es que no inicializa el servo3,no lo estoy incluyendo en el cambio de servo,aún así eso afecta? Elimine esa parte de cambio del servo,los estoy usando individualmente, Saludos y muchas gracias por la ayuda
@gabrielalejandroramirezfer4966
Por que toma un valor menor a 20 ms en el calculo?
@fabianhernandezgalicia410
@fabianhernandezgalicia410 4 года назад
Buenas noches, disculpe la molestia, lo que ocurre es que ya modifique el código para que funcione con 4 servos, sin embargo no logra funcionar, queria ver si podría darme un consejo, agradezco su tiempo. #include #device ADC=8 #fuses XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP #use delay(clock=4000000) //Dirección de los puertos para PIC 16F #byte porta=5 #byte portc=7 #define change porta,0 #define minus porta,1 #define plus porta,2 #define servo2 portc,1 #define servo1 portc,2 #define servo4 portc,3 #define servo3 portc,4 unsigned char ang1,ang2,ang3,ang4,cont=1; int i,servo=1; //Rutina de interrupción por RTCC (TIMER) #INT_RTCC void pulse() { switch(servo){ case 1: if(bit_test(servo1)) //La salida del servo 1 está en alto? { set_rtcc(ang1); bit_clear(servo1); } else { set_rtcc(255-ang1); bit_set(servo1); } break; case 2: if(bit_test(servo2)) //La salida del servo 2 está en alto? { set_rtcc(ang2); bit_clear(servo2); } else { set_rtcc(255-ang2); bit_set(servo2); } break; case 3: if(bit_test(servo3)) //La salida del servo 3 está en alto? { set_rtcc(ang3); bit_clear(servo3); } else { set_rtcc(255-ang3); bit_set(servo3); } break; case 4: if(bit_test(servo4)) //La salida del servo 4 está en alto? { set_rtcc(ang4); bit_clear(servo4); } else { set_rtcc(255-ang4); bit_set(servo4); } break; } } void main() { //6 y 36 int lmin=14,lmax=32; //Limites max y min en 100us set_tris_a(0x07); //Define RA0, RA1, RA2 como entradas set_tris_c(0); //Define puerto C como salida portc=0; //SET_RTCC(246); //Cargo valor inicial del timer para ejecutarse cada 100us setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64|RTCC_8_bit); //Configura interrupcion del timer ENABLE_INTERRUPTS(INT_RTCC); //Activa interrupcion del timer ENABLE_INTERRUPTS(GLOBAL); //Activa las interrupciones globales ang1=1min; ang2=1min; ang3=1min; ang4=1min; while(TRUE) { //Pregunta si se desea controlar el otro servo if(bit_test(change)){ delay_ms(200); //Anti-Rebote while(bit_test(change)) //Espera hasta dejar de presionar el botón {} servo= (servo==1) ? 2 : 3; servo= (servo==3) ? 4 : 1; } if(bit_test(plus)){ delay_ms(200); switch(servo){ case1: ang1++; //Aumenta el angulo en el servo 1 case2: ang2++; //Aumenta el angulo en el servo 2 case3: ang3++; //Aumenta el angulo en el servo 3 case4: ang4++; //Aumenta el angulo en el servo 4 } if(bit_test(minus)){ delay_ms(200); switch(servo) { case1: ang1--; //Decrementa el angulo en el servo 1 case2: ang2--; //Decrementa el angulo en el servo 2 case3: ang3--; // Decrementa el angulo en el servo 3 case4: ang4--; //Decrementa el angulo en el servo 4 } ang1= (ang1lmax) ? lmax : ang1; ang2= (ang2lmax) ? lmax : ang2; ang3= (ang31max) ? 1max : ang3; ang4= (ang41max) ? 1max : ang4; } } }
@andrew1995100
@andrew1995100 3 года назад
Pongale un break; a cada caso que tienes en el el if(bit_test(minus) y el plus
@juliomamani3019
@juliomamani3019 5 лет назад
Pero mi. Pregunta es de cómo puedo controlar 2 servos paralelos uno q este 0° y el otro 180° y que con un pulsador ambos giren a 90°.ayudenme con eso porfavor.
@velozcraft9994
@velozcraft9994 5 лет назад
Disculpa, una pregunta ya hice el programa y funciona bien en proteus pero cuando lo hice en fisico lo unico q hace es mover el servo a la posicion 0 y cuando presiono los botones no gira ni nada, puse un led a la salida y si se ve q el ancho del puso aumenta y disminuye pero alumbra muy poco y cuando retiro el servo alumbra mas, q puedo hacer ahi?
@SergioACGiraldo
@SergioACGiraldo 5 лет назад
Verifica que el Servo este funcionando correctamente. Verifica que tu fuente de alimentación sea capaz de mover el servo. Verifica que el GND de tu fuente este conectado con el GND del PIC. Abrazos!!
@velozcraft9994
@velozcraft9994 5 лет назад
@@SergioACGiraldo cale el servo con un arduino y funciona bien, y mi fuente es de 12 v a 1Amp y lo conecte a un 7805 para obtener los 5 v pero aun asi sigue sin funcionar hace la misma funcion solo lo mueve a la posicion 0 pero cuando presiono los botones no hace nada y las variables si se decrementan e incrementan
@albertovillazante769
@albertovillazante769 4 года назад
hola que tal? me podrias mandar el link de esta pagina porfavor, es que quiero ese datasheeo de ese servomotor
@jovannyperez7u750
@jovannyperez7u750 5 лет назад
Si Quiero que el servomotor gire de un lado a otro como se muestra en el video, que vuelva a repetirse varias veces y que se quede enclavado un swich o boton que le tengo que agregar?
@SergioACGiraldo
@SergioACGiraldo 5 лет назад
Puedes hacer la lógica dentro de un ciclo, por ejemplo un ciclo for, y determinarlas veces que deseas repetir la secuencia. Dentro del ciclo debes enviar los ángulos a los que deseas que se mueva el Servo. Aquí en el video están las bases para que lo hagas. Éxitos.
@manuelalejandrohurtadotoba8964
Deberías hacer un vídeo de cómo instalar el pickit 3. Porque siempre que lo cierto en el computador me sale el cuadro de extensión no controlada.
@SergioACGiraldo
@SergioACGiraldo 5 лет назад
Hola Manuel. Tengo un video de la instalación del PicKit 3, dale un vistazo: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-8K5gOIixF3Q.html
@danielaurreaportillo3555
@danielaurreaportillo3555 11 месяцев назад
¿Cómo obtengo la librería del pic18f4550?
@SergioACGiraldo
@SergioACGiraldo 11 месяцев назад
Esa librería viene cuando instalamos el compilador CCS C.
@gustavoadolfosanchezvera4124
@gustavoadolfosanchezvera4124 3 года назад
buenas tardes quisiera que me enviaras el codigo de estos videos
@SergioACGiraldo
@SergioACGiraldo 3 года назад
Descargar Código en el Sitio Web del Canal ➡️ wp.me/p5P46A-iT
@eduardotorrescornejo3418
@eduardotorrescornejo3418 5 лет назад
Qué programa de Pic es ?
@SergioACGiraldo
@SergioACGiraldo 5 лет назад
Hola Eduardo. El programa se llama PIC C Compiler. Saludos
@johnymerida2110
@johnymerida2110 5 лет назад
para que pones bloqueos.....dislike!!!!
@SergioACGiraldo
@SergioACGiraldo 5 лет назад
Hola Johny, desbloquear y descargar el código es muy facil mira este corto video: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-jX0RhZkys-o.html
@carlox9635
@carlox9635 3 года назад
hola Sergio gracias por las clases ¿Se puede utilizar el Timer 1 para controlar los servomotores?
Далее
Learn to Program a 5x5x5 LEDS CUBE with PIC💡💎
37:00
skibidi army returns (skibidi toilet 77)
00:49
Просмотров 2,3 млн
МЖ. Может, папа - ты? 16.02.2023
40:03
Просмотров 204 тыс.
servo motor control with pic
23:47
Просмотров 109 тыс.
18.- CURSO MICROCONTROLADORES PIC - TIMER 0
8:44
Просмотров 19 тыс.
skibidi army returns (skibidi toilet 77)
00:49
Просмотров 2,3 млн