A partir de una pregunta diferente que publiqué, me di cuenta de que me cuesta mucho entender qué está sucediendo exactamente en Serial.print, Serial.read, etc. y el búfer. Usaré mi código como un ejemplo específico y espero que alguien pueda aclararme estas preguntas.
Así que estoy leyendo los valores de los sensores a través de AnalogInput, luego los estoy imprimiendo en una línea, vea aquí:
Laformaenqueentiendocómofuncionaestoes:
- ElArduinoleelosvaloresdelsensorylosalmacenaenvariables.
- Lasvariablesseimprimenenunasolalíneaenelmonitordeserie.
- Enjuagueyrepita.
¿Cómocuentolacantidaddebitsqueestoyenviandoalmonitorenserie?¿Esparacadalíneaqueimprimo(queenesecasoseríadeaproximadamente1052bits)?Sieseeselcaso,entoncesaunavelocidadenbaudiosde9600bits/segdeberíapoderimprimirvariaslíneasenunsegundo.
¿Elbúfertomaesalíneayluegosevacíaparalasiguiente?
Estoysegurodequeyapuedesdecirquetengoalgunaspreguntasbásicassobrecómofuncionanexactamenteelbúferyelmonitordeserie.¡Apreciomuchotutiempo!Gracias.
Porfavoravísemesinecesitoaclararalgo.Además,aquíestámicódigo:
//Dataacquisition//updatedMarch30,2017//Note:ThisversionisforTEMPERATURE,HUMIDITYandPRESSUREdataacquisitionALONE.Nomotor/conveyorcontrol.//***GLOBALVARIABLES***//floatlfactor=125.0;floatafactor=1.15;///////////////////////////StandardsetupwithanalogReferenceto5Volts.voidsetup(){Serial.begin(9600);}voidloop(){//******THERMOCOUPLES*******////getvoltagereading//[code];TC#-Locationfloattcv1=analogRead(A4)*(5.0/1024.0);//TC1floattcv2=analogRead(A7)*(5.0/1024.0);//TC2floattcv3=analogRead(A8)*(5.0/1024.0);//TC3floattcv4=analogRead(A9)*(5.0/1024.0);//TC4floattcv5=analogRead(A10)*(5.0/1024.0);//TC5//converttotemperatureusingcustomequationbasedon5Vreferencefloattc1=(188.7755*tcv1)-245.3959;floattc2=(188.7755*tcv2)-245.3959;floattc3=(188.7755*tcv3)-245.3959;floattc4=(188.7755*tcv4)-245.3959;floattc5=(188.7755*tcv5)-245.3959;//******HUMIDITYSENSORS********//floaths1=(((analogRead(A13)*(5.0/1024.0))/5.0)*100.0);//HS1floaths2=(((analogRead(A15)*(5.0/1024.0))/5.0)*100.0);//HS2//******PRESSURESENSORS********////obtainvoltagesignalfromSensirionsensorfloatpvolt=analogRead(A0)*(4.995/1024.0);//converttoPascalsusingequationfromdatasheet,includingaltitudecompensation//P=lfactor*(voltage[V]-.250)/3.750floatpressure=lfactor*(pvolt-.250)/3.750;floatpascals=pressure*afactor;Serial.print("TC1");
Serial.print(":");
Serial.print(tc1);
Serial.print(";");
Serial.print("TC2");
Serial.print(":");
Serial.print(tc2);
Serial.print(";");
Serial.print("TC3");
Serial.print(":");
Serial.print(tc3);
Serial.print(";");
Serial.print("TC4");
Serial.print(":");
Serial.print(tc4);
Serial.print(";");
Serial.print("TC5");
Serial.print(":");
Serial.print(tc5);
Serial.print(";");
Serial.print("RH 1");
Serial.print(":");
Serial.print(hs1);
Serial.print(";");
Serial.print("RH 2");
Serial.print(":");
Serial.print(hs2);
Serial.print(";");
Serial.print("Pressure");
Serial.print(":");
Serial.print(pascals);
Serial.print(";");
Serial.println("");
delay(1000);
}