Display 7 seg

 display


Actividad Basada en la Vida Real: Sistema de Control de Temperatura

Objetivo:

Desarrollar un sistema de control de temperatura utilizando un potenciómetro para simular la entrada de temperatura, un display de 7 segmentos para mostrar la temperatura, y un botón para encender/apagar el sistema.

Materiales Necesarios:

  • Arduino Uno
  • Protoboard
  • Jumpers
  • Potenciómetro
  • Display de 7 segmentos (Anodo común o cátodo común)
  • 2 Botones
  • Resistencias (220Ω, 10kΩ)
  • Cables de conexión

Descripción del Proyecto:

Este proyecto simula un sistema de control de temperatura como los que se encuentran en los aires acondicionados o calefactores. El usuario puede ajustar la "temperatura" usando un potenciómetro. El display de 7 segmentos muestra la temperatura actual. Un botón sirve para encender o apagar el sistema, y otro botón puede simular la activación de una alarma cuando la temperatura excede un cierto límite.

Pasos para la Construcción del Proyecto:

1. Montaje del Circuito:

  1. Conexión del Potenciómetro:

    • Conecta el pin central del potenciómetro a la entrada analógica A0 del Arduino.
    • Conecta un extremo del potenciómetro a 5V y el otro a GND.
  2. Conexión del Display de 7 Segmentos:

    • Conecta los pines del display de 7 segmentos a los pines digitales del Arduino (por ejemplo, pines 2 a 8 para los segmentos a-g).
    • Utiliza resistencias de 220Ω entre los pines del display y el Arduino para limitar la corriente.
  3. Conexión de los Botones:

    • Conecta un botón entre el pin digital 9 y GND con una resistencia pull-up de 10kΩ.
    • Conecta el otro botón entre el pin digital 10 y GND con una resistencia pull-up de 10kΩ.



#define PULSADOR 11
 
// Array multidimensional para mostrar los números
byte  numero[10][7] =
{
  { 0, 0, 0, 0, 0, 0, 1}, // 0
  { 1, 0, 0, 1, 1, 1, 1}, // 1
  { 0, 0, 1, 0, 0, 1, 0}, // 2
  { 0, 0, 0, 0, 1, 1, 0}, // 3
  { 1, 0, 0, 1, 1, 0, 0}, // 4
  { 0, 1, 0, 0, 1, 0, 0}, // 5
  { 0, 1, 0, 0, 0, 0, 0}, // 6
  { 0, 0, 0, 1, 1, 1, 1}, // 7
  { 0, 0, 0, 0, 0, 0, 0}, // 8
  { 0, 0, 0, 1, 1, 0, 0}, // 9
};
 
void setup() {
  // Iniciamos el monitor serie
  Serial.begin(9600);
 
  // Ponemos los pines de los segmentos en modo OUTPUT (salida)
  for (int i = 3; i <= 11; i++)
  {
    pinMode(i, OUTPUT);
  }
 
  // Ponemos el pin del pulsador en modo INPUT (entradda)
  pinMode(PULSADOR, INPUT);
 
  //Establecemos la semilla fija
  randomSeed(analogRead(A0));
}
 
void loop() {
  // Leemos el valor del pulsador
  int valor = digitalRead(PULSADOR);
 
  // Si está pulsado
  if (valor == HIGH)
  {
 tone(12,1000);
    delay(50);
    noTone(12);
    //Genera un numero aleatorio entre 1 y 6
    int randomNumber = random(1, 7);
    Serial.println(randomNumber);
 
    // Ponemos los pines en estado correcto para mostrar el número randomNumber
    for (int e = 0; e < 10; e++)
    {
      digitalWrite(e + 3, numero[randomNumber][e]);
    }
 
    delay(500);
    
  }
}

Comentarios