¿Cómo reasignar el pin MISO?

3

Tengo un PCB con un LCD conectado junto con un registro de 595 turnos. Desafortunadamente, cuando diseñé la placa no me di cuenta de que la biblioteca LCD usaba SPI, que en el Arduino Uno tiene los pines 13-10. Por lo tanto, el sistema anula el pin 12 para el DHT y devuelve nan.

La biblioteca LCD que usé está aquí: enlace

He intentado modificar el pins_arduino.h en la línea 40 para configurar el pin MISO a otra cosa. Cuando depuro el valor MISO con serial, imprime el valor al que lo configuré, sin embargo, no tiene ningún efecto en el DHT (todavía devuelve nanómetro).

Por lo tanto, estoy en una situación difícil porque literalmente todos los pines están en uso, excepto 0 y 1, y todo está como configurado porque ya hice mi PCB.

¿Es incluso posible cambiar el pin MISO? Si es así, ¿lo estoy haciendo de la manera correcta?

    
pregunta mr-matt

1 respuesta

5
  

¿Cómo reasignar el pin MISO?

No puedes. El ATmega328P utilizado en el Arduino Uno solo tiene un periférico SPI y sus pines de E / S no pueden ser reasignados.

Mientras el periférico SPI esté activo, el pin PB4 (pin 12 en el Arduino Uno) se ve obligado a actuar como entrada, independientemente de cualquier otra configuración en el dispositivo. Esto significa que tendrá que desactivar temporalmente el periférico SPI mientras se está comunicando con el sensor DHT. La forma más fácil de hacer esto será llamar a SPI.end() antes de comunicarse con el sensor, y luego llamar a SPI.begin() después para devolver el periférico SPI a su estado anterior.

Como alternativa, es posible que desee considerar el uso de hardware diferente para reducir la congestión de pin. En particular, si puede hacer que los pines A4 y A5 estén disponibles, puede reemplazar la pantalla HD44780 y el sensor de temperatura DHT con equivalentes de I2C.

    
respondido por el duskwuff

Lea otras preguntas en las etiquetas