Una duda sobre los pines digitales de arduino.

Hola a todos.

Vereis tengo desarrollado una pequeña placa con un arduino uno, una pantalla lcd y una tarjeta de reles; la placa lee la distancia al objeto, la muestra en la pantalla y según unos rangos definidos activa los reles. Y la verdad funciona bastante bien. El problema es que ahora quiero añadirle comunicación por modbus para obtener los datos a través del ordenador y, claro, necesito usar TX, RX y un pin adicional para el MAX.

Si contamos los pines usados, tenemos 6 para la pantalla LCD (rs, rw, d4 a d7); el receptor de ultrasonidos 2 (es un hc-sr04) para el eccho y el trigger; los relés solo son 4. Total 12. Teniendo en cuenta que TX y RX están libres, aun me falta uno mas para la seleccion de la dirección de comunicación del MAX485.

Y he aquí donde me surgen las dudas:

  • ¿Se puede realizar una llamada a la funcion pulseIn() sobre una entrada analógica? Las tengo todas disponibles.

  • Tengo también un arduino Leonardo disponible. En teoria, el UNO tiene 14 pines digitales y el Leonardo 20. Pero al mirar los pinouts, son muy similares y me faltan esas 6 pines digitales que tiene de mas el arduino Leonardo... ¿donde se me estan escondiendo?

Quizás estas preguntas ya estan respondidas en el foro, pero vamos, que no lo encuentro.

Gracias con antelación.

Saludos.

Con respecto al Leonardo nada te puedo ayudar, con respecto a tu UNO, te recomiendo usa los 6 pines análogos para controlar tu LCD.

Para un puerto adicional (en caso de necesitarlo ) puedes usar software serial. De usar los pines 0 y 1 (que yo los uso para la comunicacion RS485) puedes usar un pin análogo (Si no lo usas para la LCD) para controlar la transmisión y la recepción.

Cuando estoy corto de pines uso la LCD I2C. y con eso solo uso 2 pines para la LCD. Si usas estos consejos puedes usar el pulseIN en el pin que mejor te funcione. Para seleccionar la dirección puedes usar un 74165 con un dipswitch y leerlo con solo dos lineas.

Opciones hay muchas, estas son solo algunas de ellas.

Buenas, en realidad la UNO también tiene 20 digitales ya que los analógicos se pueden usar como digitales, correspondencias en el IDE:

A0 = D14;
A1 = D15;
A2 = D16;
A3 = D17;
A4 = D18;
A5 = D19;

Y la Leonardo tiene más de 20 :fearful:, 24 sino me fallan las cuentas:
D14 – MISO – PB3
D15 – SCK – PB1
D16 – MOSI – PB2
D17 – SS – PB0
SS no está en el cabezal ISP sino en el led rx por lo que un poco más complicado acceder a él. Al igual que en la UNO los analógicos también pueden ser digitales:

A0 – D18
A1 – D19
A2 – D20
A3 – D21
A4 – D22
A5 – D23

Salud.