#Ardunio Float-waarden verzenden met bluetooth.print in arduino

Ik heb het voorbeeld gemaakt voor bluetooth-communicatie met arduino met hc_05 Het probleem waar ik mee te maken heb staat hieronder.

String statuss= "1.00,2.00,3.00";
bluetooth.print(statuss);
Serial.print(statuss);

Dit is de code waar alleen de laatste 2 cijfers worden opgehaald, d.w.z. 00 in android, terwijl het me complete reeks in seriële monitor toont.

String statuss= "Hello";
bluetooth.print(statuss);
Serial.print(statuss); 

Then I get the output as ello in Android n in Serial monitor it show Hello

Kan iemand voorstellen wat het probleem is

0
Probeer het met "1.23,4.56,7.89" en vertel ons wat je krijgt.
toegevoegd de auteur user31481, de bron
Gebruik je de Softwareserial-bibliotheek? Stel je een snelheid hoger dan 19200 bauds in? Als u JA antwoord op deze twee vragen, hebt u een probleem. SoftwareSerial wordt afgeluisterd en byte verloren als de snelheid hoger is dan 19200.
toegevoegd de auteur Peter, de bron

2 antwoord

Het is moeilijk om uw exacte probleem te kennen, aangezien u uw code niet hebt opgegeven. Ik geloof echter dat je geen duidelijk begin en een duidelijk eindje hebt, zodat de modules niet weten wanneer je moet beginnen en eindigen.

1
toegevoegd

Ik vermoed (op het eerste zicht) een snelheidsprobleem. Android voert Bluetooth uit op 115200 Bauds. U moet dus uw HC-05 o HC-06 op deze snelheid instellen om een ​​goed resultaat te krijgen.

Maar terwijl u "bluetooth.print (statuss);" uitvoert en ook "Serial.print (statuss);" dit betekent dat je een virtuele poort hebt gemaakt, waarschijnlijk met behulp van de Software Serial lib. Helaas is deze bibliotheek niet erg effectief. Met een snelheid hoger dan Bauds van 19200, verloor je gegevens (ik had er veel problemen mee voordat ik het begreep !!) De enige juiste manier is om direct de RX- en TX-poort van de Arduino te gebruiken (pin 0 en 1) en (bijv.) Een LCD-display te gebruiken om gegevens weer te geven en je Arduino-code te debuggen (zoals wanneer je de HC op pin 0 steekt 0 en 1 hebt u de toegang tot de seriële monitor verloren).

Een truc: met de HC op pin 0 en 1, moet je elke keer dat je de sketck naar de Ardino stuurt, RX loskoppelen, aangezien deze wordt gebruikt voor het verzenden van de code.

Ik hoop dat dit zal helpen.

0
toegevoegd