Vraag over seriele monitor

Momenteel ben ik bezig het schrijven van een code voor verschillende sensoren voor op de Arduino. Nu loop ik tegen 1 ding aan. ik wil alle waarden in de seriele monitor op 1 lijn (waarde, waarde, waarde, ...)

Weet iemand hoe ik de code zo kan schrijven dat het op die manier in de seriele monitor komt?

Hier een klein stukje van mijn code. Voor het overzicht heb ik het onder elkaar staan in de SM, maar ik wil het nu graag zo hebben dat ik het makkelijk naar Excel kan kopieren, zodat ik daar een grafiek van kan maken.

Alvast bedankt voor het meedenken!

int sensorValue = analogRead(A0);

float Voltage = sensorValue * 5.0/1023; float PPB = ((Voltage - 1.235) * 2656.0424967); { Serial.println("Formaldehyde concentration:"); Serial.print(PPB); Serial.println(" PPB"); Serial.print(Voltage); Serial.println(" Volt"); Serial.print(sensorValue); Serial.println(" bits");

in de declaraties plaats je dit b.v.

define field_separator "," //used for .csv file

in de loop

Serial.print("DATA,"); //dit is een keyword voor Excel Serial.print("Formaldehyde concentration:"); Serial.print(field_separator); Serial.print(PPB); Serial.print(field_separator); Serial.print(" PPB"); Serial.print(field_separator); Serial.print(Voltage); Serial.print(field_separator); Serial.print(" Volt"); Serial.print(field_separator); Serial.print(sensorValue); Serial.print(field_separator); Serial.println(" bits");

Normaal gezien print je in Setup een label voor de grootheden PPB,Voltage enz.. Dan komt dit te vervallen in de Loop.

hier wordt het gebruik van de seriƫle monitor uitgelegd met enkele voorbeelden.

deze dingen die over de seriele monitor gezegd worden wist ik al, alleen wordt er niets uitgelegd over het printen achter elkaar.

daarom bedankt voor de uitleg

Een instructie zoals bijvoorbeeld Serial.println (PPB) heeft als gevolg dat in het venster van Serial Monitor de waarde van de variabele PPB wordt weergegeven gevolgd door een return en line feed.

Met bijvoorbeeld Serial.println (""); geef je instructie om een lege regel in Serial Monitor te forceren.

Verander Serial.println in Serial.print en de return/line feed treedt niet op. Alle output van Serial Monitor wordt dan achter elkaar gezet.

Ik heb je snippet omgezet in zo'n 'achter elkaar output', en heb een komma toegevoegd als separator om het importeren in een CSV bestand te vergemakkelijken

Zou zo moeten werken:

Serial.println("Formaldehyde concentration:"); Serial.print(PPB); Serial.print (","); Serial.print(sensorValue); Serial.print (",");

succes, Floris

Helemaal eens met photoncatcher, das de informatie waar TS naar op zoek moet zijn. GijKieken deed dit ook wel, en maakte een "field separator" die je maar eenmalig hoeft aan te passen (verander de "," in ":" en alles staat tussen dubbele punten. En hij deed een voorstel om de veldnamen in een soort van kop weer te geven (die uiteindelijk uit beeld zal scrollen). Maar hij legde niet uit dat en hoe hij voorkwam dat er een volgende regel werd gemaakt.

Zelf zou ik hier nog een paar extra spaties toevoegen, maar het ligt er maar net aan hoe je je serial monitor hebt ingesteld of dat handig is.

Bedankt voor de reacties!

Ik ben er intussen al uitgekomen. ik heb het nu zo dat er elke 10 minuten een nieuwe regel wordt geprint met alle sensorvalues, zodat ik het gemakkelijk kan kopieren en plakken. Daarnaast vind ik het dan ook gemakkelijker om met komma's te werken, dan met dubbele punt.

Photocatcher, ik dacht al zoiets met Serial.print en Serial.println, maar bedankt voor de heldere omschrijving. Zo had ik het ook al in mijn code gezet. Nu krijg ik het volgende te zien, en dat was de bedoeling.

17:10,428,4,4677.53,3.00,613,52 17:20,435,5,4703.49,3.01,615,48 17:30,428,4,4703.49,3.01,615,48 17:40,428,4,4703.49,3.01,615,46 17:50,428,4,4690.51,3.00,614,47

Als je wilt loggen zou je ook kunnen denken aan de volgende oplossingen:

--> werken met een logging shield op de Arduino waarmee de data als .csv worden weggeschreven op een SD kaartje. Je moet dan later de inhoud van het kaartje importeren of openen in je spreadsheet (SD kaartlezer nodig)

zie http://www.zonnepanelen.wouterlood.com/arduino-projecten/

--> nog interessanter is om niet een Arduino te gebruiken, maar een ESP8266 NodeMCU. Deze heeft wifi aan boord, en je kan je data met wat opassen en meten het internet op sturen (bv naar een account op ThingSpeak) en daarna real time uitlezen op je smartphone. Data worden op de ThingSpeak server opgeslagen als csv bestand, en je kan via je browser de csv logbestanden downloaden !

succes, Floris

Of loggen in Excel,met PLX-Daq hier op het forum terug te vinden.