"Transmisión de datos a través de fibra óptica”

Descarga proyecto :

da CLIK AQUI :)

proyectos en Arduino » Transmisión de datos a través de fibra óptica

 

FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS

ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

ASIGNATURA

“Líneas de transmisión y sistemas radioeléctricos”

ACTIVIDAD

“Transmisión de datos a través de fibra óptica”

DOCENTE

Juan José Sabino Ñeco Arrasco

AUTORES

                  Ø  Cumbay Adrianzén Jhan Kleider

                  Ø  Díaz Vega Fidel

                  Ø  Galvez Perez Fernando José

                  Ø  Gamonal Sánchez Darwin Eli

                  Ø  Leysequia De La Cruz Elvis Jhoel

                  Ø  Llonto Rivas Jorge Luis

                  Ø  Llontop Amaya Nolbert Erland

                  Ø  Sernaque Montenegro Edwar Javier

 

Lambayeque/2023


INDICE:

INTRODUCCIÓN.. 3

1.  Objetivos. 4

2.  Descripción del proyecto: 4

FUNDAMENTOS TEÓRICOS. 5

La Fibra Óptica. 5

Elementos de un Enlace Óptico. 5

Emisor: 5

Receptor o detector: 6

Factores que Limitan La Transmisión. 6

Dispersión: 6

Atenuación: 7

MÉTODO Y MATERIALES. 8

Materiales: 8

CÓDIGOS. 11

1.  Transmisor de rayo láser. 11

2.  Receptor de rayo láser. 13

Diagrama en tinderkat. 13

Link del proyecto: 15

CONCLUSIONES. 16

REFERENCIAS. 17


INTRODUCCIÓN

Las redes de fibra óptica son, en la actualidad, el medio de transmisión usado por excelencia para comunicar enlaces de larga distancia que manejen anchos de banda significativos. La fibra óptica posee cualidades muy codiciadas en el ámbito de las telecomunicaciones, por mencionar algunas de ellas tenemos la capacidad de transmisión de alta de velocidad, su flexibilidad, su larga vida útil y su inmunidad a las interferencias electromagnéticas.

En las comunicaciones podemos emplear sistemas de laser con fibra óptica. Los láseres son un hito muy importante en el campo técnico. Debido a su gran capacidad para alta frecuencia modulada, se clasificó al láser como un importante medio para conducir información. Los diodos de láser o los diodos emisores de luz tienen la energía para crear grandes cantidades de luz que son muy útiles para las fibras ópticas. Los láseres ayudan en la tecnología de la fibra óptica ya sea en las comunicaciones de datos, sensores u otras aplicaciones.

En la tecnología de la fibra óptica los transmisores incluyen láseres y moduladores. Los láseres ayudan a incluir una señal en la fibra y crean la luz, así el modulador cambia la energía de la luz láser para combinar los datos que son transmitidos.

Se estará hablando sobre los elementos de enlace óptico, factores que limitan la transmisión, además de como se a desarrollado el proyecto, donde se demuestra la capacidad de las placas de Arduino para establecer una comunicación de datos efectiva y la utilidad de la tecnología de fibra óptica para transmitir información de manera confiable y segura.


 

1.      Objetivos

·         Diseñar un enlace de trayecto por Fibra óptica, que permita el envío de datos entre diferentes puntos.

·         Identificar los elementos de un enlace óptico y los factores que limitan la transmisión.

        2.      Descripción del proyecto:

Mediante dos Arduino ubicados en puntos diferentes, se establecerá la transmisión de datos a través de fibra óptica, en el cual el rayo láser emitirá información y el LDR lo recibirá, donde se podrá ver en la pantalla LCD el texto escrito en el serial del Arduino, al colocar un punto “.” se nos limpiará la pantalla LCD y con una coma “,” lo escrito pasará a la siguiente línea del LCD.

FUNDAMENTOS TEÓRICOS

La Fibra Óptica

La fibra óptica es el medio preferido para la transmisión guiada de luz. Se construye con materiales dieléctricos, preferentemente sílice. Una fibra típica tiene 125 m de grosor, aproximadamente el doble que el cabello humano. La luz se guía por un núcleo central cuyo diámetro oscila entre 4 y 1000 m dependiendo del tipo de fibra (típicamente entre 4 y 62,5 m). El resto de la fibra óptica es una cubierta del mismo material, que recubre el núcleo, y que está modificado de forma que tenga un índice de refracción ligeramente inferior al del núcleo. Es precisamente este cambio de índice lo que hace que la luz se guíe por el interior de la fibra

El cable de fibra óptica trajo un salto cuántico en la capacidad de transmisión. Mientras que los sistemas de cable coaxial y de relevadores radioeléctricos tenían capacidades de transmisión del orden de Mbps, el cable de fibra óptica, introducido en la década de 1980, presentó capacidades de transmisión en una sola fibra óptica del orden de Gbps y a finales del siglo XX, incluso en el orden de Tbps. La transmisión de fibra óptica y la introducción de la transmisión de datos entre computadoras comenzó una evolución en la que la transmisión de una línea telefónica para los suscriptores se incrementó desde, tradicionalmente, 4 kHz (analógico, equivalente a 64 kbps digitales), para un solo canal telefónico, hasta el orden de Mbps para líneas residenciales y de Gbps para líneas de negocios

Elementos de un Enlace Óptico

Emisor: Las fuentes luminosas que se usan en los sistemas de fibra óptica deben tener longitudes de onda que se propaguen con eficiencia en la fibra óptica. Además se debe considerar el intervalo de longitudes de onda, porque mientras más amplio sea el intervalo, será más probable que se presente la dispersión cromática. También, las fuentes luminosas deben producir la potencia suficiente para permitir que la luz se propague por la fibra sin causar distorsiones no lineales en ella ni en el receptor. Por último, la fuente luminosa se debe fabricar de tal manera que su salida se pueda acoplar con la fibra en forma eficiente. En esencia sólo hay dos dispositivos que se usan con frecuencia para generar luz en sistemas de comunicaciones con fibra óptica: diodos emisores de luz (LED) y diodos de láser de inyección (ILD, de injection laser diode). Ambos dispositivos se fabrican con materiales semiconductores, y tienen sus ventajas y desventajas. Los LED normales tienen anchos espectrales de 30 a 50 nm, mientras que los láseres de inyección sólo tienen anchos espectrales de 1 a 3 nm (1 nm corresponde a una frecuencia aproximada de 178 GHz). Por consiguiente, una fuente luminosa de 1320 nm con ancho de raya espectral de 0.0056 nm tiene una amplitud de banda de frecuencias aproximada de 1 GHz. El ancho de raya es el equivalente, en longitudes de onda, del ancho de 

banda. La preferencia hacia un dispositivo emisor de luz respecto a otro se determina con los requisitos económicos y de funcionamiento del sistema. El mayor costo de los diodos de láser se compensa con una mayor eficiencia, mientras que los diodos emisores de luz, normalmente, tienen menor costo y menor eficiencia.

Receptor o detector: El circuito de recepción es el elemento más complejo del sistema de Comunicaciones Ópticas. Consta de un detector – generalmente optoelectrónico, ya sea un fotodiodo p-I-n (PIN) o un diodo de avalancha (APD)– y de una serie de circuitos recuperadores de la señal: amplificador, filtro, comparador, etc.

Factores que limitan la transmisión

Dispersión: La dispersión es el fenómeno por el cual un pulso se deforma a medida que se propaga a través de la fibra óptica, debido a que las distintas componentes de la señal viajan a distintas velocidades llegando al receptor en distintos instantes de tiempo.

La dispersión supone una reducción del ancho de banda pues al ensancharse los pulsos se limita la tasa de transmisión. La dispersión se caracteriza mediante el parámetro D (ps/nm·km), que indica el ensanchamiento del pulso. Este ensanchamiento aumenta con la longitud recorrida y con el ancho espectral de la fuente óptica.

Dispersión modal: La dispersión modal se debe a que los distintos modos de una fibra óptica tienen distintas velocidades de grupo, como se deduce al observar la constante de propagación, β, tras resolver las ecuaciones de Maxwell que es distinta para cada modo. Esto se puede ver pensando, según la teoría de la óptica de rayos, en la diferencia de caminos que recorre la luz por la fibra según el modo al que se acople. Por tanto, este efecto puede solucionarse empleando fibras monomodo, de índice gradual (que reducen la diferencia de la velocidad de grupo de cada modo), entre otras soluciones.

Dispersión por modo polarización: Cuando una fibra es perfectamente circular la constante de propagación entre las polarizaciones es la misma y por tanto también lo es la velocidad de propagación de cada polarización. Pero en el caso de una fibra monomodo cuando no es perfectamente circular, la velocidad de propagación de cada polarización va a ser distinta produciéndose la dispersión por polarización del modo PMD.

Dispersión cromática: El fenómeno de la dispersión cromática surge debido a dos razones: • Dispersión material: es el principal causante de la dispersión, y consiste en que el índice de refracción del silicio, material usado para fabricar las fibras ópticas, depende de la frecuencia. Por ello, las componentes de distinta frecuencia, viajan a velocidades diferentes por el silicio.

Atenuación: Existen asimismo dos fenómenos fundamentales que atenúan la señal en fibras: la reflexión difusa o scattering, y la absorción. La primera tiene una dependencia potencial inversa con la longitud de onda, mientras que la segunda presenta máximos en la zona ultravioleta e infrarroja media del espectro. Entre una y otra configuran unas zonas o ventanas en las que se dan las mejores condiciones para transmisión por fibra óptica (de sílice; las zonas varían si se cambiase el material). Las dos ventanas al uso en la actualidad son la segunda ventana, a 1310 nm, y la tercera ventana a 1550 nm. La segunda ventana, además, coincide con la zona de mínima dispersión, mientras que la tercera ventana es la que produce mínima atenuación.

MÉTODO Y MATERIALES

Materiales:

Arduino uno: es una placa de microcontrolador de código abierto basado en el microchip ATmega328P y desarrollado por Arduino.cc. La placa está equipada con conjuntos de pines de E/S digitales y analógicas que pueden conectarse a varias placas de expansión y otros circuitos.


Fibra óptica: La fibra óptica es una guía de onda en forma de hilo de material altamente transparente diseñado para transmitir información a grandes distancias utilizando señales ópticas.

LCD 16*2: El LCD 16×2 se conecta a la placa Arduino mediante una serie de pines. Estos pines se utilizan para enviar señales de control y datos al LCD. Una vez conectado, el LCD Arduino puede mostrar cualquier tipo de información que se envíe a través de los pines.

·         Protoboard: Una placa de pruebas o placa de inserción (en inglés protoboard o breadboard) es un tablero con orificios que se encuentran conectados eléctricamente entre sí de manera interna, habitualmente siguiendo patrones de líneas, en el cual se pueden insertar componentes electrónicos

·   Jumpers: Es muy útil para crear el cableado o puentes en tus prototipos de electrónica. Los puedes utilizar con una protoboard o headers para unir a la placa de desarrollo. Si necesitas más cables, puedes encontrar un pack de 40 cables jumper hembra/hembra.

LDR: El fotoresistor ó LDR (Light Dependent Resistor), es un componente electrónico pasivo, que disminuye su resistencia con el aumento de intensidad de luz incidente 

Laser: una fuente de estado sólido de bajo mantenimiento genera un haz láser que luego se propaga a través de un cable de fibra óptica hasta el cabezal láser.

Resistencias: Una resistencia de alambre bobinado es una resistencia fabricada con un alambre conductor de una resistividad alta. Este alambre es de una aleación especial y está arrollado sobre un soporte de un tubo de material refractario como la cerámica, porcelana, etc.

LEDS GRANDE: componente semiconductor conocido como “Diodos”, son de propósito general y capaces de emitir luz al ser atravesados por una corriente pequeña. Las siglas “LED” provienen del inglés “Light Emitting Diode”, que traducido al español es “Diodo Emisor de Luz”.

CÓDIGOS

1.      Receptor de rayo láser

Diagrama en tinderkat

Link del proyecto:

https://drive.google.com/file/d/1Q0OTQezlat5dpF2oHZHl3mEY-hM5uqF0/view?usp=sharing

CONCLUSIONES


A medida que el tiempo va pasando la tecnología va mejorando a una velocidad sorprendente, como se puede observar en el proyecto realizado el gran avance tecnológico nos ayuda muchísimos en muchos aspectos para una mejor calidad de vida.

 La fibra óptica proporciona una conexión a Internet rápida, estable que permite transmitir muchos datos a distancias increíbles. como en este proyecto, A medida que las demandas de datos se vuelven enormes, el cableado de fibra óptica es el camino seguro para la flexibilidad y la estabilidad de la red. En este aparentemente un simple código interactuado en un pequeño circuito nos permite comunicarnos de un punto a otro a través de la famosísima fibra óptica.

REFERENCIAS

·         (2023). Recuperado el 20 de Febrero del 2023, de https://www.youtube.com/watch?v=LbxSoW5c_XQ

·         (2023). Recuperado el 20 de Febrero del 2023, de https://repository.udistrital.edu.co/bitstream/handle/11349/13734/MolinaRodriguezJaimeAndres2018.pdf?sequence=1&isAllowed=y

primero realizamos los codigos en arduino

luego de a ver realizado los códigos tenemos que verificar si compila nuestros programas para eso verificamos  aquí:

montamos los componentes con los Arduinos y también protoboars

subimos los programas a cada Arduino donde sabemos que uno será el emisor(trasmisor de rayo laser) y el otro el receptor:

para realizarlo en físico luego de haber realizado y conectado todo tus componentes colocar en tu pc el Arduino y poner subir para que se pueda ver el funcionamiento:

luego de haber subido el trabajo te saldrá así:

NO olviden de usar el cable de fibra optica para la trasmisión de datos 

código para la trasmisión del rayo laser:

/*  

 *   LED sincronismo : 4

 *

 *   Salida de Datos : 3

 *                5V : 5V

 *                GND: GND

 *                

 */


int reloj=100;    // Velocidad de la TX (si bajamos la velocidad seria mas rapido la trasmision)

#define LASER 3

#define led_azul 4  //led de ver la sincronisacion 

#define bit_a 9

#define bit_b 10

#define bit_c 11

#define bit_d 12

#define bit_e 13

char caracter_ = ' '; //se utiliza caracteres individuales

 

void setup() {

  // Usaremos los pin como salida. 

 

 pinMode(LASER, OUTPUT); // salida de datos o TX

 pinMode(led_azul, OUTPUT); // Bit de inicio (LED Sincronismo)

 pinMode(bit_a, OUTPUT);

 pinMode(bit_b, OUTPUT);  

 pinMode(bit_c, OUTPUT);

 pinMode(bit_d, OUTPUT);

 pinMode(bit_e, OUTPUT);

 Serial.begin(9600);     // inicializa el puerto serial

}


void loop(){

digitalWrite(LASER,HIGH);   // bit en Inicio, durante medio tiempo de reloj para dar inicio a la trama

digitalWrite(led_azul,HIGH);

delay(reloj/2);                // espera de medio tiempo de reloj  

digitalWrite(led_azul,LOW);

//para observar si esta disponible 

if (Serial.available() > 0){   // Solo si llegaron datos los lee y TX

    caracter_ = Serial.read();    // Lee el mensaje que llega por el puerto serial

    Serial.print(caracter_);

    caracter_a_binario();

}

 tx(0,0,0,0,0 ); // Datos de reposo no hay caracteres

}


//incluimos los caracteres enteros en los datos para convertirlo a binario

void tx(int e,int d,int c,int b,int a ){

if (a == 0) {digitalWrite(LASER,0); digitalWrite(bit_a,1);}  // Lee cada caracter, convertido a binario y lo envia

else {digitalWrite(LASER,1);digitalWrite(bit_a,0); }         // por el pin de TX de Binario a niveles de Voltaje +5V y 0V

delay(reloj);   // Espera un ciclo de Reloj para enviar el siguiente bit o cambio de Voltaje

if (b == 0) {digitalWrite(LASER,0); digitalWrite(bit_b,1);}  // Lee cada caracter, convertido a binario y lo envia

else {digitalWrite(LASER,1);digitalWrite(bit_b,0); }         // por el pin de TX de Binario a niveles de Voltaje +5V y 0V 

delay(reloj);   // Espera un ciclo de Reloj para enviar el siguiente bit o cambio de Voltaje

if (c == 0) {digitalWrite(LASER,0); digitalWrite(bit_c,1);}  // Lee cada caracter, convertido a binario y lo envia

else {digitalWrite(LASER,1);digitalWrite(bit_c,0); }         // por el pin de TX de Binario a niveles de Voltaje +5V y 0V

delay(reloj); // Espera un ciclo de Reloj para enviar el siguiente bit o cambio de Voltaje 

if (d == 0) {digitalWrite(LASER,0); digitalWrite(bit_d,1);}    // Lee cada caracter, convertido a binario y lo envia

else {digitalWrite(LASER,1);digitalWrite(bit_d,0); }         // por el pin de TX de Binario a niveles de Voltaje +5V y 0V

delay(reloj); // Espera un ciclo de Reloj para enviar el siguiente bit o cambio de Voltaje 

if (e == 0) {digitalWrite(LASER,0); digitalWrite(bit_e,1);}    // Lee cada caracter, convertido a binario y lo envia

else {digitalWrite(LASER,1);digitalWrite(bit_e,0); }         // por el pin de TX de Binario a niveles de Voltaje +5V y 0V

delay(reloj); // Espera un ciclo de Reloj para enviar el siguiente bit o cambio de Voltaje 

digitalWrite(LASER,0);  // Bit de Parada, tiempo largo en Bajo (cero Voltios)

delay(reloj * 5);    // Tiempo del bit de Parada

}


void caracter_a_binario(){

  //colocaremos 32 catecteres donde nos da un total de todo el alfabeto

  //en minusculas los cuales son 27

 //vermos en los leds como llegan las letras 

 if(caracter_=='a') tx(0,0,0,0,1);//envia letra a y alumbra el ultimo led

 if(caracter_=='b') tx(0,0,0,1,0);//envia letra b y alumbra el penultimo led

 if(caracter_=='c') tx(0,0,0,1,1);//envia letra c y alumbra los dos ultimos leds

 if(caracter_=='d') tx(0,0,1,0,0);//envia letra d

 if(caracter_=='e') tx(0,0,1,0,1);//envia letra e

 if(caracter_=='f') tx(0,0,1,1,0);//envia letra f

 if(caracter_=='g') tx(0,0,1,1,1);   

 if(caracter_=='h') tx(0,1,0,0,0);

 if(caracter_=='i') tx(0,1,0,0,1);

 if(caracter_=='j') tx(0,1,0,1,0);

 if(caracter_=='k') tx(0,1,0,1,1);

 if(caracter_=='l') tx(0,1,1,0,0);

 if(caracter_=='m') tx(0,1,1,0,1);     

 if(caracter_=='n') tx(0,1,1,1,0);

 if(caracter_=='o') tx(0,1,1,1,1);

 if(caracter_=='p') tx(1,0,0,0,0);

 if(caracter_=='q') tx(1,0,0,0,1);

 if(caracter_=='r') tx(1,0,0,1,0);

 if(caracter_=='s') tx(1,0,0,1,1);

 if(caracter_=='t') tx(1,0,1,0,0);

 if(caracter_=='u') tx(1,0,1,0,1);

 if(caracter_=='v') tx(1,0,1,1,0);

 if(caracter_=='w') tx(1,0,1,1,1); 

 if(caracter_=='x') tx(1,1,0,0,0);         

 if(caracter_=='y') tx(1,1,0,0,1);

 if(caracter_=='z') tx(1,1,0,1,0);

 if(caracter_==' ') tx(1,1,0,1,1);

 if(caracter_=='.') tx(1,1,1,0,0);//limpia la pantalla lcd

 if(caracter_==',') tx(1,1,1,0,1);//salta ala otra fila del lcd

 if(caracter_=='0') tx(1,1,1,1,0);//envia el numero 0

 if(caracter_=='1') tx(1,1,1,1,1);

}

código para el receptor del rayo laser:

/* 

 *   LDR Divisor de tension : A0  entrada de datos

 *   LED sincronismo : 4                

 *   A5 - SCL del modulo I2C 16x2 LCD

 *   A4 - SDA del modulo I2C 16x2 LCD

 *   5V - Vcc del modulo I2C 16x2 LCD

 *   GND- GND del modulo I2C 16x2 LCD

 */


int reloj=100;           // Velocidad de la TX

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2); // para leer el I2C y el LCD

                                   

//definimos los los pines del arduino                                  


#define LASER 3

#define led_verde 4 //led de ver la sincronisacion 

#define bit_a 9

#define bit_b 10

#define bit_c 11

#define bit_d 12

#define bit_e 13

char caracter_ = ' '; 

//iniciamos los datos en 0

int a = 0;

int b = 0;

int c = 0;

int d = 0;

int e = 0;

int analogo0 = 0;//por aqui reciviremos los datos con activacion de foto

//recistencia que es el laser 


void setup() {

 

 pinMode(LASER, OUTPUT); // salida de datos o TX

 pinMode(led_verde, OUTPUT); // Bit de inicio (LED Sincronismo)

 pinMode(bit_a, OUTPUT);

 pinMode(bit_b, OUTPUT);  

 pinMode(bit_c, OUTPUT);

 pinMode(bit_d, OUTPUT);

 pinMode(bit_e, OUTPUT);

 Serial.begin(9600);     // inicializa el puerto serial

 lcd.init();//iniciamos el lcd

 lcd.backlight(); 

}


void loop() {

  analogo0=analogRead(A0);

  Serial.println(analogo0);

if (analogo0 <= 100) {  // si la RX DIN detecta el bit de Inicio en Alto (uno)

  digitalWrite(led_verde,1);       // enciende Led de sincronismo por medio ciclo de reloj

  delay(reloj/2);//medio tiempo

  digitalWrite(LASER,HIGH);   // *Retransmite bit en Inicio, durante medio tiempo de reloj para dar inicio a la trama

  digitalWrite(led_verde,0);       // apaga Led de sincronismo

  delay(reloj/2);

  leeanalogo0();

  digitalWrite(bit_a,analogo0);  // Escribe el dato Leido en el primer ciclo de reloj

  a=analogo0;                    // Lee el bit en ese ciclo de reloj

  digitalWrite(LASER,a);                 //* Retransmite el Dato

  delay(reloj); // espera un ciclo de reloj

  leeanalogo0();

  digitalWrite(bit_b,analogo0);  // Escribe el dato Leido en el segundo ciclo de reloj

  b=analogo0;                     // Lee el bit en ese ciclo de reloj

  digitalWrite(LASER,b);                 //* Retransmite el Dato

   delay(reloj);                          // espera un ciclo de reloj

  leeanalogo0();

  digitalWrite(bit_c,analogo0);   // Escribe el dato Leido en el tercer ciclo de reloj

  c=analogo0;                     // Lee el bit en ese ciclo de reloj

   digitalWrite(LASER,c);                 //* Retransmite el Dato

   delay(reloj);                          // espera un ciclo de reloj

   leeanalogo0();

   digitalWrite(bit_d,analogo0);  // Escribe el dato Leido en el cuarto ciclo de reloj

  d=analogo0;                     // Lee el bit en ese ciclo de reloj

   digitalWrite(LASER,d);                 //* Retransmite el Dato

   delay(reloj);                          // espera un ciclo de reloj

  leeanalogo0();

  digitalWrite(bit_e  ,analogo0); // Escribe el dato Leido en el quinto ciclo de reloj

  e=analogo0;                     // Lee el bit en ese ciclo de reloj

  digitalWrite(LASER,e);                 //* Retransmite el Dato

  delay(reloj);                         // Final de la trama de datos

  digitalWrite(LASER,0);                 //* Retransmite el bit de parada

  delay(reloj); 

  if ((e == 0) &&(d == 0) && (c == 0) && (b == 0) && (a == 0) ){} //si detecta datos de reposo no hace nada

  else binario_a_caracter();

 }

void leeanalogo0(){

    analogo0=analogRead(A0);

     if (analogo0 <= 100) {  

      analogo0=1;//cuando el ldr recibe o detecta datos

     }

      else{

        analogo0=0;//el ldr no detectara ningun dato

      }     

}


void binario_a_caracter(){

  //veremos en los leds como llegan las letras 

    if ((e == 0) && (d == 0) && (c == 0) && (b == 0) && (a == 1) )  lcd.print("a");//llega letra a y alumbra el ultimo led

    if ((e == 0) && (d == 0) && (c == 0) && (b == 1) && (a == 0) )  lcd.print("b");//llega letra b y alumbra el penultimo led

    if ((e == 0) && (d == 0) && (c == 0) && (b == 1) && (a == 1) )  lcd.print("c");//llega letra c y alumbra los dos ultimos leds

    if ((e == 0) && (d == 0) && (c == 1) && (b == 0) && (a == 0) )  lcd.print("d");

    if ((e == 0) && (d == 0) && (c == 1) && (b == 0) && (a == 1) )  lcd.print("e");

    if ((e == 0) && (d == 0) && (c == 1) && (b == 1) && (a == 0) )  lcd.print("f");//llega letra f

    if ((e == 0) && (d == 0) && (c == 1) && (b == 1) && (a == 1) )  lcd.print("g");//llega letra g

    if ((e == 0) && (d == 1) && (c == 0) && (b == 0) && (a == 0) )  lcd.print("h");

    if ((e == 0) && (d == 1) && (c == 0) && (b == 0) && (a == 1) )  lcd.print("i");//llega letra i

    if ((e == 0) && (d == 1) && (c == 0) && (b == 1) && (a == 0) )  lcd.print("j");

    if ((e == 0) && (d == 1) && (c == 0) && (b == 1) && (a == 1) )  lcd.print("k");

    if ((e == 0) && (d == 1) && (c == 1) && (b == 0) && (a == 0) )  lcd.print("l");

    if ((e == 0) && (d == 1) && (c == 1) && (b == 0) && (a == 1) )  lcd.print("m");

    if ((e == 0) && (d == 1) && (c == 1) && (b == 1) && (a == 0) )  lcd.print("n");

    if ((e == 0) && (d == 1) && (c == 1) && (b == 1) && (a == 1) )  lcd.print("o");

    if ((e == 1) && (d == 0) && (c == 0) && (b == 0) && (a == 0) )  lcd.print("p");

    if ((e == 1) && (d == 0) && (c == 0) && (b == 0) && (a == 1) )  lcd.print("q");

    if ((e == 1) && (d == 0) && (c == 0) && (b == 1) && (a == 0) )  lcd.print("r");

    if ((e == 1) && (d == 0) && (c == 0) && (b == 1) && (a == 1) )  lcd.print("s");

    if ((e == 1) && (d == 0) && (c == 1) && (b == 0) && (a == 0) )  lcd.print("t");

    if ((e == 1) && (d == 0) && (c == 1) && (b == 0) && (a == 1) )  lcd.print("u");

    if ((e == 1) && (d == 0) && (c == 1) && (b == 1) && (a == 0) )  lcd.print("v");

    if ((e == 1) && (d == 0) && (c == 1) && (b == 1) && (a == 1) )  lcd.print("w");

    if ((e == 1) && (d == 1) && (c == 0) && (b == 0) && (a == 0) )  lcd.print("x");

    if ((e == 1) && (d == 1) && (c == 0) && (b == 0) && (a == 1) )  lcd.print("y");

    if ((e == 1) && (d == 1) && (c == 0) && (b == 1) && (a == 0) )  lcd.print("z");

    if ((e == 1) && (d == 1) && (c == 0) && (b == 1) && (a == 1) )  lcd.print(" ");

    if ((e == 1) && (d == 1) && (c == 1) && (b == 0) && (a == 0) )  lcd.clear();//con el punto enviado se limpio el lcd

    if ((e == 1) && (d == 1) && (c == 1) && (b == 0) && (a == 1) )  lcd.setCursor(0,1);//con la coma enviado se salto ala otra fila del lcd

    if ((e == 1) && (d == 1) && (c == 1) && (b == 1) && (a == 0) )  lcd.print("0");//llega el 0

    if ((e == 1) && (d == 1) && (c == 1) && (b == 1) && (a == 1) )  lcd.print("1");//llega el 1

video de funcionamiento:

WhatsApp Video 2023-02-15 at 8.24.51 PM.mp4