Crear una barra en graduación en centímetros y mandar mensaje a Display LCD
Publicado por Mauricio (1 intervención) el 26/02/2020 03:23:59
Que tal espero me puedan ayudar con un ejercicio por favor si serian tan amables, los pongo en contexto tengo que realizar una aplicación en javaFX FXML aplication (Netbeans) que deberá hacer una graduación en centímetros, es decir que lo represente en escala deberá ser la distancia real, la escala será de 0 a 20 cm Cuando la distancia sea más grande en ambos, app y Display, deberá indicar que esta FUERA DE RANGO.
Yo ya tengo la distancia pero no se como poner la graduación en centímetros espero me puedan ayudar por favor
Material Utilizado: *Arduino, Sensor HC-SR04, Pantalla LCD, y Libreria PanamaHitek_Arduino-3.0.0.
Este es el código:
Yo ya tengo la distancia pero no se como poner la graduación en centímetros espero me puedan ayudar por favor
Material Utilizado: *Arduino, Sensor HC-SR04, Pantalla LCD, y Libreria PanamaHitek_Arduino-3.0.0.
Este es el código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package sensordistancia;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import com.panamahitek.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Platform;
//import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import jssc.SerialPortEvent;
import jssc.SerialPortEventListener;
import jssc.SerialPortException;
public class FXMLDocumentController implements Initializable {
PanamaHitek_Arduino Arduino = new PanamaHitek_Arduino();
@FXML
private Circle circle;
@FXML
private TextField limit;
@FXML
private Label anuncio;
@FXML
private TextField datos;
SerialPortEventListener listener;
public FXMLDocumentController() {
this.listener = new SerialPortEventListener() {
@Override
public void serialEvent(SerialPortEvent spe) {
try {
if(Arduino.isMessageAvailable()){
String mensaje = Arduino.printMessage();
String temp = mensaje.substring(0, 2);
Float distancia = Float.parseFloat(temp);
Float max1 = Float.parseFloat(limit.getText());
System.out.println(distancia);
String dis = distancia + "";
Platform.runLater(() -> {
//Temperatura
if (distancia < max1) {
datos.setStyle(" -fx-font-weight: bold; -fx-text-fill: red;");
enviarDato("1");
circle.setFill(Color.RED);
anuncio.setText("");
} else {
datos.setStyle("-fx-text-fill: black;");
enviarDato("0");
circle.setFill(Color.GREEN);
anuncio.setText("Fuera de Rango");
}
datos.setText(dis + " cm");
});
String resX;
}
} catch (SerialPortException | ArduinoException ex) {
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void enviarDato(String d) {
try {
Arduino.sendData(d);
} catch (ArduinoException | SerialPortException ex) {
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
};
}
@FXML
private void handleButtonAction(ActionEvent event) {
}
@FXML
private void handleButtonAction1(ActionEvent event) {
}
@Override
public void initialize(URL url, ResourceBundle rb) {
try {
//Arduino.arduinoRXTX("COM3", 9600, listener);
System.out.println(Arduino.getSerialPorts().get(1));
Arduino.arduinoRXTX(Arduino.getSerialPorts().get(1), 9600, listener);
} catch (ArduinoException ex) {
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
- Practica.rar(32,4 KB)
Valora esta pregunta
0