Hola amigos. Hoy utilizaremos la graficadora que hicimos en el post Arduino+Java: Graficadora de datos de Sensores.
Aquí está disponible los archivos de ese proyecto:
Solo necesitaremos hacer unos pequeños ajustes en el código Java para poder utilizar el sensor HC-SR04, el cual ya vimos en este post.
Abrimos el código fuente de Java y hacemos las siguientes modificaciones:
Lo que hacemos es sencillo. Enviamos 3 datos a Arduino. Primero enviamos la instrucción «b» o «c» que arranca el envío de datos de Arduino a Java. Luego enviamos un número del 0 al 10. Para el 10 utilizamos «a». Estos datos le indicarán a Arduino la frecuencia con la que enviará datos a Java. Por último enviamos la distancia máxima. Es la distancia máxima de la gráfica en Java la misma distancia máxima a la cual se configurará el HC-SR04. Se envían números que resulten de dividir la distancia en 25. Por ejemplo, si la distancia máxima es 50, se enviará el 2 a Arduino. Es necesario enviar los datos en el siguiente formato: 01, 02, 03, 04… etc.
El mensaje completo, para iniciar Arduino, con una frecuencia de 1 dato por segundo y una distancia máxima de 75 centímetros sería: «b103«.
Ahora veamos el código en Arduino:
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 |
#include<Ultrasonido.h> boolean started = false; int frecuencia = 1000; int input; int dist; int unidad; int decena; int freq; double distancia; void setup() { Serial.begin(9600); } void loop() { if (Serial.available() > 0) { input = Serial.read(); delay(2); freq = Serial.read(); delay(2); decena = Serial.read() - 48; delay(2); unidad = Serial.read() - 48; dist = (10 * decena) + unidad; if (input == 'b') { started = true; } if (input == 'c') { started = false; } switch (freq) { case '1': frecuencia = 1000; break; case '2': frecuencia = 2000; break; case '3': frecuencia = 3000; break; case '4': frecuencia = 4000; break; case '5': frecuencia = 5000; break; case '6': frecuencia = 6000; break; case '7': frecuencia = 7000; break; case '8': frecuencia = 8000; break; case '9': frecuencia = 9000; break; case 'a': frecuencia = 10000; break; } } if (started == true) { Ultrasonido ultrasonido(9, 8, dist); distancia = ultrasonido.Distancia(); Serial.print(distancia); Serial.print(','); } delay(frecuencia); } |
Con esto estamos listos para probar nuestra aplicación.
Aquí les dejo los archivos para este proyecto:
Espero sus comentarios. Saludos.
Hola amigo oye mmm ya cargue las librerias necesarias y modifique lo que decia en el post la parte del if en el codigo y ya todo anda bien pero no me sale la interfaz del programa o a fuerza debo conectar el circuito para que se ejecute el programa y ver la interfaz ???
Siempre para poder que el programa corra es necesario que Arduino esté conectado a la computadora mediante USB. Si no lo conectas no va a funcionar
hola me podrias decir donde bajar las librerias necesarias?
Buenas noches, cuando corro el programa solo me muestra datos en y ??? por que??? muchas gracias por la atención.
Podrías enviarme una foto a mi correo [email protected]
ok te lo envio entonces, muchas gracias de antemano.
Listo
veo es que la funcion Recibirdatos() solo me envia el numero 46…????
Con que funcion estas enviando los datos a Java?
Pero en el monitor serial del ide de arduino me da los datos bien
No entiendo, estoy utilizando los mismos archivos que generosamente pones en tu web 🙂
Que tipo de sensor usas?
Que tal?, muy interensate, me gustaria saber, es que necesito?, soy nuevo utilizando esto de los sensores, ya compre el sensorHC-SR04, manejo el lenguaje Java, y tu pones el codigo muy bueno por cierto, ahora esa placa aurdino que pasa con ella? deberia haber venido con el sensor? o puedo saltarmela?….saludos y espero tu respuesta…de entrada gracias por el post!!
Hola amigo. Sin Arduino no podrás utilizar el sensor HC-SR04 ya que dicho sensor es generalmente utilizado como un accesorio para Arduino. Sin la interfaz electrónica apropiada no te será posible enviar los datos del sensor a Java
si tengo un microprogramador mas, es decir utilizar arduino, pero con uno uno generico, que puede ser programable con Arduino valga la redundancia, no se si me explico, saludos
Es probable. Yo a veces uso genéricos y trabajan bien
que tal, ya me hize del tablero de Arduino, podrias ayudarme con algo de codigo o decirme que tendria que agregarle, si lo que quiero es que me grafique 6 sensores diferentes? yo me imagino que grafique cada uno en color diferente, podrias super ayudarme con eso? y otra cosa donde encuentro la libreria gnu.io? saludos de verdad se te agradece mucho
Hola. Pues yo coloco aquí el resultado de mis investigaciones para que la gente trabaje con ellas y desarrolle sus propios proyectos. Yo podría brindarte asesoría pero ayudarte directamente está fuera de mis capacidades
claro, lo entiendo, fijate que cuando corro arduino, me dice que Ultrasonido, no esta definido en el scope
Eso se debe a que no has agregado la librería Ultrasonido.h a la carpeta raíz de Arduino
Hola, una consulta: por qué me sale este mensaje: warning: [options] bootstrap class path not set in conjunction with -source 1.7. 1 warning,, cuando intento correr el programa al momento de darle «graficar, se queda colgado.
Necesitas actualizar a la versión 1.8 del JDK de Java
Este código está obsoleto. Es de hace más de 3 años
Lo que pasa esque debes usar la version 1.7 del jdk
https://uploads.disquscdn.com/images/ecec0b3e116f7698e851b03806065a3ffc51a2b2a2fd3dde219b752e49518608.png
https://uploads.disquscdn.com/images/1272b487c3770e3b649ff9dd422f96311821e8e7d7db2724676a69340e1cfb1c.png
hola que tal, queria pedirte ayuda porque realmente nose el porque me sale error en estos dos
El código utilizado en este ejemplo es sumamente arcaico. Recomendamos utilizar la librería PanamaHitek_Arduino en su versión 2.8.2
que librerias se usan para java? y donde las puedo encontrar? https://uploads.disquscdn.com/images/8f7761199efa6a508147d6b74f1a1b2c25c8f0d034b7b8071f84a8c5aaf32d53.png
https://panamahitek.com/arduino-java-facil-y-rapido/
para que sea compatible el codigo con arduino mega 2560 ?
Los códigos de Arduino son compatibles en la mayoría de los modelos
hola, si me puede ensenar como esta diseñado
si me puede ensenar como esta como esta conectado las cables