Type something to search...
Encender y apagar led usando processing

Encender y apagar led usando processing

Encender y Apagar Luz LED Usando Processing

Índice

  1. ¿Qué es Processing?
  2. Temas importantes del proyecto
  3. Especificación detallada de las conexiones
  4. Especificaciones del proyecto
  5. Preguntas relacionadas con el tema

1. ¿Qué es Processing?

Processing es un lenguaje de programación y entorno de desarrollo basado en Java, diseñado para facilitar la creación de proyectos visuales y educativos. Es ampliamente utilizado para introducir a los estudiantes en la programación, la interacción gráfica y el diseño interactivo. Su simplicidad y potencia lo hacen ideal para proyectos que combinen software y hardware, como en este caso, el control de un LED.


2. Temas importantes del proyecto

  • Serial Communication: Comunicación entre Processing y un microcontrolador (como Arduino) a través de un puerto serial.
  • Control de hardware: Encender y apagar un LED mediante señales enviadas desde Processing.
  • Interacción gráfica: Crear una interfaz visual donde el usuario pueda interactuar con un elemento gráfico, como un rectángulo.
  • Entradas y salidas digitales: Uso de pines digitales en el microcontrolador para controlar el LED.

3. Especificación detallada de las conexiones

  1. Componentes necesarios:

    • Microcontrolador (Arduino).
    • LED.
    • Resistencia de 220 ohms.
    • Cables de conexión.
    • Computadora con Processing y Arduino IDE instalados.
  2. Conexión del LED:

    • Conecta el cátodo (pierna corta) del LED al pin GND del Arduino.
    • Conecta el ánodo (pierna larga) del LED a un extremo de la resistencia.
    • Conecta el otro extremo de la resistencia al pin digital 13 del Arduino.
  3. Conexión al computador:

    • Conecta el Arduino a la computadora mediante un cable USB.

4. Especificaciones del proyecto

  1. Objetivo principal: Encender y apagar un LED mediante la interacción del mouse con un rectángulo en una ventana de Processing.
  2. Funcionamiento:
    • Al colocar el cursor sobre el rectángulo en la ventana de Processing, se envía un carácter 'H' al Arduino, encendiendo el LED.
    • Cuando el cursor está fuera del rectángulo, se envía un carácter 'L', apagando el LED.
  3. Código Arduino:
    • El microcontrolador interpreta los caracteres enviados ('H' y 'L') y ajusta el estado del LED.
  4. Código Processing:
    • La aplicación gráfica detecta la posición del mouse y envía los caracteres correspondientes al Arduino mediante comunicación serial.

5. Preguntas relacionadas con el tema

  1. ¿Qué es Processing y para qué se utiliza?
  2. ¿Qué es un puerto serial y cómo se usa en este proyecto?
  3. ¿Qué sucede cuando enviamos el carácter 'H' desde Processing al Arduino?
  4. ¿Qué tipo de componente electrónico es un LED?
  5. ¿Qué función cumple la resistencia en la conexión del LED?
  6. ¿Cómo detecta Processing si el mouse está sobre el rectángulo?
  7. ¿Qué ocurre si eliminamos la línea delay(100) en el código de Arduino?
  8. ¿Qué debemos configurar en Processing para establecer la comunicación con el puerto correcto?
  9. ¿Qué importancia tiene el método pinMode en el código de Arduino?
  10. ¿Por qué es útil combinar Processing y Arduino en proyectos educativos?

Descargar Archivo

ejecutable

Codigo

Processing


```java
import processing.serial.*;

Serial port;                       // Objeto de la clase Serial
String[] ports;                    // Lista de puertos disponibles
int selectedPortIndex = -1;        // Índice del puerto seleccionado

void setup() {
  size(400, 200);
  noStroke();
  frameRate(10);

  // Obtener la lista de puertos serie disponibles
  ports = Serial.list();

  if (ports.length == 0) {
    println("No se encontraron puertos COM disponibles.");
    exit();
  }

  // Mostrar los puertos disponibles en la consola
  println("Puertos disponibles:");
  for (int i = 0; i < ports.length; i++) {
    println(i + ": " + ports[i]);
  }
}

void draw() {
  background(255);

  // Si no se ha seleccionado un puerto, mostrar los puertos disponibles
  if (selectedPortIndex == -1) {
    fill(0);
    textSize(16);
    text("Selecciona un puerto COM haciendo clic en el número:", 10, 20);

    for (int i = 0; i < ports.length; i++) {
      text(i + ": " + ports[i], 10, 50 + i * 20);
    }
  } else {
    // Si se seleccionó un puerto, mostrar el programa principal
    if (mouseOverRect()) {
      fill(204);                    // Cambiar color si el mouse está sobre el rectángulo
      port.write('H');              // Enviar 'H'
    } else {
      fill(0);                      // Cambiar color si no
      port.write('L');              // Enviar 'L'
    }
    rect(50, 50, 100, 100);         // Dibujar el rectángulo
  }
}

void mousePressed() {
  // Si no se ha seleccionado un puerto, comprobar si se hace clic en algún puerto listado
  if (selectedPortIndex == -1) {
    for (int i = 0; i < ports.length; i++) {
      if (mouseX > 10 && mouseX < width && mouseY > 40 + i * 20 && mouseY < 60 + i * 20) {
        selectedPortIndex = i;      // Guardar el índice del puerto seleccionado
        println("Puerto seleccionado: " + ports[selectedPortIndex]);

        // Intentar abrir el puerto
        try {
          port = new Serial(this, ports[selectedPortIndex], 9600);
        } catch (Exception e) {
          println("Error al abrir el puerto: " + ports[selectedPortIndex]);
          selectedPortIndex = -1;
        }
      }
    }
  }
}

boolean mouseOverRect() {
  return ((mouseX >= 50) && (mouseX <= 150) && (mouseY >= 50) && (mouseY <= 150));
}

Arduino


// Read data from the serial and turn ON or OFF a light depending on the value

char val;                          // Data received from the serial port
int ledPin = 13;                    // Set the pin to digital I/O 4

void setup() {
  pinMode(ledPin, OUTPUT);         // Set pin as OUTPUT
  Serial.begin(9600);              // Start serial communication at 9600 bps
}

void loop() {
  if (Serial.available()) {        // If data is available to read,
    val = Serial.read();           // read it and store it in val
  }
  if (val == 'H') {                // If H was received
    digitalWrite(ledPin, HIGH);    // turn the LED on
  } else {
    digitalWrite(ledPin, LOW);     // Otherwise turn it OFF
  }
  delay(100);                      // Wait 100 milliseconds for next reading
}

Publicaciones relacionadas

Multímetro

Multímetro

Introducción En esta clase, aprenderás sobre componentes electrónicos básicos como resistencias, potenciómetros y el uso de un multímetro para medir voltajes. También exploraremos cómo estos concep

read more
Semáforo sencillo

Semáforo sencillo

// C++ code //// Pines de los LEDs del semáforo sencillo const int LED_VERDE = 2; const int LED_AMARILLO = 3; const int LED_ROJO = 4;void setup() { // Configuración de los pines OUTPUT

read more
Instalación IDE Arduino

Instalación IDE Arduino

Instalación del Entorno de Desarrollo para Arduino Introducción En este

read more
Reloj digital LCD

Reloj digital LCD

Reloj digital LCD Introducción En este tutorial, vamos a crear un reloj digital utilizando un display LCD y un microcontrolador

read more
Semáforos Coordinados

Semáforos Coordinados

Semáforos coordinados Introducción En este proyecto, vamos a crear un sistema de semáforos coordinados utilizando Arduino.

read more
Pantallas LCD

Pantallas LCD

Introducción a las Pantallas LCD Las pantallas LCD (Liquid Crystal Display) son dispositivos electrónicos utilizados para mostrar información de manera clara y eficiente. Estas pantallas son muy co

read more
Personalizar caracteres en LCD

Personalizar caracteres en LCD

ÍndiceExplicación del Código Componentes Clave del Código Librería LiquidCrystal_I2C [In

read more
Semáforo Doble

Semáforo Doble

Descripción del código Este programa controla el funcionamiento de dos semáforos simulados utilizando un Arduino. Cada semáforo cuenta con tres luces LED: verde, amarillo y rojo. El programa altern

read more
Proyectos

Proyectos

Planificación de 12 Semanas para Proyectos Los proyectos serán libres y sencillos, pero deberán abordar un problema escolar o de la comunidad, utilizando al menos dos de las tecnologías vistas en c

read more
Hosting y Alojamiento web

Hosting y Alojamiento web

Hosting, Dominios, Almacenamiento y Bases de Datos 🌐 🎯 ObjetivosEntender qué es un dominio y un hosting Conocer el papel del almacenamiento web Descubrir para qué sirven l

read more
Evaluación Parcial

Evaluación Parcial

Evaluación del Avance del ProyectoObjetivo General de la Evaluación:Verificar que los equipos hayan cumplido con al menos el 70% del desarrollo funcional del proyecto, incluyendo inte

read more
Bases para la Elaboración del Reporte Breve del Proyecto

Bases para la Elaboración del Reporte Breve del Proyecto

📝 Bases para la Elaboración del Reporte Breve del ProyectoFormato: Documento Word (máximo 4 páginas)Entrega: En formato digital (PDF), cargar en el apartado de Archivos.

read more
Mascota virtual

Mascota virtual

🐾 Proyecto: Mascota Virtual en Escritorio con Python Este proyecto te guiará paso a paso para crear una mascota virtual que se mueva por tu pantalla de Windows y muestre mensajes motivadores c

read more
Mascota virtual

Mascota virtual

🐾 Proyecto: Mascota Virtual en Escritorio con Python Este proyecto te guiará paso a paso para crear una mascota virtual que se mueva por tu pantalla de Windows y muestre mensajes motivadores c

read more