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:motors:dc [2009/03/26 17:49] raivo.sellen:examples:motors:dc [2010/02/04 14:29] (current) – removed mikk.leini
Line 1: Line 1:
-===== DC Motors ===== 
-The operation of direct current (DC) motors, like all other electric motors, is based on 
-simple electromagnetism. Brushed DC motors have two wire connectors, positive and 
-negative. The rotation direction is determined by the polarity and speed by the 
-voltage. 
-Controlling the DC motor: 
-One full H-bridge or two half bridges (push–pull drivers) can be used for driving one 
-DC motor forwards and backwards. Drive circuits are available as ASICs, or can be 
-built from separate components, such as transistors. In this lab we are using the IC 
-L293D, which contains four push–pull drivers in one chip package. 
- 
- 
-===== Simple test program. ===== 
-With this compied program you can test your equipment set-up. 
-DC motor is connected to DC1 port 2 and servo motor PWM1 
-{{:et:failid:mootorite_testv5.hex|}} 
- 
-===== Connection schema ===== 
- 
-{{:examples:actuator:dc_schema.jpg?500|}} 
- 
-Motor drive signals from ATmega128 to the actuator board 
- 
-{{:examples:actuator:dc_connection_table.jpg|}} 
- 
-===== Connecting the components ===== 
-Electrical connections 
-  - Make sure all power is off. 
-  - Connect the actuator board and main board with a 26-pin cable. 
-  - Connect the DC motor(s) to the actuator board, as shown in Figure 1. 
-  - Connect the JTAG converter with the ATmega128 main board and the PC. 
-  - Finally, connect the power to the main and actuator boards. 
- 
-{{:examples:dc_servo_cpu.jpg?500|}} 
-{{:examples:dc_servo_cpu_connection.jpg?500|}} 
- 
-===== Example code ===== 
-<code c> 
-/*------------------------------------------------------------- 
-Title: DC motor with Actuator Board 
-Date: 080424 
-Ver.: 1.2 
-Compiler: AVR-GCC 
-Target: ATmega128 
-Hardware: ATmega128 controller board, Actuator board, DC motor 
-Author: Raivo Sell 2008 
-Notes: in1 PD7 in2 PD6 
-Optimization: -O0 (needed for delay function) 
-Description: Start and stop the DC motor and change the rotation direction.  
-Motor is connected to the DC1 pins 3 
----------------------------------------------------------------*/ 
-#define SET(x) |= (1<<x) //set bit high bit in pin x 
-#define CLR(x) &=~(1<<x) //set bit low bit in pin x 
-#define MS (100) //defines delay 
-#define F_CPU 14745600UL //CPU Frequency (influences delay function) 
-#include <avr/io.h> 
-///////////////// Functions ////////////////////////////////// 
-void dc_drive(int pin, int op){ // DC motor control function 
- if (op==1) PORTD SET(pin); 
- else PORTD CLR(pin); 
-} 
- 
-void _delay_ms(int t){ // Delay function 
- int i,j; 
- for (i=0;i<t;i++){ 
- for (j=0;j<8000;j++){} 
- } 
-} 
-///////////////// Main function ////////////////////////////////// 
-int main (void){ 
- DDRD = 0xFF;// set port direction (output) 
- PORTD = 0x00;// initialize port 
- while(1){ 
- dc_drive(6,1); // Start DC motor 
- dc_drive(7,0); 
- _delay_ms(MS); // Wait for a second 
- dc_drive(6,0); // Change direction 
- dc_drive(7,1); 
- _delay_ms(MS); // Wait for a second 
- dc_drive(6,0); // Stop DC motor 
- dc_drive(7,0); 
- _delay_ms(MS); // Wait for a second 
- } 
-} 
-</code> 
  
en/examples/motors/dc.1238082597.txt.gz · Last modified: (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