Title: programa3
Course: Tecnología y Digitalización 3º ESO 25-26

Display de 7 segmentos

Utilizamos:

- placa Arduino Uno
- display de siete segmentos (Cátodo común)
- 7 resistencias de 330 Ω

El display de 7 segmentos es un componente que se  utiliza para la representación de números o letras. Es muy común encontrarlos en dispositivos electrónicos debido a su simplicidad. Está  compuesto internamente por una serie de LEDS estratégicamente ubicados de tal forma que forma un número 8.
[Image]
Haz el siguiente montaje:

[Image]

Copia el siguiente programa y pruébalo:

int mensaje=0;

void setup(){

  Serial.begin(9600);

  pinMode(2, OUTPUT);

  pinMode(3, OUTPUT);

  pinMode(4, OUTPUT);

  pinMode(5, OUTPUT);

  pinMode(6, OUTPUT);

  pinMode(7, OUTPUT);

  pinMode(8, OUTPUT);

}

void display (int a, int b, int c, int d, int e, int f, int g)// Función del display

{

  digitalWrite (2,a);

  digitalWrite (3,b);

  digitalWrite (4,c);

  digitalWrite (5,d);

  digitalWrite (6,e);

  digitalWrite (7,f);

  digitalWrite (8,g);

}

 void loop(){

   if (Serial.available()>0){

    mensaje=Serial.read();

     if (mensaje=='0'){

      display (1,1,1,1,1,1,0);

    }

     if (mensaje=='1'){

      display (0,1,1,0,0,0,0);

    }

    if (mensaje=='2'){

      display (1,1,0,1,1,0,1);

    }

    if (mensaje=='3'){

      display (1,1,1,1,0,0,1);

    }

    if (mensaje=='4'){

      display (0,1,1,0,0,1,1);

    }

    if (mensaje=='5'){

      display (1,0,1,1,0,1,1);

    }

    if (mensaje=='6'){

      display (1,0,1,1,1,1,1);

    }

    if (mensaje=='7'){

      display (1,1,1,0,0,0,0);

    }

    if (mensaje=='8'){

      display (1,1,1,1,1,1,1);

    }

    if (mensaje=='9'){

      display (1,1,1,0,0,1,1);

    }

   }

  delay(2000);

}

Sube una imagen del montaje

¿Sabrías hacer un programa que deletree tu nombre?

Copia este programa y pruébalo:

const byte hola[]= {B1110110,B0111111,B0111000,B1110111}; //HOLA

void setup() {
for (byte n=2; n<9; n++){
pinMode(n, OUTPUT);
}
}

void loop(){
for (byte i=0; i<4; i++){
for (byte s=2; s<9; s++){
digitalWrite(s, bitRead(hola[i], s-2));
}
delay(1000);
}
}