Varias preguntas, soy novato en arduino

La primera: En los tutoriales de arduino en la pagina web, exactamente los que se refieren a los led, dice que: en el pin 13 se pueden conectar sin necesidad de una resistencia, pero que en los demas es necesario utilizar una resistencia externa, pero yo he conectado leds a todos los pines digitales sin usar resistencia, y no ha habido ningun problema, los led han prendido sin problema alguno y no se han dañado, ya que lo he hecho varias veces, por lo que pregunto:
¿para que la resistencia entonces?
y/o
¿que puede pasar si NO la uso?

La segunda: en varios tutoriales que he visto en internet, no en la pagina de arduino si no en otras paginas, sobre el uso de motores DC (ni steppers ni servos, motores DC normalitos) he visto que utilizan, en uno de ellos un L293D y en el otro SN754410, para controlar los motores, primero:
¿que es un L293D?
¿que es un SN754410?
(aqui estan los tutos: http://www.miklos.blog.br/2009/11/controlar-motores-dc-com-l293d.html y
Arduino Forum )
segundo: yo he utilizado un motor DC con arduino sin necesidad de conectarle nada aparte, solo el motor, un cable al pin 8 y el otro al pin GND, uso pinMode(8, OUTPUT); y digitalWrite(8, HIGH) y LOW, y funciona perfectamente, lo he hecho varias veces y no ha habido ningun problema, por lo que pregunto:
¿Para que el L293D y el SN754410 entonces?
y/o
¿Que puede pasar si no los uso?
Tercera pregunta: Quisiera cambiar desde arduino la direccion en la que gira el motor DC, se que con solo cambiar la polaridad este cambia de direccion.
¿Como puedo hacer eso desde arduino?
A mi se me ocurre lo siguiente: conectar el motor DC a dos pines digitales, por ejemplo, un cable al pin 9 y el otro al pin 8, usar pinMode OUTPUT en ambos, pero en el loop, alternar, cuando el 9 este en HIGH poner el 8 en LOW y viceversa, eso cambia el positivo, pero estaria usando un pin digital a modo de tierra (GND), me pregunto:
¿si puede le puede pasar algo malo a la placa por hacer eso?
Gracias

Lo primero es recomendable seguir los tutoriales sobre todo si no sabes mucho del tema!! y si no quieres acabar quemando el micro XD

giovaelpe:
¿para que la resistencia entonces?

giovaelpe:
¿que puede pasar si NO la uso?

Si sobrepasas los 40 mA en un pin freirás el micro para eso se ponen para limitar la corriente de cada LED.

giovaelpe:
¿que es un L293D?
¿que es un SN754410?

L293D y SN754410

giovaelpe:
¿Para que el L293D y el SN754410 entonces?

Para el control de motores DC :slight_smile:

Te pongo lo mismo que lo de las LED si pasas 40 mA == micro quemado! Para esos estan los drivers!

giovaelpe:
¿Que puede pasar si no los uso?

Freirás el microcontrolador.

giovaelpe:
Tercera pregunta: Quisiera cambiar desde arduino la direccion en la que gira el motor DC, se que con solo cambiar la polaridad este cambia de direccion.
¿Como puedo hacer eso desde arduino?
A mi se me ocurre lo siguiente: conectar el motor DC a dos pines digitales, por ejemplo, un cable al pin 9 y el otro al pin 8, usar pinMode OUTPUT en ambos, pero en el loop, alternar, cuando el 9 este en HIGH poner el 8 en LOW y viceversa, eso cambia el positivo, pero estaria usando un pin digital a modo de tierra (GND), me pregunto:
¿si puede le puede pasar algo malo a la placa por hacer eso?

Directamente ni lo intentes por todo lo mencionado anteriormente :wink:

Hola amigo, te intentaré explicar despacito algunos conceptos.
Verás, cuando conectas un motor de 5V o un servo te va a ir fetén, incluso si conectas algún servo más. El problema es que aunque Arduino siempre de 5V no da la intensidad suficiente como para alimentar muchos componentes a la vez, y su alimentación interna se usa para alimentar "drivers" como transistores u optoacopladores.

Una analogía buena es que Arduino, aunque pague con billetes de 5 euros, no dispone de suficientes billetes como para mantener varios puertos abiertos al mismo tiempo. También puedes irte a la definición de diferencia de potencial e intensidad. Digamos que lo primero es la diferencia de cargas entre dos puntos de un conductor que provoca que ciertos electrones viajen para igualarla (5V), resumiendo, es una tendencia al movimiento de cargas, mientras que la intensidad es la cantidad de cargas, 40 mA por pin en nuestro caso.

Lo suyo giovaelpe es usar "drivers" como los que dices, que no son más que componentes que hacen de interruptores electrónicos. Estos pueden ser por ejemplo relés, que ya los conoces, transistores, que a grosso modo son como relés que comparten el negativo de la carga que activan con tu arduino, u optoacopladores, que son como relés en estado sólido (fototransistores), ya que no tienes que conectar la masa de la carga a la de tu Arduino, como en el transistor.
A estos "drivers", les conectas el polo negativo de tu carga (motor) y el positivo de todas las cargas al positivo de alimentación de una fuente aparte, cuya intensidad proporcionada se mida ya en el orden de amperios, de manera que la poca corriente (intensidad) de Arduino la usas para controlar el encendido y apagado del motor (además de que un motor genera corrientes perjudiciales para el uC cuando se desconecta).

Por último, para lo que dices de invertir el giro, yo lo haría con un relé de dos filas de contactos o con un driver similar, de manera que:
Conectas unos de los cables que te vienen del motor al común de una de las filas, al NC (normalmente cerrado) conectas uno de los cables que vienen de alimentación y a NA (normalmente abierto), conectas el otro cable de alimentación. En la otra fila de contactos conectas al común el otro cable del motor, al NC el mismo cable de alimentación que has conectado en el NA de la otra fila (haces una extensión) y al NA el cable que has conectado al NC de la primera fila.

El resultado es que cuando el relé esté desconectado, la corriente fluirá por los NC y cuando esté activo por los NA, que como son los mismos que los NC pero invertidos: se invertirá así mismo el giro. Es más sencillo de lo que parece.

¡Saludos!