1 .IC L298.
IC L298 là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong. Với điện áp làm tăng công suất đầu ra từ 5V – 47V , dòng lên đến 4A, L298 rất thích hợp trong những ứng dụng công suất nhỏ như động cơ DC loại vừa …
Mình tóm tắt qua chức năng các chân của L298:
- 4 chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7, 10, 12 của L298. Đây là các chân nhận tín hiệu điều khiển.
- 4 chân OUTPUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các chân INPUT) được nối với các chân 2, 3, 13, 14 của L298. Các chân này sẽ được nối với động cơ.
- Hai chân ENA và ENB dung để điều khiển các mạch cầu H trong L298. Nếu ở mức logic “1” (nối với nguồn 5V) thì cho phép mạch cầu H hoạt động, nếu ở mức logic “0” thì mạch cầu H không hoạt động.
Với bài toán của mình ở trên, các bạn chỉ cần lưu ý đến cách điều khiển chiều quay với L298:
- Khi ENA = 0: Động cơ không quay với mọi đầu vào .
- Khi ENA = 1:
- INT1 = 1; INT2 = 0: động cơ quay thuân.
- INT1 = 0; INT2 = 1: động cơ quay nghịch.
- INT1 = INT2: động cơ dừng ngay tức thì.
(tương tự với các chân ENB, INT3, INT4).
Tham khảo thêm datasheet ở cuối bài nhé…^^
Trong bài toán này mình sử dụng module L298 V1 để điều khiển chiều quay của động cơ DC.
Sơ đồ nguyên lý:
IC L298 là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong. Với điện áp làm tăng công suất đầu ra từ 5V – 47V , dòng lên đến 4A, L298 rất thích hợp trong những ứng dụng công suất nhỏ như động cơ DC loại vừa …
Mình tóm tắt qua chức năng các chân của L298:
- 4 chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7, 10, 12 của L298. Đây là các chân nhận tín hiệu điều khiển.
- 4 chân OUTPUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các chân INPUT) được nối với các chân 2, 3, 13, 14 của L298. Các chân này sẽ được nối với động cơ.
- Hai chân ENA và ENB dung để điều khiển các mạch cầu H trong L298. Nếu ở mức logic “1” (nối với nguồn 5V) thì cho phép mạch cầu H hoạt động, nếu ở mức logic “0” thì mạch cầu H không hoạt động.
Với bài toán của mình ở trên, các bạn chỉ cần lưu ý đến cách điều khiển chiều quay với L298:
- Khi ENA = 0: Động cơ không quay với mọi đầu vào .
- Khi ENA = 1:
- INT1 = 1; INT2 = 0: động cơ quay thuân.
- INT1 = 0; INT2 = 1: động cơ quay nghịch.
- INT1 = INT2: động cơ dừng ngay tức thì.
(tương tự với các chân ENB, INT3, INT4).
Tham khảo thêm datasheet ở cuối bài nhé…^^
Trong bài toán này mình sử dụng module L298 V1 để điều khiển chiều quay của động cơ DC.
Sơ đồ nguyên lý:
- Đây là ảnh mô phỏng protues.
- Đây là code chương trình.
#include <16f877a.h>
#fuses XT,NOLVP,NOWDT,NOPROTECT
#use delay(clock=4000000)
#define Wire1 PIN_B6
#define Wire2 PIN_B7
#define Up PIN_A0
#define Down PIN_A1
#define Dir PIN_A2
int16 duty_cycle=512;
void main()
{
setup_adc(ADC_OFF); // Turn ADC OFF
setup_adc_ports(NO_ANALOGS); // All Ports are digital I/O
output_high(Wire1);
output_low (Wire2); // Set the motor to CW direction
/* PWM Configurations */
setup_timer_2(T2_DIV_BY_1,255,1); // Set PWM frequency
setup_ccp1(CCP_PWM); // Configure CCP1 to PWM mode
set_pwm1_duty(512L); // default duty cycle = 50% (Half Speed)
while(1)
{
while(input(Up) && input(Down) && input(Dir)); // Hold until a button is pressed
if(!input(Up)) // Button (Up) Selected?
{
duty_cycle+=64; // increase the duty cycle by some percentage (+6.25%)
set_pwm1_duty(duty_cycle); // set the duty cycle
}
if(!input(Down)) // Button (Down) Selected?
{
duty_cycle-=64; // decrease the duty cycle
set_pwm1_duty(duty_cycle); // set the duty cycle
}
if(!input(Dir)) // Button (Direction) Selected?
{
output_toggle(Wire1); // Toggle the polarity of IN1 IN2
output_toggle(Wire2); // 0 becomes 1 , 1 becomes 0
}
delay_ms(500); // 0.5 second delay to release the selected button
}
}
cho em hỏi +- 64 tính như thế nào ra vậy ạ
ReplyDelete