-
Hallo Leute,
also meine Akkus und die neuen Batteriefächer sind angekommen und auch schon eingebaut und aufgeladen.
Das Problem ist nur es macht absolut keinen Unterscheid! ](*,)
Langsam bin ich total am verzweifeln.
Alle aber auch ausnahmslos ALLE beispielprogramme laufen aber sobald ich nur eine zahl i-wo änder dauerts 2 mins und der bot bewegt sich nicht mehr.
Was ich damit sagen will ist, er tut so als wenn die Akkus leer sind.
Sobald ich aber wieder die beispiele in den speicher lade läuft der bot mit den vermeindlich leeren akkus ohne probleme. :-s
Jetzt fährt er schön über 3 stunden durch den raum mit dem acs beispiel ohne ermüdung.
Was kann das jetzt noch sein?
Soll ich einfach mal einen neuen L293D bestellen? :-k
Also nochmal zur erinnerung Kriechströme haben wir Ausgeschlossen.
Defekte Lötstellen auch.
Die Stromversorgung ist absolut in Ordnung und zu viel Strom ziehen tut er auch nicht.
Die Motoren verichten perfekt ihren dienst also was zum hänker fehlt?
Es kann doch nciht sein das sobald ich die Beispielprogramme verändere der Bot nicht mehr rennt...
Hoffe ihr habt noch ne idee.
Bis dahin danke euch und Gruß...
-
Jetzt gibt es ja eine Fallunterscheidung zwischen dem Programm bei dem er lange läuft und dem Programm bei dem er bald schlapp macht.
Man sollte dann in beiden Fällen die Stromaufnahme messen.
Wenn ein Gatter der Ansteuerung des Treibers etwas hochohmig (oder langsam) geworden ist dann könnte der Querstrom durch den Motortreiber vom PWM Wert abhängen.
-
Hi,
teste mal mein ACS Programm ob das ohne Probleme läuft oder die gleichen "Ermüdungserscheinungen" zeigt.
Code:
'*******************************************************************************
'Projektname: Pfadfinder.cbas
'Benötigte Libs´s: IntFunc_Lib.cc
'Routinen: Pfadfinder.cbas,PRO-BOT128_Lib.cbas
'Autor: ExMachina
'Datum: 16.05.2009
'
'Funktion: PRO-BOT128 fährt umher, und weicht dabei Hindernissen über
' das ACS (Anti Collisions System) aus.
' Dabei nutzt der Roboter die Radencoder um möglichst gerade
' aus zu fahren. Die ACS Einstellungen werden über
' ACS_INIT() geändert/ 1-20 / 1 ist nah / 20 ist fern /
'*******************************************************************************
#define BLR 16
#define BLL 17
#define FLR 18
#define FLL 19
Sub main() 'Hauptprogramm
PRO_BOT128_INIT() 'PRO BOT128 wird initialisiert
DRIVE_INIT() 'Motor wird initialisiert
LED_Init() 'LED's werden initialisiert
ACS_INIT(3) 'Anti Collision Sytem (ACS) wird initialisiert (1-20,1=geringe Messweite 20=große Messweite)
AbsDelay(1000) 'wartet 1 Sekunde
ENC_LED_ON() 'Radencoder wird initialisiert
DRIVE_ON() 'Motor wird aktiviert
Do While True
Check_Left() 'ACS check links
Check_Right() 'ACS check rechts
If ACS_LEFT() = 1 And ACS_RIGHT() = 1 Then Forward() : End If 'kein Hinderniss
If ACS_LEFT() = 0 And ACS_RIGHT() = 0 Then Backward() : End If 'Hinderniss vorn 'Endlosschleife
If ACS_LEFT() = 1 And ACS_RIGHT() = 0 Then Turn_Left() : End If 'Hindeniss rechts
If ACS_LEFT() = 0 And ACS_RIGHT() = 1 Then Turn_Right() : End If 'Hinderniss links
End While 'Ende Endlosschleife
End Sub 'Ende Hauptprogramm
Sub LED_Init()
Port_DataDirBit(FLL,PORT_OUT) 'Port PC.0 = Output
Port_DataDirBit(FLR,PORT_OUT) 'Port PC.1 = Output
Port_DataDirBit(BLL,PORT_OUT) 'Port PC.2 = Output
Port_DataDirBit(BLR,PORT_OUT) 'Port PC.3 = Output
Port_Write(2,&H0) 'alle LED's an
AbsDelay(500) 'wartet 0,5 Sekunden
Port_Write(2,&H1F) 'alle LED's aus
AbsDelay(500) 'wartet 0,5 Sekunden
Port_Write(2,&H0) 'alle LED's an
AbsDelay(500) 'wartet 0,5 Sekunden
Port_Write(2,&H1F) 'alle LED's aus
End Sub
Sub Check_Left()
ACS_LEFT() 'ACS check links
AbsDelay(5)
End Sub
Sub Check_Right()
ACS_RIGHT() 'ACS check rechts
AbsDelay(5)
End Sub
Sub Forward()
FLL_OFF() 'LED links aus
FLR_OFF() 'LED rechts aus
BLL_OFF() 'LED links aus
BLR_OFF() 'LED rechts aus
DRIVE_FORWARD(10) 'geregelte Vorwärtsfahrt (Speed 1-10)
End Sub
Sub Backward()
FLL_ON() 'LED links an 'vorne
FLR_ON() 'LED rechts an
BLL_ON() 'LED links an 'hinten
BLR_ON() 'LED rechts an
GO_TURN(0,-60,255) 'rechts Drehung (0cm,-60 Grad Clockwise,Speed 255)
End Sub
Sub Turn_Left()
FLL_OFF() 'LED links aus 'vorne
FLR_ON() 'LED rechts an
BLL_OFF() 'LED links aus 'hinten
BLR_ON() 'LED rechts an
GO_TURN(0,-45,255) 'links Drehung (0cm,-45 Grad Clockwise, Speed 255)
End Sub
Sub Turn_Right()
FLL_ON() 'LED links an 'vorne
FLR_OFF() 'LED rechts aus
BLL_ON() 'LED links an 'hinten
BLR_OFF() 'LED rechts aus
GO_TURN(0,45,255) 'rechts Drehung (0cm,45 Grad Counter Clockwise, Speed 255)
End Sub
-
Hallo zusammen,
also die Schaltung an sich mit den L239D ist schon richtig. Im Pro-Bot128 Schaltplan ist jedoch ein kleiner Fehler, aber nicht im Layout.
Siehe Appl.-Notes Texas Instrument!
Wichtig ist das ein L293 D im Sockel sitzt, da der normale L293 keine internen Dioden zur Unterdrückung der Induktionsspannung besitzt.
Aber überprüfe-, oder tausche doch mal die beiden ICs CD4093 und L293D aus. Bedenke auch das bei einen PWM Tastverhältnis von 1:1 also 50% der Stromverbrauch am größten ist! Also in der Software bis auf 50% fahren (Bremsen) und bei Stillstand des Roboters die Enable Leitung des L239D auf Low (Treiber "Aus").
Grüße Ulli
-
Hallo Leute,
zum ersten mal hab ich gute Nachrichten.
So wie es aussieht hab ich das Problem gelöst.
Es ist mir fast zu peinlich es zu sagen aber es lag an einem Falschen Timer... ](*,)
Ich habe Damit angefangen meine Programme Modular aufzubauen das heisst ich hab immer eine Funktion hinzugefügt und dabei ist mir dann aufgefallen das die ausfälle immer dann auftretten wenn ich versucht habe die forderen LEDs wärend der fahrt blinken zu lassen. :-k
Ich tat das ganze mit follgendem Code:
Code:
void FlashF(void)
{
FLL_ON();
FLR_ON();
AbsDelay(500);
FLL_OFF();
FLR_OFF();
AbsDelay(500);
}
Als ich dann aber AbsDelay() durch DELAY_MS() ersetzt habe hat der Bot keinen fehler mehr gehabt.
Damit trifft mal wieder zu das Hardware immer nur so blöd ist wie der der sie Programmiert oder Bedient. O:)
Ich kann mir zwar absolut nicht erklären warum er die fehler gemacht hat wenn ich AbsDelay() benutzt habe aber wie gesagt nun sind die fehler weg und ich bin heilfroh.
Jetzt möchte ich euch danke sagen für eure Hilfe und schliesslich hatte es doch was gutes, der Bot hat seine erste Modifikation (die Akkus) und rennt damit stunden durch.
Also bis zum nächsten fehler.
Gruß
-
So ein Fehler wird dir glaube ich nicht mehr passieren :cheesy: