Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:examples:motor:stepper [2015/11/12 09:12] heikopikneren:examples:motor:stepper [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Stepper motor ====== ====== Stepper motor ======
  
-//Necessary knowledge: [HW] [[en:hardware:homelab:motor]], [AVR] [[en:avr:io]], [LIB] [[en:software:homelab:library:module:motor]]//+//Necessary knowledge:  
 +[HW] [[en:hardware:homelab:combo]],  
 +[AVR] [[en:avr:io]],  
 +[LIB] [[en:software:homelab:library:module:motor]], \\ 
 +[LIB] [[en:software:homelab:library:delay]]//
  
 ===== Theory ===== ===== Theory =====
Line 53: Line 57:
  
 <code c> <code c>
-// Preparing for controlling the bipolar stepper motor.+// Preparing for controlling the bipolar stepper motor
 void bipolar_init(void) void bipolar_init(void)
 { {
Line 60: Line 64:
 } }
  
-// Moving the bipolar stepper motor by half steps.+// Moving the bipolar stepper motor by half steps
 void bipolar_halfstep(signed char dir, void bipolar_halfstep(signed char dir,
  unsigned short num_steps, unsigned char speed)  unsigned short num_steps, unsigned char speed)
Line 76: Line 80:
  state2 += dir;  state2 += dir;
  
- // Creating the pattern.+ // Creating the pattern
  pattern = (1 << ( (state1 % 8) >> 1) ) |  pattern = (1 << ( (state1 % 8) >> 1) ) |
            (1 << ( (state2 % 8) >> 1) );            (1 << ( (state2 % 8) >> 1) );
Line 83: Line 87:
  PORTB = (PORTB & 0xF0) | (pattern & 0x0F);  PORTB = (PORTB & 0xF0) | (pattern & 0x0F);
  
- // Taking a break to wait for executing the step.+ // Taking a break to wait for executing the step
  sw_delay_ms(speed);  sw_delay_ms(speed);
  }  }
  
- // Stopping the motor.+ // Stopping the motor
  PORTB &= 0xF0;  PORTB &= 0xF0;
 } }
Line 95: Line 99:
  
 <code c> <code c>
-// +// The test program for the stepper motor of the HomeLab
-// The test program for the bipolar stepper motor of the motor'+
-//module of the HomeLab+
-//+
 #include <homelab/module/motors.h> #include <homelab/module/motors.h>
  
Line 104: Line 105:
 int main(void) int main(void)
 { {
- // Set up of the motor. + // Set up of the motor 
- bipolar_init();+ unipolar_init(0);
   
- // Endless loop.+ // Endless loop
  while (true)  while (true)
  {  {
  // Turning the rotor 200 half steps to one direction   // Turning the rotor 200 half steps to one direction 
  // at speed of 30 ms/step.  // at speed of 30 ms/step.
- bipolar_halfstep(+1, 200, 30);+ unipolar_halfstep(0,+1, 2000, 30);
  
  // Turning 200 half steps to the other direction   // Turning 200 half steps to the other direction 
  // at speed 30 ms/step.  // at speed 30 ms/step.
- bipolar_halfstep(-1, 200, 30);+ unipolar_halfstep(0,-1, 2000, 30);
  }  }
 } }
 </code> </code>
en/examples/motor/stepper.1447319552.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0