por para enviar encender desde datos crear controlar conexion comunicacion app android arduino android-bluetooth

para - recibir personaje usando el teléfono Android de arduino



encender led arduino bluetooth hc-06 (1)

Trabajé este código para recibir una sola letra del arduino No puedo ver ninguna respuesta en el visor de texto del teléfono cuando quiero que Arduino envíe la letra ''A'' me muestra la palabra ''ON'' y si Enviar ''Z'' me muestra la palabra en el visor de texto desactivado

Tenga en cuenta que la conexión entre el teléfono Android Arduino ha sido exitosa y el teléfono Android envía a Arduino pero no recibió

class Ahmed extends Thread { public void run() { for (; ; ) { try { int bytesAvailable = btSocket.getInputStream().available(); byte []packetBytes= new byte[bytesAvailable]; if (bytesAvailable > 0) { tb.setText(bytesAvailable+ "ok"); btSocket.getInputStream().read(packetBytes); for(int i=0; i<bytesAvailable;i++) { if (packetBytes[i]==65) tb.setText("ON"); else if (packetBytes[i] ==90) tb.setText("off"); } } } catch (Exception e) { } } } }

código arduino

#include<SoftwareSerial.h> void setup() { Serial3.begin(9600); pinMode(13,OUTPUT); digitalWrite(13,LOW); } void loop() { char x=Serial3.read(); if(x==''A'') { digitalWrite(13,HIGH); Serial3.print(''A''); } if(x==''Z'') {digitalWrite(13,LOW); Serial3.print(''Z''); } }


estás actualizando la vista de texto de un hilo, debe arrojar alguna excepción, pero como no has impreso nada en tu bloque catch no obtienes salida ni error ni nada, siempre lo recuerdes, no puedes actualizar vistas de ningún hilo que no sea el de UI .

try { int bytesAvailable = btSocket.getInputStream().available(); byte []packetBytes= new byte[bytesAvailable]; if (bytesAvailable > 0) { tb.setText(bytesAvailable+ "ok"); btSocket.getInputStream().read(packetBytes); for(int i=0; i<bytesAvailable;i++) { if (packetBytes[i]==65) tb.setText("ON"); else if (packetBytes[i] ==90) tb.setText("off"); } } } catch (Exception e) { // ADD THIS TO SEE ANY ERROR e.printStackTrace(); }

si está ejecutando este hilo dentro de la clase de actividad, entonces puede ejecutar esto

runOnUiThread(new Runnable() { @Override public void run() { tb.setText("ON") } });

de lo contrario, tiene que implementar algún mecanismo que use el receptor de difusión o la interfaz para pasar los datos a su actividad / fragmento para actualizar la vista de texto dentro de runOnUiThread .