Estoy trabajando para un proyecto en el que estamos utilizando una camara openmv que recoge las coordenadas de la cara, estas ya las he comunicado al arduino y me aparecen por monitor serie, sin embargo no consigo pasar de la cadena de las coordenadas a dos variables float. el comando to float lo hemos probado pero nos da problema.
Adjunto el codigo:
#include <Wire.h>
#include <SoftwareSerial.h>
const int cam=9;
void setup() {
// put your setup code here, to run once:
Serial.begin(19200);
Serial.println("Bienvenido");
pinMode(cam, OUTPUT);
digitalWrite(cam, LOW);
delay(500);
}
void PERSONAS (){
if(Serial.available()){
String data = Serial.readStringUntil('\n');
Serial.println(data);
if (data== "poss"){
Serial.println("list.poss[0]");
delay (10);
}
}
delay(10);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(cam, HIGH);
PERSONAS();
}
Moderador:
Por favor, lee las Normas del foro y edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>
Por más que leo cada post tampoco entiendo cuál es la dificultad.
Veamos, a ver si lo he entendido bien.
Tienes dos cosas: el algoritmo de la cámara y el de arduino. El algoritmo de la cámara envía a través del comando uart.write("%s\n" %poss) las coordenadas. Ese valor es capturado desde Arduino a través del comando String data = Serial.readStringUntil('\n'); y quieres partirlo en dos valores float, ¿hasta aquí es correcto el planteamiento?
Si es así, ¿podrías compartir qué valor tiene esa variable String data?