domingo, 30 de mayo de 2021

Arduino y Processing - Encender y apagar un LED

 Diagrama de conexión


Código en Arduino

const int LED = 5;
char dato;

void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  digitalWrite(LED, LOW);
}

void loop() {
  if (Serial.available() > 0)
  {
    dato = Serial.read();
    if (dato == 'E') {
      digitalWrite(LED, HIGH);
    } else {
      digitalWrite(LED, LOW);
    }
  }
}

Código en Processing

import processing.serial.*;

Serial port;
String TITULO="Control de LED - Arduino";
PFont font;
int qx=150;
int qy=150;
int qr=50;
boolean state = false;
String texto;

void setup()
{  
  //println(Serial.list()); 
  port = new Serial(this, Serial.list()[0], 9600);
  size(300, 300);   
  font = createFont("Arial", 20, true);
  frameRate(10);
}

void draw()
{
  background(220, 220, 220); 
  textFont(font, 20);
  fill(0);
  textAlign(CENTER);
  text(TITULO, width/2, 60);

  fill(0);  
  stroke(0, 255, 0);

  if (mouseX > qx-qr  && mouseX < qx+qr && 
    mouseY > qy-qr && mouseY < qy+qr && mousePressed) {
    state=!state;
  }
  noStroke();
  if (state) {  
    fill(0, 0, 255);
    texto="ON";
    port.write('E');
  } else {  
    fill(255, 0, 0);
    texto="OFF";
    port.write('A');
  }  
  rectMode(RADIUS);
  rect(qx, qy, qr, qr);
  fill(0);
  text(texto, 150, 150);
}

Interfaz gráfica