Noch ein kleiner Prüfstand

Status
Nicht offen für weitere Antworten.

leo2e

Erfahrener Benutzer
Hallo,
>>>regeln an einer bestimmten Stelle plötzlich vollkommen unproportional hoch (geben Gas)
ist in der ESC das passende Timing eingestellt?
 
Wahnsinn was du an Arbei in das ding steckst, klasse!

Ich habe bei mir gestern mal den HX711 für das Wiegeelement verbaut, geht klasse, danke für den Tipp!
Jetzt macht nur mein Stromsensor noch macken und zeigt wilde Werte an wenn der Motor läuft, hier muss ich wohl noch glätten - entweder mit dickem Elko dahinter oder per Average in der Sotware....
 

fdietsch

Erfahrener Benutzer
Ich musste erst mal nach HX 71 googln http://www.ebay.de/itm/HX711-Module...655?pt=LH_DefaultDomain_0&hash=item1e83902067

Was bringt das ? Ich lest die Waage über i2c aus ?
Verträgt sich das einlesen der I2c signale mit der ausgabe der i2c Drehzahlvorgaben (wer es braucht)?
Ich nehme einen OPV und einen Analogeingang des Arduino.

Habe gestern mal probiert die Drehzahl statt optisch mit reflexlichtschranke durch abgreifen der Motorkabel zu messen. Wenig erfolg. bin momentan am überlegen ob ich die refelxlichtschranke hinter und einen Reflektor vor die Lichtschranke baue.

Momentan werden bei mir die Daten nach Imulslänge gemessen. Gibt es schon einen Ansatz die Impulslänge so zu steuern daß man die Impulslänge nach Stromstärke regelt . Oder kann dies jemand aus der Tabelle irgendwie im Exel umrechnen?
Das hätte dann wohl den Vorteil daß man als x Achse strom nehmen könnte und in Y einfach den schub eintragen kann.
Macht das ganze dann übersichtlicher. Bei Konstanter Spannung ist dann eine seperate Kurve für wirkungsgrad überflüssig.
Somit gibt es nur eine Tabelle in der Verschieden farbig verschiedene Propeller eingetragen sind , das Macht das Vergleichen einfacher.
 

hornetwl

Erfahrener Benutzer
Hornet, bevor ich Dir den 500g/1000g Test mache, wollte ich noch ein Problem beseitigen. Die neuen ESCs, die ich dran habe, die Turnigy AE-45A, regeln an einer bestimmten Stelle plötzlich vollkommen unproportional hoch (geben Gas).
Wenn das mal nicht irgendwelche Sync-Loss-Probleme sind....

In diesem Fall kannst Du mit der Ansteuerung nichts verbessern, das ist ein Problem zwischen Motor und Regler. Nach meinen Erfahrungen reagieren solche Probleme auch kaum auf Timingänderungen, entgegen dem üblichen Forenrat in solchen Fällen. Die 5010 sind hier zwar nicht extrem kritisch, aber z.B. mit einem T-Motor-Regler (umgelabelter SIL) hatte ich das Problem auch schon.

Sync-Probleme verschärfen sich übrigens mit zunehmender Spannung und abnehmenden Innenwiderständen von Akku, Regler, Motor. Vorsicht, pyrotechnische Effekte sind nicht ausgeschlossen!

Gibts einen zwingenden Grund für den Reglerwechsel?
 
Ich musste erst mal nach HX 71 googln http://www.ebay.de/itm/HX711-Module...655?pt=LH_DefaultDomain_0&hash=item1e83902067

Was bringt das ? Ich lest die Waage über i2c aus ?
Verträgt sich das einlesen der I2c signale mit der ausgabe der i2c Drehzahlvorgaben (wer es braucht)?
Ich nehme einen OPV und einen Analogeingang des Arduino.
Der HX711 ist denke ich genauer und billiger als ein passender OPV und AD Wandler des Arduinos. Die musst ja auch genau aufeinander abstimmen und hast dann trotzdem max 10bit statt 24bit. Außerdem ist kein i2c sondern ein eigenes Protokoll an beliebigen 2 Pins am Arduino.
http://www.ebay.com/itm/HX711-Weigh...648?pt=LH_DefaultDomain_0&hash=item20dd3a66f0
 
Zuletzt bearbeitet:

fdietsch

Erfahrener Benutzer
Ok . Mal sehn vielleicht baue ich ja meinen Teststand noch um
 

Bamfax

Erfahrener Benutzer
Jungs, ist ja cool, geht ja richtig ab hier :)

Johannes: Danke Dir für Deine Worte. Wenn's was bringt, dann umso gerner. Wenn jemand die Erkenntnisse aus dem Thread ausprobiert, würde mich brennend interessieren, was dabei rauskommen - also ob die Vergleiche wie hier angestellt auch der Praxis standhalten. Weil so schnell werd ich nicht dazu kommen, den BamV12 umzubauen.

Was für einen Stromsensor verwendest Du denn? Weil hier könnte man noch verbessern, mit der Skalierungsthema vom Attopilot bin ich auch nicht ganz zufrieden.

Fdietsch, was meintest Du mit der Impulslänge? Das habe ich nicht ganz verstanden. Bzgl. Watt statt Amp und Schub auf der X Achse halte ich das ein reines Darstellungsthema. Den CSV-Output hat man ja gleich in Excel, die Darstellung sollte dann nur noch (ähem, evtl aufwändig) eine Frage der Excel-Künste sein. Im Splunk kriege ich das auf jeden Fall hin, ist nur das leidige Zeitthema...
Wie hast Du bei Dir das Motorkabel abgegriffen, mit dem Unilog brushless RPM Sensor oder was im Eigenbau? Gibt es zu ersterem schon Erfahrungen, wie gut der funktioniert?

Hornet: Die ESCs sind schon die ganze Zeit dran. Die Blueseries waren der Erstwurf, vor dem ersten Test hab ich auf die Turnigy AE-45A umgestellt, damit ich bis 6s testen kann. Das unproportionale Gasgeben ist seit anfang drinnen. Bei ca. 1/3 Gas gibt es einen Gasschub, sieht man auch in den Graphen und im Video. An den ESC-Einstellungen muss ich mich nochmal austoben, die stehen noch auf default, weil es keine Programmer Karte gab. Geht auch mit der Funke, aber ich repariere so ungern den Motor durch den Auspuff ;).
 

fdietsch

Erfahrener Benutzer
Drehzahlmessung:
Das Motorkabel habe ich mit einem 3,3k Resistor abgegriffen dannach einen 100nF gegen masse das bildet sozusagen den Filter für die PWM des Reglers dannach habe ich einen Spannungsteiler 3k und 1k an GND gebaut das viertelt die Spannung. Am Oszi bekomme ich da ein vernünftiges signal raus aber der arduino misst da müll. mit der Reflexlihtschranke geing es :(
Hab gerade noch eine Großinvestition getätigt und mir eine größere Lichtschranke bestellt. Bis 30cm . entweder ich mache einen Reflektor dran oder ich löte die LED aus und baue die auf die andere Seite des Propellers.
http://www.ebay.de/itm/301097818001?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

Darstellung- exelkünste .... da muß ich noch mal probieren ob ich da was hinbekomme. Glaube aber nicht
Da brauche ich doch wenigstens für eine Achse X von jedem Prop gleiche werte (strom alle 50mA) wenn ich hier die gemessenen nehme sind die doch bei allen verschieden. ???
 
Jungs, ist ja cool, geht ja richtig ab hier :)
Was für einen Stromsensor verwendest Du denn? Weil hier könnte man noch verbessern, mit der Skalierungsthema vom Attopilot bin ich auch nicht ganz zufrieden.
Ich habe jetzt nen ACS712 da der mit dem Bereich bis 20A ganz gut zu meinen kleinen Motoren passt:
http://www.ebay.de/itm/Stromsensor-...=Wissenschaftliche_Geräte&hash=item51b1c2e404
Habe gestern nochmal rumgespielt, nachdem ich jetzt bei Jeder Strommessung über 10 Werte (direkt hintereinander) mittele klappt es schon viel besser, zudem hab ich noch n dicken Elko hinter den Sensor gehangen und meinen Regler gegen einen BLHeli getauscht bei dem der Gasweg von 1000-2000 gesetzt ist. So passen die Daten jetzt auch recht gut später beim Throttle von 0-100%
 

fdietsch

Erfahrener Benutzer
Ich nehme die 30A version http://www.watterott.com/de/ACS715-Stromsensor-Breakout-Board-30A und wieder zu viel bezahlt.
Dafür hat der mit 133mv/A die bessere Auflösung gegen deine 100mv/A . Denke aber der Unterschied ist zu vernachlässigen. dafür rechnen sich die 100mv besser...

void I() {strom=0;
zwischenspeicher=0;
for (int i=1; i<=10;i= i+1){
zwischenspeicher= analogRead (Stromsensor);
strom = strom+(((long)zwischenspeicher * 500 / 1024) - 50 ) * 1000 / 133;
delay(20);}
if(strom<0) { strom=0; } //negative Werte ausblenden
}
 
Zuletzt bearbeitet:
Bei mir schauts so aus:
Code:
// 2 Gemessene AD Werte mit gleichzeitig gemessenem Strom zum kalibrieren.
float currentA = 0.0; // Ampere
int analogCurrentA = 510; // analog reading current
float currentB = 7.01; // Ampere
int analogCurrentB = 650; // analog reading current

// Messung
  // get current
  int curAvCount = 10; // sample current several times
  analogCurrentValue = 0;
  for (int i=0; i < curAvCount; i++){
    analogCurrentValue += analogRead(currentPin);  
  }
  analogCurrentValue = analogCurrentValue/curAvCount;


// Umrechnung nach Ampere
float analogToAmperes(float analogval){
  float amp = mapfloat(analogval, analogCurrentA, analogCurrentB, currentA, currentB);
  return amp;
}

float mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
Das mappen über die gemessenen Werte kommt noch vom alten Sensor, wenn man aus dem Datenblatt weis das bei 2.5V 0 ist und dann 100mA pro A draufkommen kann man es auch direkt rechnen. Im Gegensatz zu meinem Beispiel oben sollten die Gemessenen Werte aber den Ganzen Sensorbereich abdecken, dann wirds genauer.
 

Bamfax

Erfahrener Benutzer
Auf jeden Fall macht es Sinn, bei einem Prüfstand einen kleineren Sensor zu nehmen, ich z.B. hab ja noch den 90A drinnen. Da ist die Auflösung schon richtig schlecht, wenn der 10bit ADC noch dazu kommt und wenn man die max. Spannung nicht angleicht (*unschuldig*).

Habt Ihr eure Sensoren mal gegen andere Sensoren gehalten (meine Labornetzteil, Strommesser, etc), habt ihr auch diese Abweichungen im unteren/oberen Messbereich?
 

fdietsch

Erfahrener Benutzer
Verglichen mit Labornetzteil, Zangenampermeter, Multimeter , differrieren alle ein wenig+-0,1A
Mehr stellen gibt mein Netzteil nicht aus, dabei muß ich dann wieder 100mA für den arduino abziehen.
 

Bamfax

Erfahrener Benutzer
Das würde ja passen. Bei mir waren bloss die Abweichungen bei den unteren und oberen Werten schon recht krass. Bei 0,5A Abweichtung von 0,15A und bei 8A Abweichung von 0,4A. Wobei sich wieder die Frage stellt, ob der Stromsensor abweicht, oder die beiden Multimeter, mit denen ich gemessen hatte.

Code:
RawVomADS    AttoAmp   MultimeterAmp    Const
0460         0,64      0,48             0,0010434783
1747         2,44      2,44             0,00139668
4091         5,72      5,93             0,0014495233
5718         8         8,26             0,001444561
5424         7,59      8,01             0,0014767699
 
Also ich kalibriere bei mir die AD Umrechnung nach Ampere ja mit 2 Meßwerten wie die ich parallel mit dem Amperemeter messe - wie oben geschrieben.
Von daher passt oben und unten sehr gut, klappt halt nur wenn die Kurve ne Gerade is, was aber bei den Hallsensoren ja der Fall sein sollte. Abweichung liegt hier bei max 0,1A was eben auch an AD Auflösung des Arduinos liegt.
 

leo2e

Erfahrener Benutzer
Hallo,
wie sieht den der zu messende Stromverlauf aus, ist das richtiger Gleichstrom? (oder eher was gepulstes ?)
 

fdietsch

Erfahrener Benutzer
Ich probier gerade eine Meßreihe aufzunehmen wobei alle 100ma ein Datensatz erstellt wird.
Leider gelingt mir dies nicht denn die Werte sind halt nicht genau .

i2c impulsdrehzahl spannung strom kraft

28 1110 0 7048 150 0


56 1220 0 7048 321 48


68 1270 0 7048 500 59


84 1330 0 7048 741 104


96 1380 0 7048 996 149


102 1400 0 7048 1151 151


109 1430 0 7048 1363 188


114 1450 0 7048 1521 221


119 1470 0 7048 1776 236


122 1480 0 7048 1919 241


132 1520 0 7048 2178 284


135 1530 0 7048 2312 293


137 1540 0 7048 2538 306


145 1570 0 7048 2710 343


147 1580 0 7048 2905 345


153 1600 0 7048 3145 367


155 1610 0 7048 3348 374


160 1630 0 7048 3565 402


163 1640 0 7048 3820 409


168 1660 0 7048 3936 447


170 1670 0 7048 4124 454


175 1690 0 7048 4461 473


178 1700 0 7048 4590 489


183 1720 0 7048 4861 513


186 1730 0 7048 5033 517


188 1740 0 7048 5249 535


191 1750 0 7048 5416 550


193 1760 0 7048 5511 552


198 1780 0 7048 5897 572


201 1790 0 7048 6062 584


204 1800 0 7048 6186 609


206 1810 0 7048 6469 600


209 1820 0 7048 6522 623


214 1840 0 7048 6957 645


216 1850 0 7048 7092 657


219 1860 0 7048 7362 655


221 1870 0 7048 7617 660


224 1880 0 7048 8041 690


226 1890 0 7048 7890 706


229 1900 0 7048 7912 697
dazu der CODE

Code:
// hier soll die ansteuerung so lang hochgefahren werden bis ein festgelegter stromwert erreicht ist

void Stromstufen() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(" !Achtung Gefahr! ");
  lcd.setCursor(0, 1);// stzt den Kursor an die 8.Stelle in die 1.Zeile(0) 
  lcd.print(" Stromstufen ");
  delay(500); 
  Serial.print("Stromstufentest beginnt");
  Serial.println ("");    
  Serial.print("i2c ");      
  Serial.print("impuls");
  Serial.print("drehzahl ");                       
  Serial.print("spannung ");      
  Serial.print("strom ");
  Serial.print("kraft ");
  Serial.println (" ");
  strom=0;
int stromstufe=100; 


   for (int i = 40;i<= 140;i= i+1){ //Variabele für das Hochsetzen des Gaswertes
    //Servoausgabe***************************************************************************
    Poti = i ;
    servo(); //Servoausgabe    
    delay(20);//** warten bis Motor drehzahl erreicht hat***************************** 
    drehzahl(); //*Drehzahlmessung
    I();//Strommessung
    kraft(); // drucksensor auslesen
    LCD(); //Ausgabe LCD
//************************* Abschaltung *******************************************
  if (Serial.available() > 0) { // send data only when you receive data:
    // read the incoming byte:
    incomingByte = Serial.read();
    if (incomingByte == 120 ){ ///wenn der PC ein "x"sendet Stoppt der Test
      Serial.print("I received: ");
      Serial.println(incomingByte);         
      break;}
    }
//********************************************************************************* 
    
if (stromstufe <= strom){
    monitor ();
    stromstufe= stromstufe+200;}




}
}
Habt ihr eine Idee wie man das realisieren kann. Also ich möchte auf der x Achse den Strom und auf der Y dann den schub.
Umgederht geht natürlich auch daß man alle 100g die Strom+Spannung misst. Wenn man dann gleich die Leistung U*I berechnet werden Schwankungen in der Versorgungsspannung etwas mit ausgeglichen.
 

Bamfax

Erfahrener Benutzer
Vom Prinzip her magst Du's ja so, oder?

fdietsch1.png

Für die 100ma-Schritte würd ich am ehesten Excel interpolieren lassen. Soweit die Idee. Jetzt ist nur die Frage, wie das geht ;) Jemand Excel-Guru?
 

Bamfax

Erfahrener Benutzer
Prima, an meinem ESC kann man jeden Schmarrn einstellen...
Timing: 0° 3.75° 7.5° 11..25° *15° 18.75° 22.5° 26.25°
Motor Type: *Normal Special1 Special2
Motor Load: *Normal Heavy VeryHeavy Auto
Dann kann ich ja mal probieren, was für den 5010-14 am besten ist ;)
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten