-
Werbung
-
Neuer Benutzer
Öfters hier
ich weis nicht ob das normal ist aber immer wenn ich den asuro ausschalte, egal was für ein programm drauf ist, dann dreht sich der servo ein stück
-
Neuer Benutzer
Öfters hier
okay also ich hab jez mal n programm geschrieben un des funktioniert sogar halbwegs =D
#include <asuro.h>
#include <myasuro.h>
int main(void)
{
Init();
int x;
for(x=0; x<15; x++)
{
BackLED(OFF,ON);
Sleep(0.125);
BackLED(OFF,OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
BackLED(OFF,ON);
Sleep(0.125);
BackLED(OFF,OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
}
while(1);
return 0;
}
die frequenz habe ich mir jez mal ausgerechnet und mir dadraus die zeit für die pausen ausgerechnet. soweit geht eig alles
also bei meim asuro läuft des programm so ab: es wird gestartet dann fängt der servo an er dreht sich fast um 90° etwas weniger vielleicht 80° oder so aber dann ist schluss weil der greifer+ das objekt noch zu schwer sind da werd ich noch etwas dran verbessern. mit nem leichteren objekt gehts aber dann hab ich das problem, dass der servo sofort nachlässt wenn in meinem programm x>15 ist. kann man den auch irgendwie feststellen dass er das gewicht hält? oder hängt das auch mit dem gewicht zusammen? das problem dass er sich nochmal um ein stück drehen will, wenn man ihn ausmacht ist immernoch da
-
Moderator
Robotik Visionär
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
-
Neuer Benutzer
Öfters hier
hat mich ao gwundert xD ich hab die frequenz so ausgerechnet: Periodendauer =T Frequenz= f un dann mit der Formel T=1/f un mein prozessor hat 8000000Hz also muss ich 1/8000000= 0,000125 rechnen des isch dann T un weil T in sekunden angeben isch hab ich *1000 gmacht damit ich die ms rauskrieg un dann komm raus: T=0,125
-
Moderator
Robotik Visionär
lol
Vergiss deine "Berechnungen". 0.irgendwas als Parameter für Sleep() mag der Kompiler ganz sicher nicht. Kannst du das fehlerfrei kompilieren?
Edit: Huch, das kann man fehlerfrei kompilieren. Fraglich ist natürlch, WAS da kompiliert wird. 0.125 ist ganz sicher kein ganzzahliger Parameter für Sleep()
Geändert von radbruch (02.06.2012 um 19:10 Uhr)
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
-
Neuer Benutzer
Öfters hier
wundert mich auch aber solangs funktioniert ;D wie kann ich eigentlich den servo auf einer bestimmten position halten? meiner geht immer wieder zurück, sobald der teil im Programm abgelaufen ist und ich will ihn eigentlich für eine bestimmte zeit in dieser stellung lassen. er soll einen becher packen+hochheben und mit ihm losfahren aber sobald die frequenz beendet ist entlastet sich mein servo soweit, dass der becher abgestellt ist und der greifer leicht geöffnet ist wie kann ich das ändern?
-
Neuer Benutzer
Öfters hier
ich glaube dass ich dem servo solange strom geben muss wie er etwas halten soll kann das sein? un ich habe gleich noch eine frage ich weis nicht wie genau das funktioniert also ich habe ja mein programmabschnitt, dass er zupackt so geschrieben:
for(x=0; x<90; x++) //*for-Schleife um den Greifer zupacken zu lassen*//
{
StatusLED(RED); //*Rückmeldung Gegenstand gefunden*//
BackLED(OFF,ON); //*Start der Frequenz um den Servo an zu steuern: Greifer macht zu!*//
Sleep(0.125);
BackLED(OFF,OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
BackLED(OFF,ON);
Sleep(0.125);
BackLED(OFF,OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
}
muss ich damit er wieder öffnet einfach negative zahlen verwenden also:
for(x=0; x<90; x++) //*for-Schleife um den Greifer zupacken zu lassen*//
{
StatusLED(RED); //*Rückmeldung Gegenstand gefunden*//
BackLED(OFF,ON); //*Start der Frequenz um den Servo an zu steuern: Greifer macht zu!*//
Sleep(-0.125);
BackLED(OFF,OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
BackLED(OFF,ON);
Sleep(-0.125);
BackLED(OFF,OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
}
oder wie funktioniert das? sry wenn ich nerven sollte aber ich muss bald meine dokumentation von dem projekt abgeben =D
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Werbung
Lesezeichen