Top 10 Articles
On octubre 12, 2021 by adminRecientemente, publicamos un proyecto Arduino de nivel de entrada con una sola pantalla LED de siete segmentos. Aunque es un proyecto de bricolaje increíble, notamos que la mayoría de los lectores están buscando circuitos más avanzados utilizando múltiples pantallas de diodos emisores de luz de siete segmentos. Aquí hay un circuito simple, pero útil, de una unidad de pantalla LED de 7 segmentos de 4 dígitos de Arduino. El módulo utilizado aquí es un módulo autónomo y compacto de cátodo común que contiene cuatro pantallas numéricas LED de 7 segmentos.
Cada segmento del módulo de visualización está multiplexado, lo que significa que comparte los mismos puntos de conexión del ánodo. Y cada uno de los cuatro dígitos del módulo tiene su propio punto de conexión catódica común. Esto permite que cada dígito se encienda o apague de forma independiente. Además, esta técnica de multiplexación convierte la enorme cantidad de pines del microcontrolador necesarios para controlar una pantalla en sólo once o doce (en lugar de treinta y dos).
Los segmentos de LED de la pantalla requieren resistencias limitadoras de corriente cuando se alimentan de un pin lógico de 5 V. El valor de la resistencia suele estar entre 330 y 470 ohmios. Además, se recomiendan transistores controladores para proporcionar corriente adicional a los segmentos de LED, ya que cada pin de un microcontrolador puede alimentar o hundir cerca de 40 mA de corriente solamente. Cuando todos los (siete) segmentos de la pantalla se encienden a la vez (el número 8), la demanda de corriente superará este límite de 40 mA. La imagen que se muestra a continuación indica el diagrama de cableado básico de las resistencias limitadoras de corriente y los transistores del controlador.
A continuación se muestra el diagrama de conexión de la pantalla LED de 7 segmentos de 4 dígitos de Arduino, seguido del boceto de Arduino. Siga cuidadosamente el diagrama de conexión para completar su hardware, y luego subir el boceto a Arduino utilizando el IDE de Arduino como de costumbre. El circuito terminado puede mostrar números que van del 0 al 1023, en conexión con un pote de preajuste de 10K conectado a la entrada analógica A0 de la placa Arduino.
Esta sección de pantalla de 7 segmentos de 4 dígitos está cableada alrededor de cuatro pantallas LED de 7 segmentos de cátodo común, y cuatro transistores npn BC547. Las resistencias de 1K se utilizan para limitar la corriente de la base, y las resistencias de 390R limitan la corriente de funcionamiento de los segmentos de la pantalla LED.
En la placa Arduino, las salidas digitales de D2 a D8 se utilizan para controlar los segmentos (a a g), y las salidas digitales D9 a D12 se utilizan para los dígitos (D0-D3) de la pantalla LED de 4×7. Obsérvese que aquí no se utiliza la opción del punto decimal (dp), sino que se incluye en el boceto. D13 del Arduino está reservado para el segmento del punto decimal. El potenciómetro de 10K está conectado a la entrada analógica AO, como se indica en el diagrama de conexión.
Prototipo @ Trabajo
/** Arduino 4x7 LED Display* Displays numbers ranging from 0 through 1023* Test Code displays the value of a sensor connected to the analog input A0* Inspired by a code found in the Arduino Cookbook* Tested at TechNode Protolabz/July 2014*/// bits representing segments A through G (and decimal point) for numerals 0-9const int numeral = { //ABCDEFG /dp B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B00111110, // 6 B11100000, // 7 B11111110, // 8 B11100110, // 9};// pins for decimal point and each segment// DP,G,F,E,D,C,B,Aconst int segmentPins = { 13,8,7,6,5,4,3,2 };const int nbrDigits= 4; // the number of digits in the LED display//dig 0 1 2 3const int digitPins = { 9,10,11,12 };void setup(){ for(int i=0; i = 0; digit--) { if(number > 0) { showDigit( number % 10, digit) ; number = number / 10; } } }} // Displays given number on a 7-segment display at the given digit positionvoid showDigit( int number, int digit){ digitalWrite( digitPins, HIGH ); for(int segment = 1; segmentShare this:
Deja una respuesta