Naja, man kann eh über den Sinn streiten sich ununterbrochen den Status der Akkus anzeigen zu lassen! Da wüsste ich mit den LEDs besseres anzufangen.
Man sollte sich auf ein bestimmtes Signal hin den Status anzeigen lassen können.
hm so mit bliken und so? also ich fand das fürs erste programm garnicht allzu übel *grins* aber stimmt mit blinken ist natürlich stromsparender - hatte ich auch schon überlegt...
Naja, man kann eh über den Sinn streiten sich ununterbrochen den Status der Akkus anzeigen zu lassen! Da wüsste ich mit den LEDs besseres anzufangen.
Man sollte sich auf ein bestimmtes Signal hin den Status anzeigen lassen können.
Ist auch was wahres drann man könnte ja z.B. nur die beiden grünen LEDs für den akku verwenden..
vielpower=beide an
weniger=eine
weniger=beide blinken
laden=eine blinkt
Kannst es auch mit einer machen.
voll = durchgehend leuchten
halb voll = schnelles blinken
fast leer = langsames blinken
Es gibt da zig Möglichkeiten!
jetzt erstmal voll laden ! das auf jedenfall wichtig!
Hallo
Nur keine Aufregung, ich wollte euch nur etwas inspirieren.
Da hab ich wohl was überlesen, ich sehe nur die Stelle mit max. Spannung geteilt durch 6, bei 8,4V wären das alle 2,4V eine LED, aber irgendwo bei 6,nochwas wird der Spannungsregler aussteigen und der Mege32 bleibt dann wohl stehen. Oder setLEDs-Werte rechtsshiftend gn-gn-rt-gn-gn-rt aber z.B kein Blinken bei absolutem Minimum um möglichst lange eine Anzeige zu haben?Hab ich doch schon am Anfang geschrieben...
Mit "eure aktuelle Version" meinte ich eure Wertereihe 1000-900-..-550, die gemischte rot/grün-Anzeige und z.B. das fehlende if - else in den Abfragen, denn wenn ein Wert erkannt wurde, müssen die anderen nicht mehr geprüft werden.
Wie sinnvoll oder eben sinnlos solch eine Anzeige ist, ist eigentlich nicht so wichtig. Entscheidend ist nach meiner Meinung die Idee und der anschließende Versuch, die Idee möglichst gut umzusetzen. Bei solchen Postings sollte man aber eh besser auf ignorieren schalten:
Bin mal gespannt, was nun aus der Idee wird.hast ja recht ich wollts mal mit n bischen Faulhiet versuchen *grins*
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hier is niemand aufgeregtNur keine Aufregung, ich wollte euch nur etwas inspirieren.
Ganz deiner Meinung.Wie sinnvoll oder eben sinnlos solch eine Anzeige ist, ist eigentlich nicht so wichtig. Entscheidend ist nach meiner Meinung die Idee und der anschließende Versuch, die Idee möglichst gut umzusetzen. Bei solchen Postings sollte man aber eh besser auf ignorieren schalten:
Am schönsten isses die Spannung per Tastendruck auf einem LCD auszugeben![]()
jaa ihr profis habe noch keine taste und LCd auch nicht!
*ist nicht böse gemient*
also ich bin grade dabei das Blinken zu schreiben, doch bleibe ich dabei hängen :
ich weiss das es so nicht richtig ist... Aber wie wäre es richtig, habe dafür kein beispiel gefunden, oder übersehen...Code:#include "RP6RobotBaseLib.h" int main(void) { initRobotBase(); startStopwatch1(); while(true) { if(getStopwatch1() > 300) { writeString_P("\nADC Akku: "); writeInteger(adcBat, DEC); writeChar('\n'); if(adcBat > 900) setLEDs(0b001001); if(adcBat < 901 && adcBat > 700) statusLEDs.LED4 = !statusLEDs.LED4; statusLEDs.LED1 = !statusLEDs.LED1; updateStatusLEDs(); setStopwatch1(0); } task_ADC(); } return 0; }
@radbruch Wie müsste das mit der if - else denn aus sehen so in etwa ?
Danke für die Hilfe !Code:#include "RP6RobotBaseLib.h" int main(void) { initRobotBase(); startStopwatch1(); while(true) { if(getStopwatch1() > 300) { writeString_P("\nADC Akku: "); writeInteger(adcBat, DEC); writeChar('\n'); if(adcBat >1000) setLEDs(0b001001); else if(adcBat < 1001 && adcBat > 900) setLEDs(0b011111); else if(adcBat < 901 && adcBat > 800) setLEDs(0b001111); else if(adcBat < 801 && adcBat > 700) setLEDs(0b000111); else if(adcBat < 701 && adcBat > 600) setLEDs(0b000011); else if(adcBat < 601) setLEDs(0b000001); setStopwatch1(0); } task_ADC(); } return 0; }
Hallo
Na, dass sieht ja schon mal vielversprechend aus. Wenn du mehrere Anweisungen von dem IF abhängig machen willst, mußt du Klammern verwenden:
Das IF ... ELSE hast du richtig eingebaut.Code:if(adcBat > 900) setLEDs(0b001001); if(adcBat < 901 && adcBat > 700) { statusLEDs.LED4 = !statusLEDs.LED4; statusLEDs.LED1 = !statusLEDs.LED1; updateStatusLEDs(); } setStopwatch1(0);
Die Bumbers sind auch Taster...
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Ist ein LDO (Low Dropout Regulator) - die Regelung auf 5V funktioniert auch noch bei 5.5V Batteriespannung. Dann sind die Batterien aber wirklich völlig am EndeZitat von radbruch
Weniger als 5.25V kann der Batteriesensor übrigens nicht messen weil dann Referenzspannung = Eingangsspannung ist.
Laufen tut der Controller aber auch bei unter 5V noch. Erst bei 2.7V wird das Reset Signal gesetzt.
So ist der Roboter relativ resistent gegen Einbrüche der Versorgungsspannung unterhalb von 5V - z.B. bei schwachen Akkus und stark belasteten Motoren.
MfG,
SlyD
Lesezeichen