# Arduino Arduino es una familia de placas programables de hardware y software abiertos. Una placa Arduino se puede pensar como una computadora muy pequeña. La placa por sí misma no tiene mucha utiliadad pero tiene una gran cantidad de conectores llamados _pines_ a través de los cuales se le pueden conectar a la placa distintos módulos que permiten agregarle comportamiento. La mayoría de estos módulos se dividen entre sensores y actuadores. Los sensores son aquellos que miden alguna magnitud externa y se la transmiten al Arduino para que haga algo con dicha información. Los actuadores son aquellos que realizan alguna acción sobre el medio externo. Si pensamos a los sensores como los sentidos del Arduino y a los actuadores como sus músculos, entonces la placa puede ser considerada el cerebro que interconecta todos los componenetes y, a partir de la información sensada por los sensores decide qué acciones realizar a través de sus actuadores. ## Pines Hay varios tipos de pines. Por un lado están los pines de corriente. De estos hay dos tipos. Los positivos y los negativos. A los negativos se los llama _ground_ y suelen estar señalizados en las placas con la sigla _gnd_. Los positivos están enviando distintas cantidades de corriente constantemente. Las placas Arduino suelen tener un pin de 5 voltios y otro de 3.3 voltios (señalizados generalmente con _5V_ y _3.3V_ respectivamente). Por otro lado están los pines de información que se dividen a su vez en cuatro subtipos. Además, cada pin puede ser usado para lectura (el Arduino recibe información a través de ese pin, generalmente proveniente de un sensor) o para escritura (el Arduino envía información a través de ese pin, generalmente a un actuador). Los más comunes son los pines digitales. Estos pines pueden "encenderse" y "apagarse" para que transporten corriente o dejen de hacerlo. En la jerga Arduino se dice que el estado de un pin digital es _HIGH_ ("alto" en inglés) si está transportando corriente y _LOW_ ("bajo" en inglés) si no. Los pines analógicos pueden usarse para leer datos en un rango más amplio de valores (en lugar de sólo _HIGH_ y _LOW_). Suelen manejarse en el rango 0-1023 por lo que son útiles para recibir números. En casi todas las placas los pines analógicos también pueden ser usados como pines digitales. Algunos pines digitales son también pines _pwm_. El nombre es la sigla de _Pulse Width Modulation_ ("modulación por ancho de pulso" en inglés) que es un mecanismo a través del cual el Arduino puede enviar datos en un rango más amplio de valores (en lugar de sólo _HIGH_ y _LOW_). Suelen manejarse en el rango 0-255 por lo que son útiles para enviar números. Finalmente, los pines de interrupción son pines que se pueden configurar para generar interrupciones. Esto es permitir que un módulo externo (un sensor u otro componente) interrumpa la ejecución del código para notificarle al Arduino alguna situación particular.