Hallo Dirk .
Vilen dank !! genau da liegt der Hund ahnscheinend begraben . :O)
Frag lieber nicht wozu ich was brauche , ich bin mich gerade in das Basic von Robby am einarbeiten und habe wahrscheindlich noch einige define's drin die es gar nicht braucht .
Das mit den mess werten ist wierklich eine gute feststellung . Ich werde mir dazu noch eine lösung überlegen (naja eben 1 mal messen in ne Variable übertragen den wert und den diese nach den listen werten abfragen .. so in etwa ) .
Ich werde erst mal das Programm nun umschreiben (brocht ja ned viel ) und austesten , wen es in dieser form mal funktioniert , werde ich das mit der 1 mal messung realisieren (guter Vorschlag ! ;O) ) und wen das auch klappt wollte ich das Programm auch auf die Lade ströme erweitern noch so das diese auch via 8 Led's angezeigt werden ..
Ganz toll währe natürlich die Werte auf dem LCD auszu geben aber man kann ja nich gleich "Version 10" auf anhib coden .. ^^
Ich lasse von mir hören wen es geht und ich auch ne neuere, (hoffentlich) funktionierende Version vom Erweiterungs 1 Loader posten kann .
aber so weit sehr gut !!! =D>
cu
edit :
so gesagt getan :
Code:
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'IIIIIIIIII MOBILE ROBOT EVALUATION PROGRAM IIIIIIIIIIII
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
' Erweitertes PROGRAMM ZUR ÜBERWACHUNG DES LADEVORGANGS
' Dieses Programm ist für den Robby RP5 mit erweiterungs Platine.
' Basis Program war das CHARGE TOOL von Robby .
' Frei für benutzung für alle, erweiterung , weitergeben natürlich auch frei :O)
' Aber haftbarkeit für etwelche Schäden werden abgelehnt.
' Status funktional . :O) ( mit hielfe von Dirk @ https://www.roboternetz.de/ )
' Version 0.4
' ACHTUNG:
' Wenn Sie den Akku des Roboters laden, MUSS der Schalter so geschaltet sein,
' dass der Roboter in Betrieb ist !!!
' Andernfalls würde eine zu hohe Ladespannung leicht zur Zerstörung der
' empfindlichen Elektronik führen.
' Starten Sie das Programm BEVOR sie das Ladegerät anstecken, weil
' beim Start eine Calibrierung durchgeführt wird und dabei kein Ladestrom
' fliessen darf.
' ---------------------------------------------------------------------
' FUNKTION DES PROGRAMMS
'----------------------------------------------------------------------
' Der Bezeichner SYS_VOLTS ist der A/D-Wandler, der die Akkuspannung misst.
' Ein Digit entspricht dabei 39,2 mV, der Messbereich geht bis 10 V
' Die Akkuspannung wird als Balkenanzeige mit den Leuchtdioden angezeigt.
' Die Schwellen sind folgendermassen eingestellt:
' LED 1 - blinkend:7,1736 V / LED 1 - leuchend:7,3304 V
' LED 2 - blinkend:7,4872 V / LED 2 - leuchend:7,6440 V
' LED 3 - blinkend:7,8008 V / LED 3 - leuchend:7,9576 V
' LED 4 - blinkend:8,1144 V / LED 4 - leuchend:8,2712 V
' LED 5 - blinkend:8,4280 V / LED 5 - leuchend:8,5848 V
' LED 6 - blinkend:8,6632 V / LED 6 - leuchend:8,7808 V
' LED 7 - blinkend:8,8592 V / LED 7 - leuchend:8,9376 V
' LED 8 - blinkend:8,9768 V / LED 8 - leuchend:9,0160 V
' Wenn alle Leuchtdioden dauernd leuchten, ist die Ladung beendet und
' wird mit dem Beeper gemeldet.
'--------------------------
'------ I/O PORTS ---------
'--------------------------
'- INTERFACE LCD/EXTPORT --
define sdio port[1]
define sclio port[3]
define strobe port[4]
define LSTROBE port[7] ' Hier hab ich erweitert .......
'-- INTERFACE COM/NAV -----
define DATALINE port[1]
define CLOCKLINE port[2]
'--------------------------
'------ SENSORS ---------
'--------------------------
define LIGHT_L ad[7]
define LIGHT_R ad[6]
define SYS_VOLTS ad[3]
define CHRG_CURRENT ad[2]
define SYS_CURRENT ad[1]
define MIC ad[4]
define TOUCH ad[5]
'---------------------------
'------ DRIVE -------------
'---------------------------
define SPEED_L da[1]
define SPEED_R da[2]
define REV_L port[6]
define REV_R port[5]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
'--- INTERFACE BUFFER ----
define LBYTE byte[1]
define HBYTE byte[2]
define SUBCMD byte[3]
'---- OPERATION DATA ------
define EXTPORT byte[4]
define LED1_F bit[29]
define LED2_F bit[30]
define LED3_F bit[31]
define LED4_F bit[32]
define SYSTEM_STATUS byte[5]
define LEDPORT byte[6] ' Hier hab ich erweitert .......
define L1_F bit[41] ' Hier hab ich erweitert .......
define L2_F bit[42] ' Hier hab ich erweitert .......
define L3_F bit[43] ' Hier hab ich erweitert .......
define L4_F bit[44] ' Hier hab ich erweitert .......
define L5_F bit[45] ' Hier hab ich erweitert .......
define L6_F bit[46] ' Hier hab ich erweitert .......
define L7_F bit[47] ' Hier hab ich erweitert .......
define L8_F bit[48] ' Hier hab ich erweitert .......
'--- SYSTEMROUTINEN -----------
define PLM_SLOW &H01C4
define SYSTEM &H01C9
define LED_DRIVE &H01CA ' Hier hab ich erweitert .......
define COMNAV &H0154
'--------------------------
'---- USER MEMORY -------
'--------------------------
define OFFSET byte[6]
'---------- INIT---------------
gosub SUBSYS_PWR_ON:REV_L=off:REV_R=off
beep 368,10,0:pause 50
if SYS_VOLTS>=CHRG_CURRENT then goto WATCH_AKKU
OFFSET=CHRG_CURRENT-SYS_VOLTS
'--------------------------------------------
'--- LADEÜBERWACHUNG FÜR DEN AKKU ---
'--------------------------------------------
#WATCH_AKKU
pause 20
if SYS_VOLTS > 230 then goto LED8ON:gosub LOFF
if SYS_VOLTS > 229 then goto LED8BLINK:gosub LOFF
if SYS_VOLTS > 228 then goto LED7ON:gosub LOFF
if SYS_VOLTS > 226 then goto LED7BLINK:gosub LOFF
if SYS_VOLTS > 224 then goto LED6ON:gosub LOFF
if SYS_VOLTS > 221 then goto LED6BLINK:gosub LOFF
if SYS_VOLTS > 219 then goto LED5ON:gosub LOFF
if SYS_VOLTS > 215 then goto LED5BLINK:gosub LOFF
if SYS_VOLTS > 211 then goto LED4ON:gosub LOFF
if SYS_VOLTS > 207 then goto LED4BLINK:gosub LOFF
if SYS_VOLTS > 203 then goto LED3ON:gosub LOFF
if SYS_VOLTS > 199 then goto LED3BLINK:gosub LOFF
if SYS_VOLTS > 195 then goto LED2ON:gosub LOFF
if SYS_VOLTS > 191 then goto LED2BLINK:gosub LOFF
if SYS_VOLTS > 187 then goto LED1ON:gosub LOFF
if SYS_VOLTS > 183 then goto LED1BLINK:gosub LOFF
goto WATCH_AKKU
#LED8ON
gosub L1ON:gosub L2ON:gosub L3ON:gosub L4ON:gosub L5ON:gosub L6ON:gosub L7ON:gosub L8ON:goto WATCH_AKKU
#LED8BLINK
gosub L1ON:gosub L2ON:gosub L3ON:gosub L4ON:gosub L5ON:gosub L6ON:gosub L7ON:gosub L8ON:pause 20:gosub L8OFF:pause 20:goto WATCH_AKKU
#LED7ON
gosub L8OFF:gosub L1ON:gosub L2ON:gosub L3ON:gosub L4ON:gosub L5ON:gosub L6ON:gosub L7ON:goto WATCH_AKKU
#LED7BLINK
gosub L8OFF:gosub L1ON:gosub L2ON:gosub L3ON:gosub L4ON:gosub L5ON:gosub L6ON:gosub L7ON:pause 20:gosub L7OFF:pause 20:goto WATCH_AKKU
#LED6ON
gosub L8OFF:gosub L7OFF:gosub L1ON:gosub L2ON:gosub L3ON:gosub L4ON:gosub L5ON:gosub L6ON:goto WATCH_AKKU
#LED6BLINK
gosub L8OFF:gosub L7OFF:gosub L1ON:gosub L2ON:gosub L3ON:gosub L4ON:gosub L5ON:gosub L6ON:pause 20:gosub L6OFF:pause 20:goto WATCH_AKKU
#LED5ON
gosub L8OFF:gosub L7OFF:gosub L6OFF:gosub L1ON:gosub L2ON:gosub L3ON:gosub L4ON:gosub L5ON:goto WATCH_AKKU
#LED5BLINK
gosub L8OFF:gosub L7OFF:gosub L6OFF:gosub L1ON:gosub L2ON:gosub L3ON:gosub L4ON:gosub L5ON:pause 20:gosub L5OFF:pause 20:goto WATCH_AKKU
#LED4ON
gosub L8OFF:gosub L7OFF:gosub L6OFF:gosub L5OFF:gosub L1ON:gosub L2ON:gosub L3ON:gosub L4ON:goto WATCH_AKKU
#LED4BLINK
gosub L8OFF:gosub L7OFF:gosub L6OFF:gosub L5OFF:gosub L1ON:gosub L2ON:gosub L3ON:gosub L4ON:pause 20:gosub L4OFF:pause 20:goto WATCH_AKKU
#LED3ON
gosub L8OFF:gosub L7OFF:gosub L6OFF:gosub L5OFF:gosub L4OFF:gosub L1ON:gosub L2ON:gosub L3ON:goto WATCH_AKKU
#LED3BLINK
gosub L8OFF:gosub L7OFF:gosub L6OFF:gosub L5OFF:gosub L4OFF:gosub L1ON:gosub L2ON:gosub L3ON:pause 20:gosub L3OFF:pause 20:goto WATCH_AKKU
#LED2ON
gosub L8OFF:gosub L7OFF:gosub L6OFF:gosub L5OFF:gosub L4OFF:gosub L3OFF:gosub L1ON:gosub L2ON:goto WATCH_AKKU
#LED2BLINK
gosub L8OFF:gosub L7OFF:gosub L6OFF:gosub L5OFF:gosub L4OFF:gosub L3OFF:gosub L1ON:gosub L2ON:pause 20:gosub L2OFF:pause 20:goto WATCH_AKKU
#LED1ON
gosub L8OFF:gosub L7OFF:gosub L6OFF:gosub L5OFF:gosub L4OFF:gosub L3OFF:gosub L2OFF:gosub L1ON:goto WATCH_AKKU
#LED1BLINK
gosub L8OFF:gosub L7OFF:gosub L6OFF:gosub L5OFF:gosub L4OFF:gosub L3OFF:gosub L2OFF:gosub L1ON:pause 20:gosub L1OFF:pause 20:goto WATCH_AKKU
'--- LEDS AUF DER BASIS ERWEITERUNG ------
#L1ON
L1_F=on:goto LEDPORT_WRITE
#L1OFF
L1_F=off :goto LEDPORT_WRITE
#L2ON
L2_F=on:goto LEDPORT_WRITE
#L2OFF
L2_F=off :goto LEDPORT_WRITE
#L3ON
L3_F=on:goto LEDPORT_WRITE
#L3OFF
L3_F=off :goto LEDPORT_WRITE
#L4ON
L4_F=on:goto LEDPORT_WRITE
#L4OFF
L4_F=off :goto LEDPORT_WRITE
#L5ON
L5_F=on:goto LEDPORT_WRITE
#L5OFF
L5_F=off :goto LEDPORT_WRITE
#L6ON
L6_F=on:goto LEDPORT_WRITE
#L6OFF
L6_F=off :goto LEDPORT_WRITE
#L7ON
L7_F=on:goto LEDPORT_WRITE
#L7OFF
L7_F=off :goto LEDPORT_WRITE
#L8ON
L8_F=on:goto LEDPORT_WRITE
#L8OFF
L8_F=off :goto LEDPORT_WRITE
#LOFF
LEDPORT=0:RETURN
#LEDPORT_WRITE
SYS LED_DRIVE:pulse LSTROBE:RETURN
'IIIIII SYSTEMROUTINEN SYSTEM IIIIIIIIIIII
#SUBSYS_PWR_ON
sdio=on:sclio=on:strobe=off:EXTPORT=(EXTPORT and &HFE)or 8
sys SYSTEM:return
#SUBSYS_PWR_OFF
EXTPORT=(EXTPORT and &HF7)or 1:sys SYSTEM
deact sdio:deact sclio:return
'---------COM/NAV GERÄTEREIBER -------------
syscode "p5driv12.s19"
Also so weit so gut !! ^^ *freui* ES funktioniert ! dank dir Dirk :O)
Aber wie ich bemerken muss leuchten nun immer die 4 Standart leds was es ja auch ned bringt , wenigstens ned wen da nicht die lade strom stärke angezeigt wird wenigstens .. ^^ ( dazu auch der OFFSET )
Ansonsten bleibt nur noch zu sagen das man die "p5driv12.s19" braucht um das Program ablaufen lassen zu können . Ich werde mir die Sache wegen den 4 Basis Leds mal angucken .
Brauchen den so Led's viel "strom" ? nicht das eine zu massige Anzeige zu massig Lade strom verbraucht ?!?
Lesezeichen