- fchao-Sinus-Wechselrichter AliExpress         
Seite 3 von 6 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 52

Thema: Tasterdrücke falsch registriert

  1. #21
    Neuer Benutzer Öfters hier
    Registriert seit
    11.02.2006
    Beiträge
    23
    Anzeige

    Praxistest und DIY Projekte
    Im Schaltplan ist er "nur" mit der Masse und danach mir den Schaltern verbunden ich habe also keine besondere Funktion festgestellt....

  2. #22
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.066
    er ist eigentlich zum entstören, da die motoren große schwingungen an die masse leiten. dass der asuro immer noch gelegentliche mätzchen macht, ist dann darauf zurückzuführen. kann man nicht viel machen, dafür ist es eben ein roboter für unter 50 euro...

    die beste möglichkeit ist eine unabhängige spannungsversorgung für prozessor und motoren. aber eben recht kompliziert auf dem kleinen board =)
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  3. #23
    Neuer Benutzer Öfters hier
    Registriert seit
    24.11.2006
    Beiträge
    25
    Hm, auch ne möglichkeit.
    Ich würd aber eher drauf tippen das der Kondensator zum entprellen da ist, beim Abfragen der Tastenzustände sollte das wirklich egal sein...
    Gute Lösung, gefällt mir.
    Den Thread sollte man vorsorglich als wichtig markieren.

  4. #24
    Benutzer Stammmitglied
    Registriert seit
    12.11.2006
    Ort
    SH
    Alter
    38
    Beiträge
    69
    Hi, ich habe auch den C7 entfernt und hatte auf den ersten Blick weniger Probleme, da der AD-Wandler jetzt nicht mehr von C7 gestört wurde. Ich bin auch zu dem Schluss gekommen, dass der Kondensator C7 mit seinen 4,7nF zum Entprellen da ist. Dem habe ich jetzt aber im Programm entgegen gewirkt in dem ich eine kurze Sleep-Funktion eingebaut habe.
    Code:
    #include "asuro.h"
    
    int main(void)
    {
    int i;
    	Init();
    while(1)
    {
    	if (PollSwitch()>0) 		// wenn einer der Taster betätigt
    	{							// dann...
    		StatusLED (RED);
    		MotorDir(RWD,RWD);
    		MotorSpeed(100,150);	//rückwärts wenden(mit großem Wendekreis)
    		for(i=0;i<1500;i++)	// 3s
    		{Sleep(144);}
    	}
    	else						//ansonsten...
    	{
    		MotorDir(FWD,FWD);
    		MotorSpeed(120,120);	//geradeaus fahren
    		StatusLED (GREEN);
    	}
    	for(i=0;i<10;i++)			// 30ms warten, zum Entprellen, damit er nicht durcheinander kommt
    		Sleep(216);
    }
    return(0);
    }
    Jetzt habe ich aber durch das Entfernen des Kondensators ein neues Problem. Wenn der Asuro gewendet hat und dann wieder in den Vorwärtsmodus übergeht, schalten ja die Motoren von Rückwärtslauf auf Vorwärtslauf. Dabei entstehen bei meinem Asuro wahrscheinlich so hohe Spannungsschwankungen, dass der AD-Wandler(empfindlich wie er ist ) wieder denkt, dass einer der Taster angesprungen ist.
    Und er ab und zu mal nach dem einen Wendekreis nochmal einen Zweiten zieht.
    Begründet hat das Damaltor ja eben schon:
    Zitat Zitat von damaltor
    er ist eigentlich zum entstören, da die motoren große schwingungen an die masse leiten
    Ich versuche als nächstes mal einen Kondensator mit einer geringeren Kapazität, so vielleicht 1nF als C7 zu benutzen.
    Dann entstört er die Motoren hoffentlich ausreichend und haut hoffentlich beim Entladen keine zu hohe Spannung raus, die der AD-Wandler wieder fehlinterpretiert.
    Allerdings habe ich mir so einen Kondensator noch nicht besorgt.

    Habt ihr vielleicht noch ne Idee, ob es mit dieser Motorstop funktion vielleicht gehen könnte. Da werden doch glaub ich die Spulen kurz geschlossen um zu bremsen. Vielleicht ist dadurch ja auch keine so hohe Spannungsschwankung beim Umschalten den Drehrichtung?!

  5. #25
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.066
    ddas wäre einen versuch wert. probier mal:

    MotorSpeed(0,0);
    MotorDir(Break,Break); //Das englische wort für bremse heisst zwar brake... aber egal =)
    Sleep(216);
    MotorDir(FWD,FWD);
    MotorSpeed(xxx,xxx)

    und schreib was passiert...

    (*akkuladegerät sucht*)
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  6. #26
    Benutzer Stammmitglied
    Registriert seit
    12.11.2006
    Ort
    SH
    Alter
    38
    Beiträge
    69
    Moin moin,
    Habe deinen Teil mal mit eingebaut und jetzt macht er genau das was er soll. Aber den Kondensator werde ich trotzdem wieder einbauen, wenn ich einen passenden gefunden habe.
    Code:
    #include "asuro.h"
    
    int main(void)
    {
    int i;
    	Init();
    while(1)
    {
    	if (PollSwitch()>0) 		// wenn einer der Taster betätigt
    	{							// dann...
    		StatusLED (RED);
    		MotorDir(RWD,RWD);
    		MotorSpeed(100,150);	//rückwärts wenden(mit großem Wendekreis)
    		for(i=0;i<1500;i++)	// 3s
    		{Sleep(144);}
    	}
    	else						//ansonsten...
    	{
    		MotorSpeed(0,0); 
    		MotorDir(BREAK,BREAK); 	//Das englische wort für bremse heisst zwar brake... aber egal =) 
    		Sleep(216); 			//3ms 
    		MotorDir(FWD,FWD);
    		MotorSpeed(120,120);	//geradeaus fahren
    		StatusLED (GREEN);
    	}
    	for(i=0;i<10;i++)			// 30ms warten, damit er nicht durcheinander kommt
    		Sleep(216);
    }
    return(0);
    }
    Finde das Forum echt gut hier, da kann man viel lernen.

  7. #27
    Neuer Benutzer Öfters hier
    Registriert seit
    11.02.2006
    Beiträge
    23
    Bei mir funktioniert das letzte Problem überhaupt nicht der Asuro fährt nur rückwärts im Kreis und nach ca 5 Runden fängt die Status-LED an gelb zu flackern was bedeutet das denn???

  8. #28
    Benutzer Stammmitglied
    Registriert seit
    12.11.2006
    Ort
    SH
    Alter
    38
    Beiträge
    69
    gelb heißt ja grün und rot schnell im Wechsel.
    Hab erst gedacht, dass er bei dir ständig zwischen if und else hin und her wechselt. Aber das kann ja nicht sein, da er sobald er rot leuchtet, dies ja genau 3 Sekunden machen würde.
    -->
    for(i=0;i<1500;i++) // 3s
    {Sleep(144);}
    Ich weiß nicht, vielleicht heißt das ja auch das die Batterie schwach ist oder so??? Meine waren noch nicht alle, zeigt Asuro das eigentlich an, wenn er nicht mehr genug Spannung bekommt?

  9. #29
    Neuer Benutzer Öfters hier
    Registriert seit
    11.02.2006
    Beiträge
    23
    Ich habe niegelnagelneue Batterien drin.
    Bei mir machte er nichts besonderes ausser dass er nur noch seeeeeeeeeehr langsam fuhr obwohl fullspeed eingeschaltet war.

  10. #30
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.066
    das könnte verschiedene bedeutungen haben. vielleicht einen fehler im programmcode, gelb ist tatsächlich nur rot und grün. nochmal genau prüfen (kann mich nach neujahr mal ransetzen, hab aber jetzt keine zeit =)

    oder: alte bzw billige batterien. darauf reagiert der asuro extrem alergisch. allerdings findet die überprüfung eigentlich nur im bootloader statt. halt mal den transceiver drüber: wenn der asuro VLVLVL sendet, dann sind die batterien leer (Voltage Low)

    oder: Akkus und kein jumper gesetzt. Der Jumper MUSS bei akkus rein und MUSS bei batterien raus.

    oder irgendwo ein kriechstrom, der den motoren den strom klaut. lötstellen checken =)
    Read... or die.
    ff.mud.de:7600
    Bild hier  

Seite 3 von 6 ErsteErste 12345 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test