Projekte
Egon
Test_Ubatt
main.c
Projekte
Forum
Doku
Öffentliche Projekte
Startseite
Beispielprogramme
Projekte von anderen
Welcome
Username
Passwort
Eingeloggt bleiben
Zugangsdaten vergessen?
Registrieren
Projektverwaltung
⇨ Please choose! ⇦
——————————————————
✎ Create new project...
★ Browse existing projects...
——————————————————
⚬ MotorTest#1
⚬ C Tutorial 8#1
⚬ NIBO2 C Project#1
⚙ C Tutorial 15#1
⚬ 2010_11_18_el_test001#1
Test_Ubatt
main.c
Project details
Compiler settings
Nachrichten
Sie sind nicht eingeloggt.
Neuigkeiten
★
NiboRoboLib 3.6
2017-01-17: Neue Version 3.6
★
NiboRoboLib 3.4.1
2016-04-16: Neue Version 3.4.1
★
Coding Tutorial
2015-11-22: Jetzt auch für den NIBO burger!
Site-Statistic
7426 private projects
385 public projects
16180353 lines compiled
58212 builds
NIBO
@
test_ubatt/main.c [read only]
/* NIBO2 C project */ /*************************************************************************** * * Workspace : Workspace * Project : Messung der Batteriespannung mit verschiedenen Methoden * Directory : D:\Temp\NiboLib\Neu\trans_128\ * File : D:\Temp\NiboLib\Neu\trans_128\batt_02.c * Date : 2013-03-01 * ************************************************************************* * Author: Egon * Version: V 1.0 * NiboLib 2.11 * AVRStudio 4.18 Build 700 * WINAVR 20100110 ************************************************************************* * * Copyright 2013 by (c) Egon_Software * ************************************************************************* * * Messung der Batterispannung mit verschiedenen Methoden * * - Variable_1 und Variable_2: => die Methoden von nicai angewandt * - Variable_3 und Variable_4: => die Methode von BirgerT angewandt * siehe dazu auch: * http://www.roboter.cc/index.php?option=com_nicaiwci&view=project&Itemid=41&projectid=713 * * Anzeige auf dem Display * *****************************************************************************/ /* beim Test am 01.03.2013 ergab sich: Variable_1 => 9,43 Volt Variable_2 => 10,2 Volt Variable_3 => 10,2 Volt 640S Variable_4 => 10,1 Volt 640S => um auf der ganz sicheren Seite zu sein (Batterien sollen ja nicht tiefentladen werden), sollte man Messmethode Variable_1 anwenden und den NIBO abschalten, wenn die Batteriespannung < 8,6 Volt ist => dann muesste die Spg noch ca 9,3 Volt sein... */ #include <nibo/niboconfig.h> #include <nibo/display.h> #include <nibo/gfx.h> #include <nibo/copro.h> #include <nibo/delay.h> #include <nibo/iodefs.h> #include <nibo/bot.h> #include <nibo/spi.h> #include <avr/interrupt.h> #include <stdio.h> /*#include <nibo/pwm.h> */ /*#include <inttypes.h> */ /*#include <string.h> */ /*#include <stdlib.h> */ #define BOT_SUPPLY_LOW_LIMIT 505 /* Wert bei leeren Akkus (Akkuspannung 8V)*/ #define BOT_SUPPLY_TOP_LIMIT 665 /* Wert bei frisch geladenen Akkus (10,4V)*/ #define BOT_SUPPLY_MIDDLE_LIMIT 558 /* Wert bei ca 8,8 Volt */ /* - - - globale Variablen - - - */ float volt; /* Variable_1 fuer die Batteriespannungsmessung */ float batteryVoltage; /* Variable_2 fuer die Batteriespannungsmessung */ int16_t volt_b_1; /* Variable_3 fuer die Batteriespannungsmessung, Integer-Wert - MIDDLE */ int16_t volt_int; /* Variable_4 fuer die Batteriespannungsmessung, Integer-Wert - LOW */ void u_batt(); /*Funktionsrumpf */ /* -- Funktion fuer die Ermittlung der Spannung -- */ void u_batt() { char text[10]=" "; char text_1[]=" "; bot_update(); gfx_move(10, 10); gfx_print_text(" "); /* loesch erst mal... */ gfx_move(10, 10); gfx_print_text("Supply: "); volt = 0.0166 * bot_supply - 1.19; /* 1te Formel Batt_spg */ sprintf(text, "%4.2fV", (double)volt); gfx_print_text(text); /* - Variable_1 - */ gfx_move(10,20); gfx_print_text(" "); /* loesch erst mal... */ gfx_move(10,20); gfx_print_text("Supply: "); batteryVoltage=0.0160*bot_supply; /* 2te Formel Batt_Spg */ sprintf(text,"%04.1hfV",batteryVoltage); gfx_print_text(text); /* - Variable_2 - */ gfx_move(10,30); gfx_print_text(" "); /* loesch erst mal... */ gfx_move(10,30); volt_int = (bot_supply - BOT_SUPPLY_LOW_LIMIT); volt_int = volt_int /6 +80; /* 60 Schritte / V + 8 Volt BOT_SUPPLY_LOW_LIMIT*/ /*Textausgabe deziVolt/10 + "." + deziVolt%10 + "V " + bot_supply + "S "*/ sprintf(text_1, "BATT: %2d.%1dV %3dS ", volt_int/10, volt_int%10, bot_supply); gfx_print_text(text_1); /* - Variable_3 - */ gfx_move(10,40); gfx_print_text(" "); /* loesch erst mal... */ gfx_move(10,40); volt_b_1 = (bot_supply - BOT_SUPPLY_MIDDLE_LIMIT); volt_b_1 = volt_b_1 /6 +88; /* 60 Schritte / V + 8,8 Volt BOT_SUPPL_MIDDLE_LIMIT*/ /*Textausgabe deziVolt/10 + "." + deziVolt%10 + "V " + bot_supply + "S "*/ sprintf(text_1, "BATT: %2d.%1dV %3dS ", volt_b_1/10, volt_b_1%10, bot_supply); gfx_print_text(text_1); /* - Variable_4 - */ } int main() { sei(); /* Interrupts global aktiviert */ bot_init(); /* zuerst bot_init(), dann erst spi_init()!!! */ spi_init(); /* spi_init() erst NACH bot_init()!! */ display_init(); /* Initialisierung des Displays */ gfx_init(); /* Initialisierung des Displays */ while(1) { /* Endlosschleife */ delay(500); /* warte 500ms */ u_batt(); /* Aufruf der Funktion u_batt() */ } return (0); }
Compiler results:
Werbung
Online
agrohimwfu
esperanzadarrow3
sharyl94996859703161