Generation

generate functionSat, 10 May 2025

Genérame un código que me sirva en Tinkercat para un display de 7 segmentos de un contador de 9 a 0 en cuenta regresiva

Aquí te dejo un ejemplo de código en C++ que puedes utilizar en Tinkercad para un display de 7 segmentos que cuenta de 9 a 0 en cuenta regresiva: ```cpp const int segA = 2; // Pin del segmento A const int segB = 3; // Pin del segmento B const int segC = 4; // Pin del segmento C const int segD = 5; // Pin del segmento D const int segE = 6; // Pin del segmento E const int segF = 7; // Pin del segmento F const int segG = 8; // Pin del segmento G const int segDP = 9; // Pin del punto decimal const int segPins[] = {segA, segB, segC, segD, segE, segF, segG, segDP}; void setup() { for (int i = 0; i < 8; i++) { pinMode(segPins[i], OUTPUT); } } void display(int numero) { switch (numero) { case 0: digitalWrite(segA, HIGH); digitalWrite(segB, HIGH); digitalWrite(segC, HIGH); digitalWrite(segD, HIGH); digitalWrite(segE, HIGH); digitalWrite(segF, HIGH); digitalWrite(segG, LOW); digitalWrite(segDP, LOW); break; case 1: digitalWrite(segA, LOW); digitalWrite(segB, HIGH); digitalWrite(segC, HIGH); digitalWrite(segD, LOW); digitalWrite(segE, LOW); digitalWrite(segF, LOW); digitalWrite(segG, LOW); digitalWrite(segDP, LOW); break; case 2: digitalWrite(segA, HIGH); digitalWrite(segB, HIGH); digitalWrite(segC, LOW); digitalWrite(segD, HIGH); digitalWrite(segE, HIGH); digitalWrite(segF, LOW); digitalWrite(segG, HIGH); digitalWrite(segDP, LOW); break; case 3: digitalWrite(segA, HIGH); digitalWrite(segB, HIGH); digitalWrite(segC, HIGH); digitalWrite(segD, HIGH); digitalWrite(segE, LOW); digitalWrite(segF, LOW); digitalWrite(segG, HIGH); digitalWrite(segDP, LOW); break; case 4: digitalWrite(segA, LOW); digitalWrite(segB, HIGH); digitalWrite(segC, HIGH); digitalWrite(segD, LOW); digitalWrite(segE, LOW); digitalWrite(segF, HIGH); digitalWrite(segG, HIGH); digitalWrite(segDP, LOW); break; case 5: digitalWrite(segA, HIGH); digitalWrite(segB, LOW); digitalWrite(segC, HIGH); digitalWrite(segD, HIGH); digitalWrite(segE, LOW); digitalWrite(segF, HIGH); digitalWrite(segG, HIGH); digitalWrite(segDP, LOW); break; case 6: digitalWrite(segA, HIGH); digitalWrite(segB, LOW); digitalWrite(segC, HIGH); digitalWrite(segD, HIGH); digitalWrite(segE, HIGH); digitalWrite(segF, HIGH); digitalWrite(segG, HIGH); digitalWrite(segDP, LOW); break; case 7: digitalWrite(segA, HIGH); digitalWrite(segB, HIGH); digitalWrite(segC, HIGH); digitalWrite(segD, LOW); digitalWrite(segE, LOW); digitalWrite(segF, LOW); digitalWrite(segG, LOW); digitalWrite(segDP, LOW); break; case 8: digitalWrite(segA, HIGH); digitalWrite(segB, HIGH); digitalWrite(segC, HIGH); digitalWrite(segD, HIGH); digitalWrite(segE, HIGH); digitalWrite(segF, HIGH); digitalWrite(segG, HIGH); digitalWrite(segDP, LOW); break; case 9: digitalWrite(segA, HIGH); digitalWrite(segB, HIGH); digitalWrite(segC, HIGH); digitalWrite(segD, HIGH); digitalWrite(segE, LOW); digitalWrite(segF, HIGH); digitalWrite(segG, HIGH); digitalWrite(segDP, LOW); break; } } void loop() { for (int i = 9; i >= 0; i--) { display(i); delay(1000); } } ``` Este código utiliza un bucle `for` para contar de 9 a 0 y llama a la función `display` para mostrar cada número en el display de 7 segmentos. La función `display` utiliza un `switch` para determinar qué segmentos deben estar encendidos para mostrar cada número. Recuerda que debes conectar los pines del display de 7 segmentos a los pines correspondientes en tu Arduino y configurar el display para que funcione con un protocolo de comunicación compatible (como el protocolo de comunicación de 7 segmentos estándar). También es importante mencionar que este código asume que el display de 7 segmentos tiene un punto decimal (DP) conectado a un pin digital. Si tu display no tiene un punto decimal, puedes eliminar la variable `segDP` y la línea `digitalWrite(segDP, LOW);` en la función `display`.

Want to kickstart your project?Use the new AI Studio to create your code