Zum Inhalt springen

Open Source Prüfstandssoftware auf Basis von Arduino Mega und LabVIEW


chili023

Empfohlene Beiträge

Ich muss zugeben, dass ich da nichtmehr folgen kann:rotwerd:

aber kannman sagen dass das Auslesen des Lambdacontrollers über I2C den Prozessor zusehr blockieren würde?
also doch lieber ein Analoger Controller

	
		analogReference(external);	
	


und eine stabile 5V Referenzspannung von irgendwo her an ARef...

dann müsste nur der Analogread direkt ausgegen werden und Labview rechnet den in den AFR wert um und gut?
 

Bearbeitet von Werner Amort
Link zu diesem Kommentar
Auf anderen Seiten teilen

würde der aktuelle Sketch auch mit einem

analogReference(external);	

und stabilisierten 5V an AREV sonst noch unverändert funktionieren?

dann wärs wohl das einfachste eine 5V Referenzspannung an AREF
z.B. Sowas

( https://www.reichelt.de/ICs-NE-STV-/REF-02-BU/3/index.html?ACTION=3&LA=446&ARTICLE=147326&GROUPID=2915&artnr=REF+02+BU&SEARCH=spannungsreferenz%2B5v&trstct=pos_0 )
und der Arduino gibt einfach den analogRead() vom analogem  AFR Controller aus?

das umrechnen vom analogRead zum AFR Wert übernimmt dann Labview

Bearbeitet von Werner Amort
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Stunden schrieb Werner Amort:


und eine stabile 5V Referenzspannung von irgendwo her an ARef...

dann müsste nur der Analogread direkt ausgegen werden und Labview rechnet den in den AFR wert um und gut?
 

Ich hab die Tage mal mit nem Controllino Mega rumgespielt. Der kann halt 24 V. Zumindest bei dem konnte ich zwischen 18 und 26 V keinen Unterscheid feststellen, wenn ich mit nem 2. Netzteil mit 10V an den Analogeingang gegangen bin.

 

Ich hab allerdings auch irgendwo ein Workaround gefunden, in dem du deine 5V Referenz mit einer anderen 1,1V Referenz, die wirklich immer anliegt abgleichen kannst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hab grad mit Michael, er zeichnet unser Board, gesprochen.

wir werden uns wohl nicht für den Spartan I2C entscheiden.

wir sehen eine Externe Referenz vor und eine Klemmleiste zu den analogen Eingängen und eine 12V Spannungsversorgung....

dann kann man jeden 0-5V Controller hinhängen.

der Arduino bräuchte nur den Analogread ausgeben.

Labview weiß die Referenzspannung und errechnet aus Referenzspannung und analogread den AFR Wert.

 

 

Bearbeitet von Werner Amort
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Stunden schrieb chili023:

Schau mal bitte in dieLibary vom BME da steht drin wieso wir die brauchen. Trotz read wird hier eigentlich der BME konfiguriert. Ist etwas ungewöhnlich aber die haben das so gemacht.

 

Das Serial.begin(57600) kommt im Beispiel I2C_ReadAllData.ino nur vor weil die halt auch über die Serielle printen wollen.

Der BME braucht das nicht. Der kommuniziert auschliesslich über den I2C port (in eurem Fall), oder halt über SPI. Aber nicht über die Serielle. Das ganze Board von SparkFun hat keine Pins für die Serielle.

Wenn du das raus nimmst wird sicht nichts ändern. Außer das die Serielle halt nicht unnötig umkonfiguriert wird im Betrieb. Was aber an sich nichts aus macht, weil ihr sie ja dazwischen (also wärend sie auf 57600 baud konfiguriert ist) nicht verwendet.

 

Auch das lesen der Register, ohne die Werte zu verwenden braucht der BME nicht.

Das machen die im Beispiel auch nur zum debuggen - die printen einfach was drinnen steht in den Registern.

Damit sieht man dass mySensor.begin() funktioniert hat: es wurden alle settings (mySensor.settings.*) in diese Register übernommen.

 

 

Bearbeitet von GUE_
Link zu diesem Kommentar
Auf anderen Seiten teilen

@GUE_

Nichts für ungut aber das stimmt so nicht.

 

Ich werde das aber gerne nochmal testen und dir den output posten.

 

Hast du nen MEGA? wenn ja schicke ich dir gerne ein Board samt BME zum testen/debuggen. Hilfe mit dem Mikrocontroller benötigen wir noch.

  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 14 Stunden schrieb Werner Amort:

dann kann man jeden 0-5V Controller hinhängen.

Das wird so nicht so einfach funktionieren, da analogread sehr lange dauert. Damit wirst du interrupts verpassen und die Messung verfälschen.

 

Wie gesagt ein  zweiter controller (z.B. ein UNO) könnte das übernehmen.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Stunden schrieb chili023:

Hast du nen MEGA? wenn ja schicke ich dir gerne ein Board samt BME zum testen/debuggen. Hilfe mit dem Mikrocontroller benötigen wir noch.

Hi,

 

MEGA 2560 ist vorhanden.

 

Ich bin da weiterhin interessiert mitzuarbeiten, Lambda via Arduino hatte ich vor ~5 Jahren bei einem DIY Projekt (Tuning) mit einem Low-Cost Daughterboard problemlos umsetzen können. Müßte nochmal nachsehen, was das genau war. <edit>das war dieses hier: http://www.breitband-lambda.de/cj125.html - es gibt von Bosch und TI ein paar auf Lambdasonden-Auswertung getrimmte ICs, mit denen das viel simpler und schneller machbar ist als es analog aufzubauen. Der Preis ist inzwischen allerdings höher als er war ^^ Mit den vorhandenen ICs das in den Datenblättern angegebene Referenzdesign umzusetzen wird viel günstiger möglich sein, wenn es eh schon eine Platine gibt die gezeichnet wird.

 

<edit>Wegen analogRead() - es gäbe dazu auch dedizierte ADCs, die konvertieren a) genauer b) schneller haben c) mehrere Kanäle parallel, d) schnelle serielle Interfaces und e) eine Referenz optional. Wenn wirklich analoge Messungen interessant sind, ist das eine - recht günstige - Alternative. Die kann man im Hauptprogramm auswerten und die Interrupts weiter bedienen.

Bearbeitet von Nexus665
ADCs ergänzt, Lambda DIY Link
  • Like 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

@Nexus665

Den Knödler Kontroller habe ich hier. Den fahre ich auf der Straße. Das wäre auch meine Wahl für den PST.

Habe mir jetzt aber auch den Spartan gekauft.

Ich werde in den nächsten Wochen die Umsetzung am PST Testen. Was bis jetzt fehlt ist die Labviewumsetzung.

Dennoch glaube ich , das die I2C oder SPI umsetzung am schnellsten geht und auch am Prozessorschonensten abläuft.

Die Analog Read Methode im Hauptprogramm hat die Messung verfälscht.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

bleibt im Loop genug Zeit für das auslesen eines zweiten SPI-Slaves?

ich hätte auch kein Problem für mich zugunsten des Lambdacontrollers aufs EGT zu verzichten...

einen ADC über Spi auslesen?
https://playground.arduino.cc/Code/MCP3208


dazu eine 5V Referenzspannung?

 

Würde doch funktioinieren?
 

 

 

 

Bearbeitet von Werner Amort
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Stunden schrieb chili023:

 

Ich werde das aber gerne nochmal testen und dir den output posten.

 

Hast du nen MEGA? wenn ja schicke ich dir gerne ein Board samt BME zum testen/debuggen. Hilfe mit dem Mikrocontroller benötigen wir noch.

 

Ja mach das echt mal.

Sollte das was ich gesagt habe nicht stimmen bin ich dir ein paar Bier schuldig!  :cheers::cheers:

Ein MEGA ist schon am Weg zu mir :-). Dein Board und den BME würde ich natürlich bezahlen, wie jeder andere.

 

Bearbeitet von GUE_
Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe heute einen Mega bekommen und wollte die Signalverarbeitung mal testen bevor ich die Minimalkartschaltung dann dranngebe.

mein Setup am Breadboard.

Pin 48 und 49 mit 10KPulldown auf GND

Jeweils ein Taster gibt beim Drücken ein 5V Signal auf 48 und 49.

Damit wollte ich die Pins testen...

mein serieller Output schaut aber so aus

 

1346;46.36;20743;27592;0.00
1347;46.36;20743;27592;0.00
1348;46.36;20743;27592;0.00
1349;46.36;20743;27592;0.00
1350;46.36;20743;27592;0.00
1351;46.36;20743;27592;0.00
1352;46.36;20743;27592;0.00
1353;46.36;20743;27592;0.00
1354;46.36;20743;27592;0.00
1355;46.36;20743;27592;0.00
1356;46.36;20743;27592;0.00



also die Messung startet normal mit Ausabe 0 bei den Frequenzen, sobald ich dann nur kurz ein Signal gebe schießt sie anzeige hoch und geht auch nichtmehr runter wenn ich den Taster auslasse...

oder funktioniert ICP womöglich nicht bei allen ChinaKlone?

 

 

Bearbeitet von Werner Amort
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 16 Stunden schrieb Werner Amort:

Habe heute einen Mega bekommen und wollte die Signalverarbeitung mal testen bevor ich die Minimalkartschaltung dann dranngebe.

mein Setup am Breadboard.

Pin 48 und 49 mit 10KPulldown auf GND

Jeweils ein Taster gibt beim Drücken ein 5V Signal auf 48 und 49.

Damit wollte ich die Pins testen...

mein serieller Output schaut aber so aus

 

1346;46.36;20743;27592;0.00
1347;46.36;20743;27592;0.00
1348;46.36;20743;27592;0.00
1349;46.36;20743;27592;0.00
1350;46.36;20743;27592;0.00
1351;46.36;20743;27592;0.00
1352;46.36;20743;27592;0.00
1353;46.36;20743;27592;0.00
1354;46.36;20743;27592;0.00
1355;46.36;20743;27592;0.00
1356;46.36;20743;27592;0.00



also die Messung startet normal mit Ausabe 0 bei den Frequenzen, sobald ich dann nur kurz ein Signal gebe schießt sie anzeige hoch und geht auch nichtmehr runter wenn ich den Taster auslasse...

oder funktioniert ICP womöglich nicht bei allen ChinaKlone?

 

 

Kommando zurück...

ich hab jetzt mit dem Nano das Rechtecksignal gemacht...
das ließt der Mega jetzt richtig aus...

 

Code aufm Nano

byte dela;

void setup() {
  // put your setup code here, to run once:
  pinMode(7, OUTPUT);
  pinMode(A2,INPUT);
  

}

void loop() {
  // put your main code here, to run repeatedly:
dela=map(analogRead(A2),0,1023,30,2) ;
digitalWrite(7,HIGH);
delay(2);
digitalWrite(7,LOW);
delay(dela);
}

das D7 vom Nano geht an 48oder 49 Vom Mega

48 und 49 hängen mit 10K Pulldown an GND

 

die vom Nano gemachte Freuenz wird richtig ausgelesen, allerdings zeitverzögert...
hatte ein Osziloskop mit an pin48
das Oszilloskop hat sofort reagiert die serielle Ausgabe erst verzögert...

ca. 1-2sec
 

DSC_0542.JPG

Bearbeitet von Werner Amort
Link zu diesem Kommentar
Auf anderen Seiten teilen

Im Video sieht mans...


Sobald ich das Poti auslasse zeigt das Oszyloskop sofort die ca.30Hz an,  die serielle Ausgabe folgt aber verzögert der neuen Vorgabe. Beim hinaufsetzen der Frequenz ist der versatz kleiner, als beim runtersetzen?

liegts an meinem Chinaklon?
oder mach ich sonstwas falsch?

so sieht mein Signal aus

 

DSC_0543.JPG

 

(Achtung steht Kopfüber)

Bearbeitet von Werner Amort
Link zu diesem Kommentar
Auf anderen Seiten teilen

Aso jetzt hab ichs

 

Der Sketch Arbeitet ja mit einem Ringspeicher zu 50 Werten.

bei der geringen Frequenz des Zündsignals kommt est dadurch natürlich zu einem Filtereffekt. 

 

Beim hochfrequentem Rollensignal wirkt der Filter wohl schwächer.

 

ähm empfiehlt Ihr ein anpassen der Ringspeicher größe an die Impulse vom Drehgeber?

also Drehgeber mit weniger Inkrementen -> kleinerer Ringspeicher?

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wir haben heute die Minimalkartschaltung an verschiedenen Zündungen getestet.
https://youtu.be/9pVV-FaCVpo
Ringspeicher auf 5 Werte gestellt

Elektronische Ducati:

brauchte eine entsörte Kerze, oder Halt Kappe...

eine Kontaktzündung nur mit R-Kerze hat funktioniert, es gab aber immerwieder Ausreißer nach oben (Zeiger auf Anschlag).
zusätzlich noch kappe mit Widerstand hat dann geholfen...

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich fand bei Problemzündungen die Messung mit 5 Werten im Ringspeicher praktikabeler.

 

Dann schießt der Zeiger bei Doppelfunken nur mal schnell hoch und zeigt  dann wieder die richtige Drehzahl...

 

evtl versuch ich die Tage mal den Sketch ein bissl umzuschreiben.

dass die Ringspeichergröse nicht in einer Variabel steht, sondern per #define definiert wird.

jeweils unterschiedlich für Zünd und Rollensignal...

mal sehn 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen.    Ich hatte mal wieder etwas Zeit und bei meinem Prüfstand weiter gebastelt.  Problem ist immer noch mein inkrementalgeber.  Derzeit ist so ein China Ding verbaut.  Geht auch ganz gut nur durch die 600 inkremente pro Umdrehung ist bei ca 100 km h.  Ende.  Jetzt hab ich einen mit 100 geordert.  Versorgung zwischen 5 und 24 Volt.  Leider gibt der aber erst ab 5,5 Volt ein Signal aus.  Mein Board liefert aber nur 5 Volt.   Jemand eine einfache Lösung für mich??  Ach ja bin kein Elektronik profie wie die meisten hier. Meins ist mehr die mechanische Seite 

 

danke Malzi 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Protoshield für den Mega mit Minimalkartschaltung an 5V und BME280

 

Ich hab im ganzen Topic nirgends den dafür angepassten Schaltplan gefunden.

Im Anhang meine Version...

 

Klemmleiste für einen 5V Drehgeber währe auch vorhanden.

ich hoffe mein bestellter Chinadrehgeber funkt mit 5V

ähm grua du hast einen anderen mit 200 inkrementen an 5V im einsatz oder?

 

IMG-20180216-WA0000.jpg

 

mini.jpg

 

Parallel dazu arbeiten wir an einer Plattine mit STM32 als Controller, 12V Versorung BME280, Max31855 Minimalkartschaltung und evtl sogar den Lambdakontroller fix mit drauf...
dan würde der Mega entfallen.

bestücken kann man dann nur die Features die man nutzen möchte...

mal sehn wo die Reise hinführt :-)

Was anderes

gibt es irgendwo eine Webseite/App welche mir den (relativen) Luftdruck der online Messtationen in absoluten Luftdruck umrechnet.

dann könnte ich den Offset von meinem BME280 schonmal grob bestimmen...

 

 

 

Bearbeitet von Werner Amort
Link zu diesem Kommentar
Auf anderen Seiten teilen

Bin neu hier und will eigentlich nur paar Kurven die am Prüfstand gemacht wurden (XLM Datei) jetzt zu Hause öffen.

Was muss ich denn da installieren ?

Wenn ich WildBugChiliGru starte bekomm ich eine Fehlermeldung, obwohl ich RunTime Installer und VISA Treiber schon zwei mal installiert habe (2014 version und 2017).

Screen Shot 2018-02-16 at 09.59.56.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.



×
×
  • Neu erstellen...

Wichtige Information