Beginner die datalogger wil op zijn circuitmotorfiets

Goedeavond

Mijn naam is Benjamin De Graef en werk graag met motorfietsen

Ik ben momenteel bezig met een circuitmotorfiets en heb verschillende toestellen voor bepaalde waardes te kunnen meten welke zijn:

Lambda sonde: dit is om te bepalen of het mengsel goed is (niet te arm of te rijk)
TPS: 'throttlepositionsensor' of gasstandpositiesensor zodat ik de gasstand (hoeveel gas ik geef) kan aflezen en vergelijking met lambda waarde/toerentallen voor afstellen
Regelbareontsteking: vooronsteking en curve zijn regelbaar
Zowel toerenteller en snelheidsmeter zullen digitaal zijn
Pingelsensor: om detoneren (ongecontroleerd verbranden van het mengsel) te detecteren
Temperatuurmeter voor koelwater en olie
Drukmeter voor olie

Nu kan voor lambda sonde/tps en pingelsensor wel aparte meters gebruiken maar dat wordt nogal omslachtig
Ontsteking kan ik programmeren maar niet tijdens het rijden op de motorfiets

Is het mogelijk om met arduino deze toestellen te kunnen data loggen zodat ik achter een testrit alle waardes kan aflezen en vergelijken met elkaar?

Wat zijn de voorwaarden om een bepaalt apparaat kunnen data loggen?

Hoe kun je alles mooi in een grafiek krijgen (op youtube zag ik een filmpje waar iemand dat deed in excell maar kan dat ook anders)?

Groeten,
Benjamin

Dag Benjamin
Welkom op het Nederlandstalige gedeelte van het Arduino forum.

BenjaminDG:
Is het mogelijk om met arduino deze toestellen te kunnen data loggen zodat ik achter een testrit alle waardes kan aflezen en vergelijken met elkaar?

Deze specifieke toestellen weet ik niet maar met een toestel dat je kan aansluiten op de arduino kan dat zeker wel.

BenjaminDG:
Wat zijn de voorwaarden om een bepaalt apparaat kunnen data loggen?

Er zijn eigenlijk 2 voorwaarden.

  1. Je moet de meetwaarden van je toestel naar de arduino kunnen doorsturen. Met andere woorden je meter en de arduino moeten hetzelfde protocol kunnen spreken. Het ene protocol is al makkelijker dan het andere.
  2. De Arduino moet sneller kunnen werken dan de meter want anders gaan waarden verloren. Het protocol kan de snelheid van de arduino beperken. Bijvoorbeeld is analog read trager dan digital read.

BenjaminDG:
Hoe kun je alles mooi in een grafiek krijgen (op youtube zag ik een filmpje waar iemand dat deed in excell maar kan dat ook anders)?

Omdat je toch wel wat wilt rijden zal je je data in een externe opslag moeten steken. De meest voor de hand liggende oplossing is een sd kaartje rechtstreeks op je arduino. Dit betekent dat je een bestand krijgt. De inhoud en vorm van dat bestand bepal je zelf. Eens je een bestand hebt is de visualisatie met verschillende tools mogelijk. Sommige zijn freeware en andere te betalen.
Ik persoonlijk gebruik excell.
Veel plezier met je project.
Met vriendelijke groet
Jantje

Staan de verschillende codo's en programmeer zinnen ergens in een bestand want het aansluiten lijkt mij niet zo moeilijk.

Het is vooral moeilijk lijkt me om al die signalen van de toestellen goed te kunnen omzetten naar de SD kaart voor weergave in excell (met de juiste schaal).

Maar kan elk 12V digitaal signaal gebruikt zodat arduino het kan data loggen op de SD kaart?

Ik dacht ook te lezen dat het 12V signaal omgezet moest worden naar 5V?

Ik heb een voorbeeld gevonden in het arduino bestand van een datalogger met SD kaart.

/*
SD card datalogger

This example shows how to log data from three analog sensors
to an SD card using the SD library.

The circuit:

  • analog sensors on analog ins 0, 1, and 2
  • SD card attached to SPI bus as follows:
    ** MOSI - pin 11
    ** MISO - pin 12
    ** CLK - pin 13
    ** CS - pin 4

created 24 Nov 2010
modified 9 Apr 2012
by Tom Igoe

This example code is in the public domain.

*/

#include <SD.h>

// On the Ethernet Shield, CS is pin 4. Note that even if it's not
// used as the CS pin, the hardware CS pin (10 on most Arduino boards,
// 53 on the Mega) must be left as an output or the SD library
// functions will not work.
const int chipSelect = 4;

void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}

Serial.print("Initializing SD card...");
// make sure that the default chip select pin is set to
// output, even if you don't use it:
pinMode(10, OUTPUT);

// see if the card is present and can be initialized:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
return;
}
Serial.println("card initialized.");
}

void loop()
{
// make a string for assembling the data to log:
String dataString = "";

// read three sensors and append to the string:
for (int analogPin = 0; analogPin < 3; analogPin++) {
int sensor = analogRead(analogPin);
dataString += String(sensor);
if (analogPin < 2) {
dataString += ",";
}
}

// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
File dataFile = SD.open("datalog.txt", FILE_WRITE);

// if the file is available, write to it:
if (dataFile) {
dataFile.println(dataString);
dataFile.close();
// print to the serial port too:
Serial.println(dataString);
}
// if the file isn't open, pop up an error:
else {
Serial.println("error opening datalog.txt");
}
}

Is dat alles dat je nodig hebt om een signaal van bv een sensor te schrijven op de SD kaart, hoe zit het dan met de waardes?

Groeten,
Benjamin

Ik dacht ook te lezen dat het 12V signaal omgezet moest worden naar 5V?

Dat klopt. Ik weet geen enkel protocol op de Arduino dat met meer dan 5Volt om kan.
Voor een enkel lezen spannings-signaal kan je best met een spannings-deler en een analoge pin werken.

Voor de juiste schaal zou ik rekenen op je virtualisatie software. Daar heb je veel meer rekenkracht.
Voor men logging maak ik altijd een csv file. Das makkelijk. In je loop zet je een log commando die dan alle variabelen die je wil loggen op 1 lijn op je sd zet.
omdat SD en serial eigenlijk hetzelfde zijn kan je makkelijk debuggen en testen met de serial monitor. En daar heb ik een 10 kanaals scope voor :slight_smile:
Met vriendelijke groet
Jantje

Weet je toevallig welke onderdelen van arduino ik juist nodig heb?

Dat proto bord wordt gebruikt voor te testen maar zijn er ook kleinere beschikbaar voor permanente verbindingen?

Welk type borden zou ik moeten gebruiken?

De starterkit ga ik wel al kopen om het programmeer en basis tests onder de knie te krijgen.

Staat er hier ook ergens een uitleg met de betekenis van welke programmeercode?

Je test met een breadboard
Dan maak een paar exemplaren met een protoboard
Als je echt massaal gaat produceren laat je een pcb maken
Verder zal het meeste zich wel duidelijk maken met een starterskit.
Met vriendelijke groet
Jantje

Het zal vast hier al eens gesteld zijn maar kan arduino ook signalen verwerken in mV?

Bv de druksensor die ik heb werkt met een uitgangsignaal van maximum 25mV

http://www.conrad.be/ce/nl/product/185523/MPX-2010-DRUKSENSOR

Trouwens waar haal je de SD kaart data logger shield?

Want op de website van arduino staan deze niet meer op en conrad.be heeft ze ook niet.

Groeten,
Benjamin

BenjaminDG:
Het zal vast hier al eens gesteld zijn maar kan arduino ook signalen verwerken in mV?

Mijn advies zou zijn zoek een sensor die 5V of meer geeft. Anders zal je een versterker nodig hebbben. Maar daar kan ik je niet mee helpen.

BenjaminDG:
Trouwens waar haal je de SD kaart data logger shield?

Want op de website van arduino staan deze niet meer op en conrad.be heeft ze ook niet.

Adafruit heeft een sd shield met een rtc clock (hier de geassembleerde versie) Adafruit Assembled Data Logging shield for Arduino : ID 1141 : $13.95 : Adafruit Industries, Unique & fun DIY electronics and kits
Je kan ook een breakout board kopen MicroSD card breakout board+ : ID 254 : $7.50 : Adafruit Industries, Unique & fun DIY electronics and kits
En je kan avontuurlijk doen en eigen sd houder maken en verbinden met de Arduino. http://www.instructables.com/id/Cheap-DIY-SD-card-breadboard-socket/ (je kan dit nog veel makeelijker doen met een micro SD en de microsd houder direct solderen)
Keuze genoeg zou ik zeggen.
Met vriendelijke groet
Jantje

PS ik heb gemaks halve op adafruit site gekeken maar er zijn hopen kwalitatieve winkels in benelux die sneller en daarom niet duurder leveren.

Zeg nog een vraagje

Is er een volgorde hoe de verschillende borden met elkaar verbindt moeten worden of maakt dat niet uit?

Ik wil een arduino uno, SD kaart datashield,tinkerkit met verschillende sensoren verbinden met elkaar.

Data van die tinkerkit zou eigenlijk ook op die SD kaart moeten komen.

Is dit mogelijk?

Groeten,
Benjamin

Benjamin
Alles komt neer op pinnen.
Je kan een pin niet voor 2 dingen gebruiken.
ls je SD kaart een pin gebruikt die de tinkerkit gebruikt kan je die pin niet gebruiken vor je tinkerkit.

Met vriendelijke groet
Jantje

Daar zijn echter wel uitzonderingen op.
Sommige communicatie pins kun je wel dubbel gebruiken, maar dan heb je een extra pin nodig die uitsluitend naar het betreffende apparaat gaat en aangeeft dat de data op dat moment voor hem bestemd is.

Waar het om gaat is dus dat je van te voren een plan maakt met wat je nodig hebt, en controleert of dat te combineren is in hardware en in software.
Soms kun je nog wel wat aanpassen om toch bepaalde combinaties te kunnen gebruiken.

Maar het kan om een arduino uno,sd kaart datashield en tinkerkit + sensoren te combineren of begrijp ik dat verkeerd?

Bv tinkerkit met potentiometer, die data wil ik op de SD kaart krijgen.

Dat kan inderdaad......Maar de vraag is "heb je voldoende pinnen van het juiste type om alles bij elkaar te knopen"

VB pin 0 en 1 kan je niet gebruiken als je de USB wilt gebruiken om een sketch op te laden (behalve dan op de leonardo en misschien due )
Op pin 13 zit een weerstand die roet in schakeling kan brengen.
Je hebt pin A0 to pin A5 (6 dus) voor analoge communicatie. Indien je wil kan je die ook digitaal maken. Er zijn er wel 2 die je voor een communicatie protocol kan/moet gebruiken.
Dus heb je in zekere zin pin 2 tot 12 en A0 tot A5 voor digitale communicatie. Maar lang niet al die pinnen hebben een PWM functie die soms nodig is.
Als je wilt weten of iets kan moet je voor elke schakeling/sensor die je wilt gebruiken kijken welke pinnen je nodig hebt en dan puzzelen zodat je alles aangesloten krijgt op de juiste pinnen.

Met vriendelijke groet.
Jantje

PS Merk op dat er schakelingen zijn die je toelaten om meer pinnen te maken (die je dan enkel achter elkaar kan lezen)