# Pines PWM- Arduino UNO



## Angeloxx05 (Feb 24, 2017)

Hola, mi pregunta es... ¿ Los Servomotores, se conectan en los pines capacitados para PWM o no ?

Tengo una Tarjeta de Arduino UNO, pero en una pagina encontré que al usar una librería de Servo, el programa inhabilita el PWM en los pines 9 y 10, pero en la Tarjeta dice que esos 2 pines están capacitados para PWM... alguien podría confirmar cual es verdad, tengo un gran lio y la verdad es que recién estoy aprendiendo de estas Tarjetas !

psdt: esto dice la Pagina "En las placas que no són la Mega la utilización de la librería Servo,  inhabilita el PWM en los pines 9 y 10 se usen estos pines o no como servo"

Gracias de Antemano ! ^^


----------



## Nuyel (Feb 24, 2017)

Lo que pasa es que la librerías de servo usan timer (y delays basados en estos), en el caso de un Arduino UNO, el Timer0 se usa para la funciones de millis() y delay() así que NO debe tocarse, la librería Servo ocupa interrupciones del Timer1, el cual es el mismo que usa el modulo PWM de dichos pines, por ello deshabilita esa característica.

Servo() no requiere de pines PWM, pero sí de un timer para funcionar.


----------



## Angeloxx05 (Feb 24, 2017)

Nuyel dijo:


> Lo que pasa es que la librerías de servo usan timer (y delays basados en estos), en el caso de un Arduino UNO, el Timer0 se usa para la funciones de millis() y delay() así que NO debe tocarse, la librería Servo ocupa interrupciones del Timer1, el cual es el mismo que usa el modulo PWM de dichos pines, por ello deshabilita esa característica.
> 
> Servo() no requiere de pines PWM, pero sí de un timer para funcionar.



Y que ocurre si especifico que la Librería Servo voy a usarla para un, servomotor ? cambia algo ? Porque creo que específicamente, los Servomotores necesitan una entrada digital que este capacitada para la modulación por ancho de pulsos


----------



## Nuyel (Feb 25, 2017)

Mmmm. . . Si. los servomotores reciben una señal de ancho de pulso, pero hay dos formas de hacer dicha señal:

Una es por hardware con un timer y modulo comparador, eso es lo que usa analogWrite().

La otra es por software contando el ancho de pulso y haciendo que la CPU compute todo, para esta parte el único requisito es tener una referencia de tiempo estable, que en este caso es la interrupción de Timer1, la ventaja es que no necesitas un pin especifico por que el CPU hace la operación, puedes usar cualquier PIN en el Arduino para controlar un servo con esa librería, la desventaja, es que es lento, pero los servos normalmente llevan una señal de 50Hz, mientras que analogWrite lo hace a creo 470Hz.


----------



## Angeloxx05 (Feb 25, 2017)

Esta bien, muchas gracias fue Muy útil tu Respuesta !

Usare un PIN Digital, ya que... el servomotor es para el movimiento de un dedo en una Mano robótica, y no tengo la libertad para usar ahí un Sistema Analógico; de igual forma Gracias !


----------



## Scooter (Feb 26, 2017)

Angeloxx05 dijo:


> Esta bien, muchas gracias fue Muy útil tu Respuesta !
> 
> Usare un PIN Digital, ya que... el servomotor es para el movimiento de un dedo en una Mano robótica, y no tengo la libertad para usar ahí un Sistema Analógico; de igual forma Gracias !



No has entendido la anterior respuesta; AnalogWrite no genera ninguna señal analógica lo que genera es un PWM que es lo que los servos entienden (mas o menos)


----------



## Angeloxx05 (Feb 28, 2017)

Scooter dijo:


> No has entendido la anterior respuesta; AnalogWrite no genera ninguna señal analógica lo que genera es un PWM que es lo que los servos entienden (mas o menos)



Si la entendí, lo que quiero decir es que no lo Usare por que para que La biblioteca AnalogWrite Genere una Señal PWM , necesita modificaciones de Hardware y demás.


----------



## Scooter (Feb 28, 2017)

En teoría solo ajustando el timer debería de valer


----------

