RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBO 2 Spannungsanzeige

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 7433 private projects
  • 378 public projects
  • 16180353 lines compiled
  • 58212 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: Spannungsanzeige

Spannungsanzeige 11 Jahre 2 Monate her #2204

Hallo zusammen,

beim Testen der verschiedenen Projekte ist mir aufgefallen, dass dort wo die Spannung angezeigt wird, die Programme sich unterscheiden,
d.h. die Anzeige der einzelnen Programme schwanken bei mir sogar bis zu 1 Volt. (Mignon-Akkus: NiMH 1,2V 2.700mAh)
Liegt es u.a. daran, dass unterschiedlicher Code verwendet wird?
Habe Akkus geladen und direkt danach die Programme nacheinander getestet.


In der bot.h steht:

/*!
* Versorgungsspannung des Roboters. Angabe unkorrigiert,
* als Wert zwischen 0 und 1023
* Grobe Umrechnung: Ubatt = 0.0166 * bot_supply - 1.19;
*/
extern uint16_t bot_supply;


Kann mir bitte jemand erklären wie dieser code funktioniert: "float volt = 0.0166 * bot_supply - 1.19;"

Danke.

Gruß -bergquelle-
Nibo2+GFX+UCOM-IR2-X
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Spannungsanzeige 11 Jahre 2 Monate her #2205

Hallo "bergquelle",

an einem bösen Tag würde ich antworten: "Genau wie es da steht" :-)

Aber ich habe keinen bösen Tag, daher mache ich den Versuch einer Erklärung. Falls ich "Müll" geschrieben habe lasse ich mich gerne eines Besseren belehren ...

Bei der für den ADC verwendeten Referenzspannung von 5V (ca. …) ergibt sich ein bot_supply-Wert von max. 1023 (Messergebnis des ADC mit 10 Bit Auflösung; entspricht 1024 mögliche Werte)

Spannung der Spannungsquelle (8,x bis 1x,x V) wird über einen Spannungsteiler (10k – gegen Versorgungsspannung - und 4,7k – gegen GND - Widerstand) an den ADC geführt.

Bei z.B. 10 V Versorgungsspannung ermittelt der ADC ((1024/5)*((10/14,7)*4,7)) = ca. 655 Einheiten
(Der ADC rechnet natürlich nicht, er misst die Spannung und setzt diese in einen Wert um. Wie das genau geht kann in div. Tutorials nachgelesen werden)

655 * 0,0166 = 10,873 – 1,19 = 9,683 O.K., passt nicht ganz kannst Du aber gerne selbst anpassen. Warum 0,0166 und 1,19 in diev. Beispielen zur Berechnung genutzt werden kann sicher "Workwind" erklären.

Es muss berücksichtigt werden, dass die ermittelte Spannung je nach Toleranz / Ausprägung der Widerstände des Spannungsteilers und der Qualität der Referenzspannung (ca. 5 V über Spannungsregler) sowie andere Einflussfaktoren (Verbraucher wie Motor, LCD-Beleuchtung, IR,
etc aktiv – ggf. Einflüsse von anderen PINs auf den Messpin - …) schon ein wenig von Nibo zu Nibo und von Messung zu Messung schwanken kann.

Übrigens wäre es extrem praktisch nicht von "Programmen" zu schreiben sondern diese direkt zu benennen oder auch zusätzlich die ermittelten Werte (und Programmzeilen) dazuzustellen.

Gruß
Dieter
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Spannungsanzeige 11 Jahre 2 Monate her #2206

  • workwind
  • workwinds Avatar
  • OFFLINE
  • Administrator
  • Beiträge: 573
Hallo jim_quakenbush,
plus 400 mV an der Schottky - Diode D1 ;)
=> 10.083 V

Gruß,
workwind
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Spannungsanzeige 11 Jahre 2 Monate her #2207

Hallo Dieter, erstmal Danke für die ausführliche Erklärung, die ich noch als Anfänger verdauen muss, d.h. werde noch viel lesen/lernen müssen. Ursprünglich wollte ich ja Programme zitieren, aber ich muss erstmal lernen die Basics zu verstehen.

Warum einmal 0.0166 oder 0.0154 ?

Beispiel Codes:
nf_generator_sehr_einfach - von Achim S.:

void nibo_batterie()
{
bot_update(); // Holt aktuelle Werte vom Bot
char text[20]="
";
float volt = 0.0154 * bot_supply;
sprintf(text, "%2.1f V ", (double)volt);
gfx_move(74, 33); // Angabe Position
gfx_print_text(text); // Ausgabe Text
}



Code für Fortgeschrittene.
nibo2_hardwarecheck - von Birger Töpelmann

void print_volts() {
// Spannungsanzeige mit Semi Fliesskomma
/* Bei Spannung < 8 V wird aufgrund Überlauf zuviel angezeigt
uint8_t volt = (bot_supply - BOT_SUPPLY_LOW_LIMIT); // Low Limit bei 8,0V
volt = volt /6 +80; // 60 Schritte / V + 8 Volt
*/
// 05.05.12 Begrenzung der Anzeige
int8_t volt = (bot_supply - BOT_SUPPLY_LOW_LIMIT); // Low Limit bei 8,0V
if(volt >= 0) {
volt = volt /6 +80; // 60 Schritte / V + 8 Volt
sprintf(text, "BATT: %2d.%1dV %3dS ", volt/10, volt%10, bot_supply);
gfx_move(1, 12);
gfx_print_text(text);
}
else {
gfx_move(1, 12);
gfx_print_text("AKKU LEER oder DEFEKT");
}
Nibo2+GFX+UCOM-IR2-X
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Spannungsanzeige 11 Jahre 2 Monate her #2208

  • achim S.
  • achim S.s Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 441
Hallo
habe die Formel freihändig angepasst, einfach mit einem Voltmeter die Spannung an den Akkus gemessen und solange an der Formel gedreht, bis es stimmt. Es gibt auch ein Prg von mir das die Messung einmal nach nicai und einmal nach Netz durchführt. Kannst beider Anzeigen vergleichen.
achim
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Spannungsanzeige 11 Jahre 2 Monate her #2210

Hallo bergquelle,

Du siehst - es gibt verschiedene Methoden sich der "wahren Voltzahl" zu nähern. Achim geht den praktischen Weg und passt
den Multiplikator der Messung per Multimeter an. Würde ich auch so machen, wenn ich Wert auf korrekte Volt-Angaben legen
würde (wegen der Toleranzen etc.).

BirgerT hat sich einen eigenen Faktor ermittelt (den ich so nicht ganz verstehe - muss ich wohl mal ins Programm schauen)
um damit nahe an das gewünschte Ergebnis zu kommen.

@"workwind": Ja, die Diode habe ich nicht gesehen, da sich diese in der Stromversorgung auf Blatt 3 der Schaltpläne "versteckt".
Ich bin aber auch nur "experimenteller Hobby-Elektroniker" und kann einfache Schaltpläne einigermassen nachvollziehen,
aber keine großartigen Berechnungen anstellen.

Aber korrekt, auch an der Diode fällt Spannung ab, die berücksichtigt werden muss. Ist natürlich bitter, da der Widerstand der
Diode (soweit mir bekannt) variabel (je nach Stromfluss - uiuiui, hier komme ich schon ins Schwitzen :-)) ist und man daher nur einen näherungsweisen (400 mV lt. workwind) Spannungsabfall mit einbeziehen kann.

Im Beispiel (bei idealen Widerstandwerten) wäre dann der ermittelte Wert am ADC (jetzt brauche ich AXE :-))

((1024/5)*(((10-0,4)/14,7)*4,7)) = ca. 629 Einheiten

Nun mit der Origina-Nibo-Formel weitergerechnet komme ich auf 629 * 0,0166 - 1,19 = 9,2514 V

Mit Achims Formel komme ich auf 629 * 0,0154 = 9,6866 V

UND BIN VERWIRRT - WO LIEGT MEIN DENKFEHLER?
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Ladezeit der Seite: 0.052 Sekunden

Werbung