Planete Sciences

forums de Planete Sciences
It is currently Mon 20 May 2013, 02:02

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 6 posts ] 
Author Message
PostPosted: Fri 03 Aug 2012, 18:57 
Offline

Joined: Wed 04 Jul 2012, 00:32
Posts: 7
salut,
voilà le code en MikroPascal qui fait tourner un servo 360°.
Ma question est comment faire tourner le servo moteur en continu.
voilà le code :
Code:
program Servo;
var NombreTour : byte;

procedure Avancer360;
 var Temps : byte;
 begin
  Temps := 0;
  TMR0 := 0;
  {On maintient l'impulsion à l'état haut pendant 2ms.
  Fréquence d'oscillation = 4 MHz
  donc on aura : 4000 / 4 = 1000000 cycle par seconde.
  Soit 1 cycle chaque 0,0000001 seconde (1 us).
  Pour un presclar = 8, on a une incrémentation du timer
  chaque 8 us (8 * 1 us).
  Initialement le timer (TMR0) est à 0. Lorsque il atteind
  50, 5 fois, nous avons 2000 us (2 ms)
  50*8*5=2000 us}

  PORTA.RA0 := 1;
  while(Temps < 5) do
   begin
    if (TMR0 = 50) then
                       begin
                       Temps := Temps + 1;
                       TMR0 := 0;
                       end;
   end;

  {On maintient l'impulsion à l'état bas pendant 18 ms.
  Fréquence d'oscillation = 4 MHz
  donc on aura : 4000 / 4 = 1000000 cycle par seconde.
  Soit 1 cycle chaque 0,0000001 seconde (1 us).
  Pour un presclar = 8, on a une incrémentation du timer
  chaque 8 us (8 * 1 us).
  Initialement le timer (TMR0) est à 0. Lorsque il atteind
  125, 18  fois, nous avons 18000 us (18 ms)
  18*8*125=18000 us}

   PORTA.RA0 := 0;
   Temps := 0;
   TMR0 := 0;
   while(Temps < 18) do
    begin
    if (TMR0 = 125) then
                        begin
                        Temps := Temps + 1;
                        TMR0 := 0;
                        end;
    end;


end;


begin
  TRISA := %11111110;
  PORTA := 0;
  OPTION_REG := %11000010; {presclar = 8}
  INTCON.GIE_bit := 1;
  //for NombreTour := 1 to 3 do //essaye de faire tourner le moteur 3 tours complet.
  Avancer360;
 end.


j'ai essayé de mettre la fonction " Avancer360" ,qui fait tourner le servo +360°, en boucle. Mais ça marche pas.

isis :
http://data.imagup.com/11/1158678602.JPG
merci pour les éclaircissements.


Top
 Profile  
 
PostPosted: Fri 10 Aug 2012, 00:36 
Offline

Joined: Wed 04 Jul 2012, 00:32
Posts: 7
salut,
s'il vous plaît quelqu'un me répond. J'ai pas trouvé la solution. Merci


Top
 Profile  
 
PostPosted: Fri 10 Aug 2012, 23:33 
Offline
User avatar

Joined: Sun 05 Jun 2005, 22:03
Posts: 215
Location: APBTeam
Je n'ai pas lu le code, mais un servo normal ne peut pas faire plusieurs tours. Tu le pilote avec un angle absolu. Pour pouvoir faire plusieurs tour il faut modifier le servo en enlevant le potentiomètre qui mesure l'angle, mais alors tu n'as plus de mesure d'angle, tu n'as plus qu'une idée de la vitesse.

_________________
APBTeam - http://apbteam.org/


Top
 Profile  
 
PostPosted: Sun 12 Aug 2012, 00:11 
Offline

Joined: Wed 04 Jul 2012, 00:32
Posts: 7
Merci beaucoup ni.
A votre avis quel est la meilleur solution : un servomoteur modifié ou un moteur pas à pas ; pour réaliser un mini robot simple ?


Top
 Profile  
 
PostPosted: Sun 12 Aug 2012, 09:34 
Offline
User avatar

Joined: Sun 05 Jun 2005, 22:03
Posts: 215
Location: APBTeam
Une boite de LEGO Mindstorms ?

Sinon, ça dépend de ce que tu veux faire.

_________________
APBTeam - http://apbteam.org/


Top
 Profile  
 
PostPosted: Mon 13 Aug 2012, 21:56 
Offline

Joined: Mon 25 Jan 2010, 22:48
Posts: 344
Avec un servomoteur modifié, tu n'auras pas de problème lié à l'électronique de puissance. Donc si servomoteur modifié rempli ton besoin, ne t'embête pas avec un moteur pas à pas.

Le LEGO Mindstorm est effectivement une option qu'il ne faut pas négliger.

_________________
Équipe Poivron
Coupe 2012 : Équipe Poivron (73e)
Coupe 2011 : Équipe Poivron (122e) - Prix des équipes !
Coupe 2010 : Équipe Poivron (78e)

Passez voir le Portail des équipes


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You can post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group