Resultado al que debemos llegar:
Programa para Arduino:
int input;
int count;
int encendido;
int apagado;
int pinArray[] = {22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37};
void setup(){
for (count=0;count<16;count++) {
pinMode(pinArray[count], OUTPUT); // Declaramos que utilizaremos estos pines como salidas
}
Serial.begin(9600);
encendido=0;
apagado=0;
}
void loop(){
if (Serial.available()>0){
input=Serial.read();
if (input=='1'){
digitalWrite(pinArray[encendido], HIGH);
encendido++;
if (encendido==17){
encendido=0;
}
}
if (input=='0'){
digitalWrite(pinArray[apagado], LOW);
apagado++;
if (apagado==17){
apagado=0;
}
}
}
}
Programa para Java:
//Clase ArduinoSwitch
package arduinoswitch;
public class ArduinoSwitch {
public static void main(String[] args) {
Window Ventana = new Window();
Ventana.setVisible(true);
}
}
// JFrame window
package arduinoswitch;
import com.panamahitek.PanamaHitek_Arduino;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.Timer;
public class Window extends javax.swing.JFrame {
private int cuenta=0;
private int apagar=0;
private int array[];
PanamaHitek_Arduino Arduino = new PanamaHitek_Arduino();
public Window() {
initComponents();
setLocationRelativeTo(null);
try {
Arduino.ArduinoTX("COM9", 2000, 9600);
} catch (Exception ex) {
Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void jButtonEncenderActionPerformed(java.awt.event.ActionEvent evt) {
// jButtonEncender.setEnabled(false);
jButtonApagar.setEnabled(true);
Color c;
c = new Color(255, 204, 51);
jButtonApagar.setBackground(c);
c = new Color(204, 204, 204);
jButtonEncender.setBackground(c);
try {
Arduino.sendData("1");
} catch (Exception ex) {
Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
}
cuenta=cuenta+1;
if (cuenta>16){
cuenta=0;
}
switch (cuenta) {
case 1:
uno.setBackground(Color.green);
break;
case 2:
dos.setBackground(Color.green);
break;
case 3:
tres.setBackground(Color.green);
break;
case 4:
cuatro.setBackground(Color.green);
break;
case 5:
cinco.setBackground(Color.green);
break;
case 6:
seis.setBackground(Color.green);
break;
case 7:
siete.setBackground(Color.green);
break;
case 8:
ocho.setBackground(Color.green);
break;
case 9:
nueve.setBackground(Color.green);
break;
case 10:
diez.setBackground(Color.green);
break;
case 11:
once.setBackground(Color.green);
break;
case 12:
doce.setBackground(Color.green);
break;
case 13:
trece.setBackground(Color.green);
break;
case 14:
catorce.setBackground(Color.green);
break;
case 15:
quince.setBackground(Color.green);
break;
case 16:
dieciseis.setBackground(Color.green);
break;
default:
break;
}
}
private void jButtonApagarActionPerformed(java.awt.event.ActionEvent evt) {
// jButtonEncender.setEnabled(true);
// jButtonApagar.setEnabled(false);
Color c;
c = new Color(255, 204, 51);
jButtonEncender.setBackground(c);
c = new Color(204, 204, 204);
jButtonApagar.setBackground(c);
try {
Arduino.sendData("0");
} catch (Exception ex) {
Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
}
apagar=apagar+1;
if (apagar>16){
apagar=0;
}
switch (apagar) {
case 1:
uno.setBackground(Color.white);
break;
case 2:
dos.setBackground(Color.white);
break;
case 3:
tres.setBackground(Color.white);
break;
case 4:
cuatro.setBackground(Color.white);
break;
case 5:
cinco.setBackground(Color.white);
break;
case 6:
seis.setBackground(Color.white);
break;
case 7:
siete.setBackground(Color.white);
break;
case 8:
ocho.setBackground(Color.white);
break;
case 9:
nueve.setBackground(Color.white);
break;
case 10:
diez.setBackground(Color.white);
break;
case 11:
once.setBackground(Color.white);
break;
case 12:
doce.setBackground(Color.white);
break;
case 13:
trece.setBackground(Color.white);
break;
case 14:
catorce.setBackground(Color.white);
break;
case 15:
quince.setBackground(Color.white);
break;
case 16:
dieciseis.setBackground(Color.white);
break;
default:
break;
}
}
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Window().setVisible(true);
}
});
}
No hay comentarios:
Publicar un comentario