Kết quả 21 đến 27 của 27
-
04-19-2013, 04:38 AM #21Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình xin cung cấp cho các bạn yêu robocon đường link vào một trang web giới thiệu về mạch công suất dùng trong điều khiển động cơ robot - Build an H-Bridge Motor Control with Power MOSFETS (Tutorial).
Trong đó họ sử dụng MOSFET để điều khiển động cơ điện DC đồng thời cho phép nối với các cổng vào ra của vi điều khiển. Tuy nhiên có điều cần lưu ý khi ráp mạch nên đeo kính bảo hộ mắt vì nếu bạn sơ ý lắp trật thì các MOSFET có thể bị kích bất ngờ và gây nổ (nổ rất nhỏ thôi) nhưng có thể văng vào mắt nếu không để ý... Nhớ dùng tay kiểm tra khi MOSFET hoạt động có bị quá nhiệt không nhé.
Có hai đường dùng thay đổi chiều động cơ tất nhiên cần tránh để hai tín hiệu này kích cùng lúc. Mặt khác bạn có thể điều chỉnhh tốc độ động cơ theo phương pháp độ rộng xung (PWM) nghĩa là tạo ra một loạt các xung vuông với các tần số khác nhau nhờ chương trình viết cho vđk - tần số càng cao thì tốc độ càng nhanh và ngược lại.
Chúc bạn thành công.
-
04-19-2013, 04:45 AM #22Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
à mà quên, trong mạch này họ cũng giới thiệu cả hai cảm biến quang opto-couple có thể dùng để dò đường trong robocon. Còn phần tạo ra tín hiệu độ rộng xung trong vđk các bạn có thể tham khảo trong cuốn 8051 của tác giả Tống Văn On hoặc trong các trang web khác... Nếu sử dụng trong phòng có độ sáng cao các bạn nên che chắn tốt để tránh bị nhiễu từ ánh sáng đèn...
-
04-19-2013, 04:53 AM #23Silver member
- Ngày tham gia
- May 2016
- Bài viết
- 0
các bạn yêu robot có thể down thêm tài liệu này về ROBOT BUILDER'S BONANZA - Download - 4shared trong đó tác giả hướng dẫn khá đầy đủ về cách làm một robot từ a-z
-
11-05-2015, 02:00 AM #24Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
cho xin cái code tham khảo đi bạn
-
01-16-2016, 12:39 AM #25Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
các anh ơi! em đang làm đề tài về robot các anh có thể cho em xin cái mạch dò line dùng adc không? anh nào có thì gửi vào mail meohero9395@gmail.com
-
01-16-2016, 05:33 AM #26Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
học năm mấy mà làm robot rồi
-
01-16-2016, 05:37 AM #27Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
/************************************************** ***
This program was produced by the
CodeWizardAVR V2.05.0 Professional
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
HP InfoTech - CodeVisionAVR C Compiler
Project :
Version :
Date : 10/25/2015
Author : NeVaDa
Company :
Comments:
Chip type : ATmega8L
Program type : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
************************************************** ***/
#include <mega8.h>
void khoitao()
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=T
PORTB=0x00;
DDRB=0x06;
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 8000.000 kHz
// Mode: Ph. & fr. cor. PWM top=ICR1
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA0;
TCCR1B=0x11;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x03;
ICR1L=0xE8;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
}
int loin=0, pid0=0,loitr;
// Declare your global variables here
int pid(int loi, unsigned int kp,unsigned int ki,unsigned int kd)
{
static int loi0=0, iloi=0, dloi=0;
iloi+=loi;
dloi=loi-loi0;
loi0=loi;
if(iloi>=999)
iloi=999;
if(iloi<=-999)
iloi=-999;
if(loi==0)
{
loi0=0;
iloi=0;
dloi=0;
}
return kp*loi+ki*loi+kd*loi;
}
void main(void)
{
khoitao();
while (1)
{
loin=(int)(PIND.0)*(-3)+(int)(PIND.1)*(-2)+(int)(PIND.2)*(-1)+(int)(PIND.5)*3+(int)(PIND.4)*2+(int)(PIND.3)*1 ;
pid0=pid(loin,30,9,0);
if(PIND.5||PIND.4||PIND.3||PIND.2||PIND.1||PIND.0)
{
if(pid0>=999)
{
pid0=0;
}
if(pid0<=-999)
{
pid0=0;
}
if(pid0<0)
{
OCR1B=(-pid0);
OCR1A=0;
}
if(pid0>0)
{
OCR1A=pid0;
OCR1B=0;
}
if(pid0==0)
{
OCR1A=900;
OCR1B=900;
}
loitr=loin;
}
if(PIND.5+PIND.4+PIND.3+PIND.2+PIND.1+PIND.0==0)
{
if(loitr>0)
{
OCR1B=0;
OCR1A=600;
}
if(loitr<0)
{
OCR1B=600;
OCR1A=0;
}
}
}
}
Ngọc Dược Man's – Trợ thủ đắc lực...
Hôm nay, 07:35 PM in Rao vặt tổng hợp