Programar lcd 16x2

Hola estoy realizando un semaforo de 4 vias en arduino con las siguientes condiciones.

•Cuando pasen 3 segundos el led rojo debe cambiar al led amarillo,
este debe durar encendido 1 segundo. Después de esto el led
verde debe prender y durar 5 segundos.

• Mientras este en verde los semáforos 1 y 2, los semáforos 3 y 4
deben estar en rojo. Transcurrido el tiempo el semáforo 1 y 2 se
debe poner en rojo, los semáforos 3 y 4 deben estar en verde.

• Se debe visualizar en un display el conteo del tiempo que está
encendido cada led.

El proyecto lo estoy haciendo en el simulador de tinkercad. a continuacion anexo imagen del circuito.

ya tengo programado el encendido de los leds, solo me falta progarmar el display LCD 16x2. Para que se visualice los segundos que dura encendido el led de color rojo, amarillo y verde. Pero no he podido hacerlo si alguien me puede ayudar con la progrmacion del lcd le agradeceria.

Este es el codigo

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  for(int i=2;i<14;i=i+1)
  pinMode(13, OUTPUT);
}

void loop()
{
  for(int i=2;i<14;i=i+1){
  digitalWrite(i, LOW);
}
  
  digitalWrite(8, HIGH); //Enceiendo la luz roja del semaforo 1 y 2.
  digitalWrite(6, HIGH); //Enceiendo la luz verde del semaforo 3 y 4.
  delay(3000);    
  digitalWrite(8, LOW); //Apago la luz roja del semaforo 1 y 2.
  digitalWrite(6, LOW); //Apago la luz verde del semaforo 3 y 4.
  digitalWrite(9, HIGH);//Enceiendo la luz amarilla del semaforo 1 y 2.
  digitalWrite(7, HIGH);//Enceiendo la luz amarilla del semaforo 3 y 4.
  delay(1000);
  digitalWrite(9, LOW);//Apago la luz amarilla del semaforo 1 y 2.
  digitalWrite(7, LOW);//Apago la luz amarilla del semaforo 3 y 4.
  digitalWrite(10,HIGH);//Enceiendo la luz verde del semaforo 1 y 2.
  digitalWrite(13,HIGH);//Enceiendo la luz roja del semaforo 3 y 4.
  delay(5000);
  
}

Les agradezco su atencion muchas gracias.

Tienes tantos errores que no se por donde empezar. De tu imagen es imposible deducir el circuito ya que mezclas las lineas. Debes separarlas y ponerlas en paralelo.

Desde el código veo que defines 6 pines digitales para LEDs

  • 10 = Verde 1
  • 9 = Ambar 1
  • 8 = Rojo 1
  • 6 = Verde 3
  • 7 = Ambar 3
  • 13 = Verde 3

Y luego en el LCD haces: rs=12, en=11 y data 5~2.

  1. Porque defines los pines del 2~13 como salida ?
  2. Si pretendes que la luz roja de 1 actúe igual que la verde de 3 porque no usas el mismo pin ? Es decir 6=8, 7=9 y 10=13.
  3. Luego de prender el par 10-13 y esperar 5 segundos prendes par 6-8, pero no apagas 10-13. Le estas dando paso a TODOS.

Aqui puedes estudias sobre LCD.

Corrige tus errores y vuelve a publicar tu código para seguir ayudandote.

Hola muchas gracias por tu ayuda respecto a lo anterior realice los cambios correspondientes.

Aqui te el link de la simulacion para una mejor visualizacion:

Con respecto al lcd necesito que se muestre el tiempo que dura cada led encedido es decir se enciende el led verde se inicia un conteo y cuando llegue a 3s se apaga y pasa al ambar o amrillo que dura encendidio un 1s, se apaga y pasa al rojo que dura encendidio 5s y se repite el ciclo.
solo necesiro programr el lcd para que muestre el tiemo de cambio de los leds.

Nuevo codigo

#include <LiquidCrystal.h>
LiquidCrystal lcd(6, 7, 5, 4, 3, 2); //(Rs = 6, E = 7, D4 = 5, D5 = 4, D6 = 3, D7 = 2)  

int verde = 10;  
int amarillo = 9;
int rojo = 8;



void setup()
{
  
  pinMode(verde, OUTPUT);
  pinMode(amarillo, OUTPUT);
  pinMode(rojo, OUTPUT);
}

void loop()
{
  
  digitalWrite(verde, HIGH);
  delay(3000);
  digitalWrite(verde, LOW);
  digitalWrite(amarillo , HIGH);
  delay(1000);
  digitalWrite(amarillo , LOW);
  digitalWrite(rojo,HIGH);
  delay(5000);
  
}

Muchas gracias.

Ya pero si aun no entiendes como funciona el delay(), en el sentido de que durante su ejecucion se paralizan todo en el Arduino, no podras hacer nada mas con el como hacer que funcione tu LCD.

Mira y entiende los ejemplos con millis() y luego miras los ejemplos de LCD.

Hola muchas gracias por tu atencion no se si puedes darme un ejemplo del codigo y yo lo termino la verdad he mirado muchos videos y no entiendo la verdad

Te puse enlaces, los estudiaste ya ? o solo quieres que te hagan la tarea ?

Hola si los mire pero nunca he manejado arduino no te estoy diciendo que me hagas la tarea si no que en un ejemplo me expliques como se debe hacer el codigo ya que quiero aprender si quisiera que me hicieran la tarea no hubiera hecho ni el circuito pero si no entiendo como empezar hacer el codigo pues no se no naci aprendindo por eso te digo dame un ejemplo y explicame como seria el codigo.
Muchas gracias

Por favor, mira los ejemplos que te han dado, leelos cuidadosamente y entenderas. Luego has tus consultas.

Ademas aun no arreglas ei punto 3 de mi primer mensaje.

Luego del primer ciclo el rojo permanece prendido para siempre porque no lo apagas nunca.