Download presentation
Presentation is loading. Please wait.
Published byAdele George Modified over 9 years ago
1
Example 12 Pulse-Width Modulation (PWM): Motors and Servos Lecture L8.1
2
PIM_9DP256 Block Diagram PWM Port
3
PWM Pins PP0 – PP7 Pins 4,3,2,1, 112,111,110,109
4
PWM Pins PP0 – PP7 Pins 4,3,2,1, 112,111,110,109
5
Motor Driver Circuit Solid-state relay
6
G3VM-61B1 MOS FET Relays
7
Motor – Generator Experiment
8
Using an AC Relay
9
Pulse-Width Modulation
11
// Example 12a: Motor demo #include /* common defines and macros */ #include /* derivative information */ #include "main_asm.h" /* interface to the assembly module */ #pragma LINK_INFO DERIVATIVE "mc9s12dp256b" void main(void) { int val; int speed; PLL_init();// set system clock frequency to 24 MHz ad0_enable(); // enable a/d converter 0 lcd_init(); // enable lcd motor1_init(); // enable 8-bit pwm1 for motor while(1) { val = ad0conv(7); // 0 - 1023 speed = val >> 2;// 0 - 255 set_lcd_addr(0x40);// 2nd line of lcd display write_int_lcd(speed);// display speed motor1(speed); // set motor speed ms_delay(100);// delay 100 ms }
12
Controlling the Position of a Servo using PWM
14
// Example 12b: Servo demo #include /* common defines and macros */ #include /* derivative information */ #include "main_asm.h" /* interface to the assembly module */ #pragma LINK_INFO DERIVATIVE "mc9s12dp256b" void main(void) { int val; int width; PLL_init();// set system clock frequency to 24 MHz ad0_enable(); // enable a/d converter 0 lcd_init(); // enable lcd servo1_init(); // enable pwm1 for servo while(1) { val = ad0conv(7); // 0 - 1023 width = (val << 1) + 3536; // width: 3536 - 5582 set_lcd_addr(0x40);// line 2 of lcd display write_int_lcd(width);// display width on lcd set_servo1(width); // move servo to pos width ms_delay(100);// delay 100 ms }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.