Pregunta:
Guarde algunos pines arduino al manejar una pantalla de 4 dígitos y 7 segmentos
Ghigo
2014-03-31 17:56:56 UTC
view on stackexchange narkive permalink

Construí un reloj simple usando una pantalla LCD de 4 dígitos y 7 segmentos. Muestro un dígito a la vez, encendiendo y apagando muy rápido y recorriendo los dígitos.

Todo está bien, pero usé 8 + 4 = 12 pines arduino. Necesito 2 pines más para otras funciones y no quiero usar 0 y 1 ya que necesito funciones de programación integradas de Arduino Mini.

Usé I2C para el reloj RTC, podría agregar una interfaz aquí ( como un PCF8574) y obtenga algunos pines de aquí. Pero me gustaría un enfoque diferente (y más educativo, para mí).

¿Hay un IC que envíe una salida ALTA en uno de los cuatro pines de salida impulsados ​​por 2 pines de entrada? Necesito esto:

  IN OUTP0 P1 D0 D1 D2 D30 0 1 0 0 00 1 0 1 0 01 0 0 0 1 01 1 0 0 0 1  

De esta manera puedo conectar OUT a la selección de dígitos y sobrar 2 pines.

Gracias por sus sugerencias.

Cuatro respuestas:
#1
+3
Madivad
2014-03-31 18:41:24 UTC
view on stackexchange narkive permalink

Sé que no es lo que preguntaste, pero estás usando muchos pines, ¿por qué no intentas simplificarlos e ir a una mochila I2C? Este de adafruit incluye una sola pantalla de segmento de 4x7.

dado su comentario, otra opción sería un controlador de segmento I2C / SPI 7. ( hoja de datos).

nueva edición: En realidad, cuando publiqué el controlador de 7 segmentos anterior, este es el que estaba pensando. No sé por qué no encontré esto la primera vez.

max7219 / 7221 hoja de datos y fuente digital:

Gracias por la pista. Mi pantalla es más grande que esto y quería un enfoque más educativo. Me gustaría mantener la parte del controlador de pantalla directamente en Arduino, ya que ya he implementado el control automático de brillo con un fotorresistor y algunas líneas de código.
@Ghigo Acabo de publicar una actualización para un controlador de 7 segmentos que también puede ser útil.
Dice que ya no se fabrica, pero hay clones. Enfoque interesante.
No sé por qué publiqué ese primer controlador, ese no es el que tengo aquí. Tengo uno de estos en una placa de conexión con pantallas de 8 x 7 segmentos. ¡Funciona de maravilla!
#2
+3
Adam Davis
2014-03-31 22:01:18 UTC
view on stackexchange narkive permalink

¿Estás usando tus pines analógicos? ¿Sabías que se pueden usar como pines digitales?

Los pines analógicos se pueden usar de manera idéntica a los pines digitales, usando los alias A0 (para la entrada analógica 0) , A1, etc. Por ejemplo, el código se vería así para establecer el pin analógico 0 en una salida y para establecerlo en ALTO:

  pinMode (A0, OUTPUT); digitalWrite (A0, HIGH);  

Esta es su mejor opción si no está utilizando todos sus pines analógicos.

Interesante. Tengo 2 pines analógicos sin usar, puedo intentar usarlos para la visualización, ya que necesito un pin pwm. Nunca probé esto
+1 para hacer referencia a ellos por su asignación analógica (`A0`) en lugar de digital (` 14`) et al, lo cual no siempre es correcto.
#3
+2
Peter Bloomfield
2014-03-31 18:07:35 UTC
view on stackexchange narkive permalink

Un decodificador de 2 a 4 líneas debería hacer lo que necesita. He usado un 74HC139 con Arduino antes, que contiene dos decodificadores en un DIP de 16 pines.

Sin embargo, hay muchas otras opciones. En el pasado, he utilizado un registro de desplazamiento de serie a paralelo de 8 bits ( 74HC595) para controlar una pantalla de 7 segmentos. Le permite controlar efectivamente 8 (o más) salidas utilizando solo 3 pines en su microcontrolador. Sin embargo, debe tener cuidado con los requisitos de energía. La mayoría de los registros de desplazamiento no pueden manejar una pantalla de este tipo directamente, pero pude incorporar transistores con bastante facilidad para evitar eso.

Ya tengo transistores para conducir dígitos, ya que podría haber hasta 8 segmentos encendidos (7 segmentos + punto). Supongo que necesito agregar 74HC139 antes de los transistores y dejar que funcione con baja corriente. ¡Gracias por tu preciosa pista!
Con la solución 74HC595, necesitaría un transistor por segmento, ¿verdad? Esto podría volverse complejo con 32 transistores. Yo iría por la solución 74HC139.
@Ghigo: dado que solo muestra un dígito a la vez, solo debería necesitar 8 transistores para los segmentos.
En este caso necesito poner 74HC595 después de los transistores. Algo de corriente fluirá allí. De la hoja de datos, veo que 20 mA es el límite al cambiar. ¿Es esto correcto?
@Ghigo: puede conectar el Arduino directamente al 595 sin ninguna dificultad. Los transistores deben ir entre eso y la pantalla. Cada salida del 595 generalmente solo puede administrar alrededor de 6 mA por sí sola a 5 V.
Creo que necesitará 4 transistores adicionales (además de los 8 primeros, uno por segmento): uno para cada dígito cátodo común (o ánodo, según sus pantallas), como para un chip, la corriente de origen es la misma que corriente de hundimiento, lo que significa que puede freír el circuito en el otro extremo del LED ...
#4
+2
John Walthour
2014-03-31 18:37:50 UTC
view on stackexchange narkive permalink

Un expansor I2C IO podría ser su mejor opción. Si su dispositivo I2C actual usa una dirección diferente, es posible que pueda colocar ambos dispositivos en el mismo bus I2C. Luego, usaría 0 pines adicionales en comparación con su diseño actual.

Acabo de notar que ya ha considerado este enfoque. De todos modos, dejaré esto aquí para que otras personas lean demasiado rápido.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...