sábado, 3 de septiembre de 2022

Conexión de una carga externa a Arduino

 Conexión de una carga de CC en Arduino


Dr. Héctor Darío Aguirre Arvizu
22-09-03

     Conectar componentes a una tarjeta Arduino para controlarlas no se puede hacer siempre de modo directo, ya que cada salida puede manejar máximo 150 mA por tiempos breves y la tarjeta en sí no debe consumir más de 200 mA en total.

     Por ello se requiere de un "driver" o circuito auxiliar que ayuda a la tarjeta electrónica a proporcionar energía, desde una fuente independiente del Arduino, para que podamos activar el dispositivo de modo seguro.

     Aquí te presento una opción para activar un motor de CC, una lámpara incandescente pequeña o un altavoz. 

     Usamos un transistor 2N2222A que trabaja como conmutador, en su base se conecta un resistor de entre 220 y 470 Ohmios (o incluso hasta 1K). En el colector se conecta un resistor de 10-100 Ohmios y a continuación el componente que llamamos carga.

     La fuente externa tendrá entre 6 y 15 V. La terminal negativa de la fuente externa se conecta al negativo del Arduino, ya que se convierten en punto de referencia, sin embargo los positivos van a diferentes puntos. El positivo de la fuente siempre va a la carga.

     En esta configuración la salida digital de la Arduino tendrá estado bajo (LOW), haciendo que el transistor tenga una corriente nula entre emisor y colector, ya que la base no está polarizada.

     Cuando la salida pasa a HIGH se polariza el transistor, que trabaja como conmutador, y, en ese momento, se cortocircuitan emisor y colector, permitiendo paso de corriente por la carga.

     Si conectamos un motor conviene adicionar un diodo semiconductor conectando cada una de sus terminales a las del motor pero polarizado de modo inverso, con el cátodo hacia el positivo de la fuente y el positivo hacia el transistor.

     Al conectar una pequeña lámpara incandescente es necesario asegurar que la corriente no pase del valor permitido para la corriente entre emisor y colector.

     Para probar que funciona conectando un altavoz conviene asegurarse de que sea un tren de pulsos rápidos lo que salga del Arduino, a una frecuencia audible.

     Este circuito driver funciona con cualquier programa que active como salida las terminales del Arduino. Nosotros lo probamos con el programa blink que puedes encontrar en tu programa Arduino, por lo que no lo reproducimos aquí.

     Te dejamos el video con las pruebas que hicimos comprobando que el circuito funciona:

     Espero te sirva esta información.

     D. R. 2022 Darío Aguirre

Interruptores con Arduino

 Manejo de interruptores de entrada en Arduino


Dr. Héctor Darío Aguirre Arvizu
22-09-01

Es importante conectar el mundo externo al interno del Arduino y lo más sencillo es por medio de interruptores, los cuáles permanecen abiertos o cerrados y, al ser activados, pasan a la posición contraria, o se cierran o se abren, respectivamente.

Podemos trabajar con interruptores de palanca o de botón, para este caso es indistinto.

Lo importante es que un interruptor no se puede conectar de modo directo a cualquier terminal, sino que debe mediar un resistor que, por un lado, permite polarizar adecuadamente la terminal programada como entrada y limita la corriente que se consume por parte del circuito, así como la corriente que entra a la tarjeta propiamente.

Hay dos configuraciones o circuitos adecuados, uno es el llamado pull-up y el otro el pull-down.

En la primera opción conectamos un resistor, de entre 4.7K hasta 15K, a la entrada del Arduino y de allí al voltaje positivo +5 V. Se aprecia el circuito en el siguiente diagrama.

Esta forma de conectar protege la terminal del Arduino de conectarla directamente a los 5 V. Se usa para cuando queremos mantener una lectura de HIGH en la entrada, pero que cambiará a LOW cuando se cierre el interruptor. La corriente pasará por el resistor siendo mínima la que se manejara en la entrada, protegiendo sus transistores de salida.

La segunda opción de conexión es pull-down o de conexión a negativo. Se utiliza para cuando se quiere dar a leer en el Arduino un estado LOW durante mucho tiempo, mismo que cambiará a HIGH al cerrar el interruptor. La conexión es la siguiente:
Aquí te ponemos el programa para verificar el funcionamiento de estos interruptores. 

Inicio del programa:
//LECTOR DE INTERRUPTORES

  int interrEntrada1 = 0;

  int interrEntrada2 = 0;
 
void setup() {
                          // inicializa el pin digital 12 como una Entrada y el 4 como Salida.
  pinMode(4, OUTPUT);
  pinMode(12, INPUT);
  
  pinMode(3, OUTPUT);     // la terminal 11 pasa a ser Entrada y la 4 Salida
  pinMode(11, INPUT);
  
  int interrEntrada1 = 0;

  int interrEntrada2 = 0;
  
}

void loop() {
 
  if (interrEntrada1 == HIGH) {
    
  digitalWrite(4, HIGH);            // Hace destellar el LED indicando que el interruptor está abierto
  delay(25);                        // durante 25 miliseguntos con un tiempo de espera de medio segundo.
  digitalWrite(4, LOW);             
  delay(500);                       

}
  else {
  digitalWrite(4, HIGH);    // Enciende el LED cuando lee que la Entrada pasó a LOW.
  delay(500);
  digitalWrite(4, LOW);     // Esta instrucción "else" permanecerá activa con el LED encendido mientras
                            // el interruptor permanezca cerrado.
     }
     
/*
  interrEntrada2 = digitalRead(11);
  
  if (interrEntrada2 == LOW) {

  digitalWrite(3, HIGH);            // Hace destellar el LED indicando que el interruptor está abierto
  delay(25);                        // durante 25 miliseguntos con un tiempo de espera de medio segundo.
  digitalWrite(3, LOW);             
  delay(500); 

}
  else {
  digitalWrite(3, HIGH);   // Enciende el LED indicando que se ha activado el interruptor.
  delay(500);
  digitalWrite(3, LOW);
     }
/*
}
Fin del programa.

Te recomendamos además ver el video para que notes cómo hicimos la prueba en un circuito real.



Esperemos sea de tu agrado.

D. R. 2022 Darío Aguirre

Implementando el enfoque STEAM

 STEAM en proyectos


Dr. Héctor Darío Aguirre Arvizu
22-09-03

    Para implementar un proyecto con el enfoque STEAM es conveniente llevar a cabo ciertos pasos, que no necesariamente son estrictamente secuenciales sino que algunos actos pueden ser simultáneos y además otros implicar regresar para retroalimentar y retomar de nuevo el camino.
     1. Identificar un problema en un ambiente específico, que corresponde a una sociedad. Esto da pie a la conformación de "proyecto" más allá de realización práctica simple o trabajo escolar de fin de año.
     2. Hacer un análisis de la situación para determinar los elementos esenciales del problema o más precisamente de la problemática.
     3. Investigación teórica: teorías o disciplinas que nos permiten obtener información adecuada. De hecho implica precisamente investigar información científica adecuada.
     4. Establecer la forma de trabajo integral de las diferentes disciplinas para hacer una transversalidad.
     5. Establecer estrategias para un plan de acción de modo que todos trabajen colaborativamente. 
     6. Entender que la solución será de tipo tecnológico, es cambiando un procedimiento, con un producto nuevo, con una mejora, etc.
     7. Establecer una o varias soluciones al problema haciendo un análisis de cada una de ellas.
     8. Incluir en la solución del problema a las artes de modo que sea atractiva pero al mismo tiempo impacte a la persona, al que aplica la solución. El producto necesita ser atractivo para que el público lo adquiera, se requiere ingeniería de diseño.
     9. Es importante contemplar la posibilidad del uso de materiales de reuso o reciclados, con la posibilidad de fácil adquisición. 
     10. Como parte de la solución establecer prototipos, haciendo dibujos, esquemas y otros elementos. La prototipación permite verificar errores y posibles mejoras iniciales.
     11. Se debe hacer una evaluación del proceso de creación-solución y del resultado mismo.
     12. Se evalúa el producto de un modo sistemático, bajo esquemas conocidos y diseñados ex profeso. 
     13. Es posible así, establecer mejoras antes de desarrollar el producto final.
     14. Dar a conocer el producto o solución mediante una forma de difusión, hay que comunicarlo de modo adecuado para que sea probado, reconocido y aceptado.
     15. Mejoras que se realizan una vez que el producto se aplica al mercado y, el que destaca aquellos cambios necesarios por la aceptación y uso generalizado del producto.
Aquí un video al respecto del tema:


Esperemos que esta información te sea útil.

D. R. 2022 Darío Aguirre




El enfoque STEAM

 El enfoque STEAM


Dr. Héctor Darío Aguirre Arvizu
22-09-03


     STEAM es un enfoque, una forma de entender los desarrollos tecnológicos de modo que se integran diferentes campos del conocimiento y la realización en cada proyecto.

    Es interesante notar que el enfoque no es solamente para profesionales con licenciatura, sino que se puede aplicar con jóvenes desde la primaria, a pesar de la carencia de ciertos conocimientos especializados de cada campo.



S
     La “S” se refiere a Sciences, en inglés, que significa Ciencias. Implica que nos basamos en conocimientos científicos en la elaboración de proyectos.
     Cualquier conocimiento científico es válido de ser usado y conectado con el trabajo personal.
     Las ciencias abarcan química, física, biología y otras que buscan encontrar las leyes de la naturaleza.
     El que se incluya la ciencia implica aprender a tener pensamiento científico: curiosidad, capacidad de razonar, experimentar, hacer observaciones y mediciones, hacer conjeturas plausibles, etc.

T
     La “T” se refiere a Technology que significa Tecnología y la idea es que en los proyectos se incluyan aspectos de desarrollo tecnológico, es decir, de el empleo de nuevos materiales, de nuevos procedimientos, nuevas ideas para realizar, nuevas aplicaciones, etc.
     La tecnología se refiere al campo de estudio de los procesos de elaboración de productos que satisfacen necesidades. 
Incluye, aunque pueda parecer repetitivo, el conocimiento de herramienta, de procesos, de procedimientos, de materiales, de formas de transformación, productos, distribución, venta, puesta en marcha, etc.
     La tecnología se puede definir también como el arte de crear los instrumentos y los procedimientos que permiten la transformación y la utilización de las fuerzas y de los recursos naturales para satisfacer las necesidades humanas.
     La Técnica se refiere al cómo se hace, el paso a paso, donde se incluyen materiales y procedimientos. Esto lo vemos en los famosos videos tutoriales.
     La palabra “Técnica” proviene del griego tekhné, que significa arte, y es de una época en la que lo práctico y lo artístico no estaban desligados.

E
     Proviene del término en inglés Engeneering que significa Ingeniería, e implica la aplicación del “ingenio” en los proyectos, ideas, propuestas, actitud de descubrimiento, saberes generales y particulares, y todo tipo de elementos que implican que las cosas se hagan, a pesar de los esfuerzos iniciales, mismos que irán disminuyendo con el aprendizaje y la práctica.
     Ingenio es la facultad humana para discurrir o inventar con prontitud y facilidad. También es intuición, entendimiento, facultad poética y creatividad. (RAE)
     El ingenio implica actitud de querer lograr, maña, artificio, chispa, talento.

A
   Se refiere a “Arts” que significa Artes.
   El arte se refiere al uso de las facultades humanas para hacer “sentir”, tanto en el aspecto emocional como en el presencial (es decir, hacer notar que existimos), ayuda a ubicarnos en esta existencia. Implica todo tipo de procedimientos: danza, pintura, escultura, cinematografía, teatro, etc. La finalidad es estética, regocija el alma, pero también hace pensar.
    El Arte implica creatividad, la cual definimos como la creación de productos a partir de los materiales disponibles, usando como guía una idea de lo que queremos comunicar.
    El enfoque STEM no incluye las artes al desvirtuar este campo tan importante en la vida del ser humano.

M
    Es por la palabra Math o Mathematics.
    Es el uso de la matemática para el desarrollo de proyectos, que implica: 
    Hacer cuentas (aritmética),
    Medir (métrica), 
    Trazar figuras (geometría), 
    Plantear y resolver problemas de modo racional (eurística), 
    Saber pensar (lógica), 
    Hacer análisis de datos (estadística), etc.
     Con ello se implica el uso de cálculos e instrumentos.
     Implica optimizar los recursos (usar haciendo que nos rinda al máximo), saber cuánto usar de cada uno, costos y optimización de los mismos.
    También es necesario considerar el uso de programación que se está manejando como pensamiento computacional.

Aquí un video sobre el tema:
En una siguiente entrada veremos cómo se implementa un proyecto con enfoque STEAM.


D. R. 2022 Darío Aguirre

miércoles, 17 de agosto de 2022

Control analógico de LED con Arduino

 Control analógico de un LED con Arduino

Dr. Héctor Darío Aguirre Arvizu
22-08-18
Aquí te presentamos el programa para el control del LED por medio de un programa que emplea el principio de modulación por ancho de pulso.
Modulación por Ancho de Pulso.

El circuito a usar es sencillo, conecta un LED a la terminal tres (3) de las salidas del Arduino, luego un resistor de 220 ohmios y de allí a la tierra del Arduino.

Inicio del programa. Copia desde la siguiente línea a tu sketch de Arduino.
/*
Este programa hace que el led de salida encienda de modo gradual hasta llegar
a un máximo y de allí vuelva a bajar la intensidad hasta apagarse.
Tomado de: HobbyElectrónica https://www.youtube.com/watch?v=5u_TKpOlx8U

Modificado por: Darío Aguirre 22-08-14
*/
// Establecimiento de variables, en este caso enteras.

int pwm = 5;             //Asignación de la terminal de salida donde se conectara el LED
int i = 0;               //variable que hará que el ciclo de trabajo aumente y disminuya

// Programación de terminales de salida.

void setup(){
  pinMode(pwm,OUTPUT);   //En la terminal tres se hará la salida y allí estará el LED 
  }

// Programa en sí.

void loop(){                                // Inicio de ciclo de encendido secuencial.
    for(i = 0; i <= 255 ; i++)     // Uso de instrucción "for" (para), de tal modo que 
                                                    // verifica si es menor o igual a 255, si no, aumenta en uno.
    {  analogWrite(pwm,i);         // Escribe el valor de pwn como salida analógica de voltaje
                                                   // que se traduce en la salida como un pulso estrecho que
                                                     // va creciendo en anchura.
       delay(20); }                // Espera 20 milisegundos antes de incrementar
                                                    // 20 mseg es la 50ava parte de un segundo
    
  for(i = 255; i>= 0 ; i--) 
    {  analogWrite(pwm,i);
       delay(20); 
     }
     delay(1000);                   // Espera un segundo con LED apagado
}                                  // A partir de aquí regresa a la línea donde inicia "for".

Hasta aquí el programa.

Aquí te presentamos el video para que te guíes en la exploración del programa.



D. R. 2022 Darío Aguirre


viernes, 12 de agosto de 2022

Electrónica Analógica y Digital

 Electrónica Analógica y Digital


Dr. Héctor Darío Aguirre Arvizu
22-08-12

     La realidad del mundo se manifiesta de dos formas. Una es continua, es decir, las variables que usamos para medir los fenómenos cambian de modo continuo, de un valor al siguiente de modo suave. La otra forma es por medio de pulsaciones (discreta).
     
     Por una parte la analogía es la relación de semejanza entre cosas distintas. Esta relación puede tener que ver con su estructura, su función, etc., pero no en cuanto su origen.
Mundo analógico-digital. (1)
     Para dar una idea en un campo diferente, la biología, entre los animales son órganos análogos las alas de los insectos y de las aves, las patas cavadoras del topo y del grillotopo, aunque su origen sea diferente.

     Por su parte, el razonamiento por analogía es el que luego de observar los caracteres comunes de dos o más hechos, se pasa a la afirmación de otro carácter común observado sólo en uno de ellos. El razonamiento por analogía sólo permite formular hipótesis de trabajo; empleando un razonamiento por analogía, se ha supuesto, p. ej. la existencia de vida en Marte, pero la comprobación se tiene que hacer por experimentación.

     Este tipo de razonamiento, el analógico, se emplea en todas las ciencias, así, la teoría ondulatoria de la luz surgió por analogía con la teoría ondulatoria de la transmisión del sonido. En matemáticas, las leyes de las operaciones fundamentales que se aplican a los números naturales (enteros), se extienden, por analogía, a los números fraccionarios y después a los negativos, etc.
     
     Durante siglos, la medición de una variable se ha hecho por medio de una analogía, en un principio de tipo mecánico, por ejemplo, para medir la longitud del diámetro de la tierra en la antigüedad, se utilizó la altura de la sombra de un palo de cierta altura colocado en dos ciudades distantes unas de otras.
Calculadora Analógica (2).
     Con el advenimiento de la ciencia, en particular desde la revolución industrial, la necesidad de medir fue incrementándose, lo que llevó a descubrimientos que permitieron el desarrollo de medidores analógicos, en particular los que usaban agujas que, por medio de un ángulo, representaban el valor de la variable. Por algún procedimiento se establecía el patrón para conocer la unidad. En un principio era suficiente que la aguja apuntara en una dirección no precisa, la carátula que se empleaba estaba dividida en tres o más zonas que podían colorearse. Más adelante, las divisiones fueron haciéndose más pequeñas, de modo que pudieran medirse fracciones de la unidad elegida o graduaciones más pequeñas. La aguja siempre ha representado una cierta cantidad o intensidad de la variable, la vemos colocada en un ángulo. Regresando un poco a la imagen 2, podemos decir que el giro de la esfera representaba una distancia y ángulo recorridos, haciendo una especie de integración de información, de modo que en un mismo movimiento se representan dos o más variables.
Balanza mecánica, el peso se representa por el desplazamiento de la aguja. (3)
     El reloj de agujas es el instrumento de medición analógica más conocido por muchas personas. Mide el paso del tiempo siguiendo un ángulo de giro. 
Un reloj ya no tan común. (4)
     En medición analógica las magnitudes o valores que varían con el tiempo de modo continuo: distancia, temperatura, velocidad, o intensidad de cualquier variable, se registran, como se ha mencionado, por el ángulo de giro de una aguja, ya que se transforman en una corriente eléctrica que pasa por una bobina, a la que está sujeta la aguja.
Miliamperímetro, representa la corriente por el ángulo. (5)
     Por cierto, los discos de vinil (plástico acetato) son una forma de registro del sonido, magnitud analógica, ya que se graban ranuras de profundidad y ancho proporcionales a la intensidad y frecuencia del sonido. También es posible la grabación en cintas magnéticas y otros dispositivos semejantes.
Ranuras de disco de acetato. (6)
     El desarrollo de la tecnología analógica en electrónica llegó a grandes logros con los amplificadores operacionales ya que se pudo comparar señales, operar con ellas (sumarlas, restarlas, multiplicarlas, dividirlas, integrarlas, diferenciarlas, etc.). Ya la tecnología analógica mecánica había logrado avances en la realizaciones de operaciones con las variables por medio de diversos mecanismos, sin embargo no era una tarea fácil y los mecanismos tendían a desgastarse, lo que provocaba errores de medición o representación.

     Como se mencionó, un instrumento de medición analógico puede tener un galvanómetro, bobina a la que se le adhiere una aguja, la cual se desplaza por encima de una carátula graduada. Es la base de los primeros amperímetros y los voltímetros, los higrómetros y otros medidores. Tenemos además ejemplo del multímetro analógico.
Multímetro analógico. (7)
     Ya en electrónica, lo analógico se ha manejado con el sonido, desarrollando micrófonos, pre-amplificadores, amplificadores, bocinas (altavoces) y muchos otros dispositivos. Ya se mencionaron las formas de registro en discos plásticos y cintas magnéticas. Lo mismo  ocurrió con el sistema de televisión, en todas sus modalidades. 

     En un osciloscopio es posible ver cómo cambia la intensidad de un voltaje en el tiempo. Aquí mostramos un cambio suave en una onda sinusoidal. Aquí la imagen como se ve en el osciloscopio.
Onda sinusoidal en osciloscopio. (8)


     Por su parte, lo pulsatil, lo discontinuo, se refiere a lo digital, es decir, a lo relacionada a los dedos. El conteo básico siempre se ha iniciado con el manejo de unidades concretas como los dedos o con piedras. En una época posterior el conteo con piedras sueltas pasó a hacerse con cuentas (piedras) insertadas en un canal o en un hilo o barra. Se formó entonces el ábaco, donde las barras centrales dan valores posicionales, pero el conteo se realiza uno más uno.

     Como se ve, lo digital no nació con la electrónica. Se ha mencionado el manejo del ábaco, un verdadero sistema de conteo uno por uno, manejando las cuentas con los dedos. Para el manejo del mismo se desarrollaron procedimientos particulares, los llamados algoritmos. La pretensión del conteo por medio de máquinas, surgida en el siglo XVIII con Babbage, llevó a retomar los algoritmos de los abacistas (así se llamaba a los que manejaban el ábaco en el siglo X) para la realización de los cálculos de modo más rápido. Se observó que el manejo del sistema decimal, adoptado primero en Francia, se podía reproducir por medio de engranes, lo que llevó a la ideación y fabricación de grandes máquinas más bien experimentales. 
Reproducción de un diseño de Babbage. (9)
     Con el desarrollo de los dispositivos electrónicos, en particular válvulas al vacío en su momento, después transistores y más adelante circuitos integrados, se ha permitido la aceleración de los procedimientos o algoritmos de los ábacos, de modo que prácticamente se hacen los mismos "movimientos" pero de modo que cada paso se realiza de microsegundos.

     Para el establecimiento de sistemas electrónicamente cada vez más rápidos fue necesario disminuir el número de dígitos a utilizar, a dos de ellos, cero y uno. Esto es, se emplea un sistema binario en lugar de uno decimal. Existen diversos sistemas numéricos con base diferentes, el decimal, tradicionalmente ya conocido, el que manejamos a nivel mundial como cotidiano, el binario, el octal, el hexadecimal, el vigesimal, etc.

     A los sistemas que utilizan estas ideas se les llama digitales. Los ceros y unos son representados por el voltaje cero y por un cierto valor máximo que, en un principio pudo ser de hasta cuarenta y ocho voltios, pero con la llamada tecnología TTL se redujo a 5V y actualmente se manejan voltajes de 3.7 y 3.3V en los dispositivos de comunicación celular. Algunas tecnologías como la CMOS permiten voltajes de hasta 18V.

     Los voltajes que representan los ceros y unos se dan como trenes de pulsos: se tiene voltaje cero para después presentar un voltaje alto que después cae a cero y después vuelve a subir a un máximo, para volver a caer. Los trenes de pulsos se juntan, por medio de un código, para proporcionar información útil. Te presento una imagen de un tren de pulsos.
Pulsos en el osciloscopio. (10)
     A todo sistema que utiliza este tipo de conformación y que, además muestra la información por medio de números, se le llama digital.

     En realidad los sistemas digitales y analógicos no son excluyentes ni en la técnica ni en la práctica, es decir, siempre existirán las señales tomadas de la realidad que requieren de ser manejadas electrónicamente, en un momento de modo analógico, para después pasarlos a un modo digital, con lo que se puede registrar en algún sustento como memorias, discos, etc. Esta información se puede cambiar a analógica, como por ejemplo en la música que escuchamos en dispositivos electrónicos que se reproduce con audífonos.

     En medición empleamos el multímetro digital que transforma las variables de voltaje, corriente y resistencia en señales digitales, de ceros y unos para ser expresadas después en un display por medio de números en sistema decimal.
Multímetro digital. (11)
     Luego entonces existen dos grandes campos de variables de la realidad, el analógico y el digital, que, al ser llevados a diferentes tecnologías, la mecánica, la eléctrica y la electrónica, crean  los campos del mismo nombre. Con la tecnología electrónica, en el procesamiento de información, se establecen entonces los campos de la electrónica analógica y la digital, ambas en gran desarrollo actual.

     Te dejo un video explicativo:



Imágenes tomadas de: 
(1), (4), (7) y (11) Imagen del autor.
(2) BBVA
(6) Quora.
(8) y (10) Genairo M. Román.
(9) El País.


D. R. 2022 Darío Aguirre






martes, 9 de agosto de 2022

Arduino 05 Contador Ascendente-Descendente.

 

Contador Ascendente-Descendente.


Dr. Héctor Darío Aguirre Arvizu
22-08-09

     Aquí veremos cómo construir un contador ascendente descendente con un display de 7 segmentos de cátodo común.

     En una entrada previa he hecho la versión para el display de ánodo común.


     Disponemos de un display de 7 segmentos 5161AS. 


Nos vamos a la hoja de datos (ver la liga) y obtenemos la siguiente información:


     Sin embargo, en esta información no nos dicen cómo están distribuidas las terminales en el propio display, es decir, no nos dicen cuál es la uno, dos, tres, etc. Podemos suponer que es como en los circuitos integrados que se hace en sentido de las manecillas del reloj. Una nueva búsqueda nos da la siguiente información (mi arduino uno):
Aquí y apodemos ver la correlación entre segmentos del display y las terminales, por ello:
     Aquí presentamos inclusive, en el extremo externo a cada LED, la conexión que se hará en las terminales del Arduino.
     A continuación te presento el diagrama:

     A continuación te muestro una fotografía de cómo queda conectado:


     Ya en el principio de te habíamos puesto la imagen generada den Thinkercad del circuito. Puedes revisarla.
     Desde aquí te presento el programa. Solamente tienes que copiarlo (solo la letra pequeña) y de allí pegarlo a un sketch del programa Arduino, compilarlo (para verificar que hayas copiado correctamente), guardarlo en un archivo .ino, para después subirlo a tu tarjeta con las conexiones previamente realizadas.
     Desde aquí el programa.
//Contador ascendente-descendente con display de 7 segmentos con ánodo común
//Dr. Héctor Darío Aguirre Arvizu
//2022-10-22
// las terminales 3 y 8 del display 5161AS son el punto común que en este caso se conecta a GND o negativo.

const int p = 13; //asigna el pin 13 el encendido del punto decimal al inicio del programa; parpadea con el diodo del circuito
const int a = 12; // a partir de 12 hacia abajo asignamos los pines para los diferentes segmentos;
const int b = 11; // los colocamos como enteros asignados a un pin;
const int c = 10; // Ello permite no confundir a qué segmento (a, b, c, etc.) se le dará voltaje
const int d = 9;
const int e = 8;
const int f = 7;
const int g = 6;
const int x = 1000; // asignamos un valor fijo para que cada dígito prenda un segundo

void setup() {

  pinMode(a, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(c, OUTPUT);
  pinMode(d, OUTPUT);
  pinMode(e, OUTPUT);
  pinMode(f, OUTPUT);
  pinMode(g, OUTPUT);
}

void loop() {

    //Cero
  digitalWrite(a, HIGH); //Al ser un display de cátodo común cada segmento debe estar en alto para encender
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, LOW); // cuando están en alto permanecen apagados
  delay(x);

    //Uno
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
  delay(x);

    //Dos
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, LOW);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, LOW);
  digitalWrite(g, HIGH);
  delay(x);

    //Tres
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, HIGH);
  delay(x);

    //Cuatro
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(x);

   //Cinco
  digitalWrite(a, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(x);

    //Seis
  digitalWrite(a, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(x);

    //Siete
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
  delay(x);

    //Ocho
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(x);

    //Nueve
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(x);

    //Ocho
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(x);

   //Siete
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
  delay(x);

    //Seis
  digitalWrite(a, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(x);

    //Cinco
  digitalWrite(a, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(x);

    //Cuatro
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(x);

    //Tres
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, HIGH);
  delay(x);

    //Dos
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, LOW);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, LOW);
  digitalWrite(g, HIGH);
  delay(x);

    //Uno
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
  delay(x);

}
Hasta aquí el programa
Te coloco aquí el video del tema:


Espero te diviertas.


D. R. 2022 Darío Aguirre