domingo, 24 de abril de 2022

Tinkercad y Arduino UNO: Semáforo peatonal

Tinkercad es una aplicación web gratuita que entusiasma a cualquiera por su facilidad de uso, y proporciona a cualquier persona las habilidades básicas para la innovación: diseño 3D, electrónica y codificación.

Tinkercad es una aplicación online que lo único que requiere para su uso es registrarse.

Como siempre, no pretendo en esta entrada daros un curso de Tinkercad, pero sí os brindo un ejemplo didáctico de lo que puede uno hacer para que los más jóvenes se aferren al nuevo mundo que se avecina.

Con cinco diodos LED, dos rojos, dos verdes y uno amarillo, un pulsador, una placa (virtual) de Arduino UNO, tres resistencias y un par de bloques de código, construiremos y visualizaremos el funcionamiento de un semáforo peatonal. 


 Al presionar el pulsador, la secuencia lumínica de los LEDs cambia para dar prioridad de paso a los peatones en una zona muy concurrida de tráfico; de verde pasa amarillo durante dos segundos, y luego a rojo para detener a los vehículos. La luz roja de peatones pasa a verde después de dos segundos que se puso la luz roja para vehículos. Es así como introducimos una componente de retardo para evitar que se precipite el paso de los peatones cuando cualquier vehículo pueda despistarse y, por inercia, no se detenga exactamente cuando la luz roja de tráfico lo avise.

La secuencia de iluminación y control del semáforo está descrita en el siguiente código de bloques:

El código de texto es el siguiente:

// C++ code
// Cotidiana Place

void setup()
{
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(2, INPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(12, OUTPUT);
}

void loop()
{
  while (1 == 1) {
    digitalWrite(11, HIGH);
    digitalWrite(10, HIGH);
    if (digitalRead(2) == 1) {
      delay(2000); // Espera por 2 segundos
      digitalWrite(10, LOW);
      digitalWrite(9, HIGH);
      delay(3000); // Espera por 3 segundos
      digitalWrite(9, LOW);
      digitalWrite(8, HIGH);
      delay(2000); // Espera por 2 segundo
      digitalWrite(11, LOW);
      digitalWrite(12, HIGH);
      delay(10000); // Espera por 10 segundos
      digitalWrite(8, LOW);
      digitalWrite(12, LOW);
    }
  }
}

Para simular el circuito picamos en el siguiente enlace, y hacemos clic en Simular:


Luego hacemos clic en Iniciar simulación, y presionamos con el puntero del ratón el pulsador del circuito:

Pueden simularlo también picando sobre la entrada de Tinkercad correspondiente insertada en la cabecera de esta entrada de mi blog.

Espero que le entusiasme como me entusiasmó a mí. Gracias por la lectura de este blog.