PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : $$$$ سروو موتورها $$$$



REZA_KLNTR
16-03-2009, 18:43
اساتید محترم اطلاعات خود را درباره سروو موتور جهت استفاده همگان اینجا بگذارید

جهت راه اندازی سروو موتور سه سیمه به ساخت و کنترل سیگنال زیر نیاز داریم:

You can see links before reply (You can see links before reply)

یک فرکانس 50 هرتز که طول موج مثبت از 1 تا 2 میلی ثانیه تغییر کند[hr]




چند مدار نمونه برای راه اندازی و کنترل سروو با میکرو AVR :

1nafar
17-03-2009, 14:25
سلام
سروو موتور چی هست ؟
سروو موتور ها ، موتور های قوی هستند که میتوانند در یک زاویه خاص با قدرت بسیار بالا بچرخند ، از سروو ها در بازو های ربات ، باز وبسته کردن درب ها و دریچه ها و ... استفاده میشود .
سروو ها معمولا از سه بخش : موتور dc ، گیربکس و مدار کنترل تشکیل میشوند .
چون این سروو ها باید در یک زاویه خاص بچرخند ، در داخل انها مداری برای اندازه گیری زاویه (مقدار درجه چرخش موتور dc )تعبیه شده است . این مدار کنترل کننده ، متناسب با پالس ورودی موتور dc را روشن یا خاموش میکند ، برای دیدن این پالس باید به دیتا شیت سروو مراجعه شود ، در بالا قسمتی از دیتا شیت یک نمونه سروو را مشاهده میکنید .
قسمت گیربکس برای تقویت کردن قدرت موتور dc (افزایش قدرت و کاهش سرعت) استفاده میشود .
You can see links before reply
در بسکام توابع راه اندازی سروو موتور وجود دارد که در داخل کتاب اموزش avr به زبان بیسک توضیح داده شد ، شما خودتان نیز میتوانید توسط تایمر ها پالس مورد نیاز برای سروو را بسازید .
سروو موتور ها در نمونه های 3 یا 5 سیمه ساخته میشوند ، در نمونه های 3 سیمه ، تغذیه مدار کنترلر داخلی از ولتاژ اصلی گرفته شده است و در نمونه های 5 سیمه 2 سیم برای تغذیه موتور dc و دوسیم برای تغذیه مدار کنترلر وسیم اخر سیم کنترل زاوایه میباشد که شما باید به ان پالسی که در دیتاشیت گفته شده را اعمال کنید .
You can see links before reply

در ادرس زیر در مورد راه اندازی این نوع موتور بحث شده است :
You can see links before reply

ehsanware
10-12-2012, 18:40
#include <mega8.h>
#include <delay.h>
#define xtal 1000000

void main(void)
{

PORTB=0x00;
DDRB=0x02;
PORTC=0x00;
DDRC=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 2000.000 kHz
// Mode: Ph. & fr. cor. PWM top=ICR1
// OC1A output: Non-Inv.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0x80;
TCCR1B=0x12;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1=2000;
//ICR1L=0x20;
while (1)
{

/*
if(PINC.0==1)
{
OCR1A = OCR1A+1;
delay_ms(1);
if(OCR1A>2000){OCR1A=2000;}
}

if(PINC.1==1)
{
OCR1A = OCR1A-1;
delay_ms(1);
if(OCR1A<1000){OCR1A=1000;}
}*/
if(PINC.0=1 && PINC.1=1){
for(OCR1=1000;OCR1=2000,OCR++)
{
delay_ms(1);
}
}

}
}
آقا این مشکل میده تو پروتئوس میشه یکی مشکلش رو به من بگه؟؟؟

ehsanware
10-12-2012, 18:40
#include <mega8.h>
#include <delay.h>
#define xtal 1000000

void main(void)
{

PORTB=0x00;
DDRB=0x02;
PORTC=0x00;
DDRC=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 2000.000 kHz
// Mode: Ph. & fr. cor. PWM top=ICR1
// OC1A output: Non-Inv.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0x80;
TCCR1B=0x12;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1=2000;
//ICR1L=0x20;
while (1)
{

/*
if(PINC.0==1)
{
OCR1A = OCR1A+1;
delay_ms(1);
if(OCR1A>2000){OCR1A=2000;}
}

if(PINC.1==1)
{
OCR1A = OCR1A-1;
delay_ms(1);
if(OCR1A<1000){OCR1A=1000;}
}*/
if(PINC.0=1 && PINC.1=1){
for(OCR1=1000;OCR1=2000,OCR++)
{
delay_ms(1);
}
}

}
}
آقا این مشکل میده تو پروتئوس میشه یکی مشکلش رو به من بگه؟؟؟

ehsanware
14-01-2013, 15:23
سلام
آقا من یه پروژه دارم حدودا کاراش رو انجام دادم ولی سر این سروو موتور که آخرشه گیر افتادم نمیدونم چرا کار نمیده هر کاری میکنم.
GWS Mini STD یه برنامه ساده هم که میریزم تو میکرو کنترلر درست کار نمیکنه میچرخه تا آخر و دیگه هیچ کاری نمیکنه همین این پایین هم یه کد ساده میزارم که براش نوشتم ولی کار نمیده: baad:

#include <mega8.h>
#include <delay.h>
void main(void)
{
PORTB=0x00;
DDRB=0x02;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
TCCR1A=0x80;
TCCR1B=0x12;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1=2500;
OCR1A=2500/10;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
TIMSK=0x00;
UCSRB=0x00;
ACSR=0x80;
SFIOR=0x00;
ADCSRA=0x00;
SPCR=0x00;
TWCR=0x00;

while (1)
{
// Place your code here
delay_ms(1000) ;
OCR1A=2500/10;
delay_ms(200);
OCR1A=2500/20;
delay_ms(200);
}
}

من تو پروژم کلا عدد از کامپیوتر میفرستم به میکرو طبق اون عدد باید با سرغتای مختلف سرو بچرخه یا اینکه اصلا آزاد باشه و هیچ سیگنالی به اون نره. ممنون میشم اگه جوابم رو بدین خیلی نیازه:(

ehsanware
15-01-2013, 10:19
هیچکسی نبود جواب بده؟؟؟؟؟ :(

medicalhealth
23-10-2018, 15:18
خوب این فرکانس 50 هرتز پیدا نمیشه باید چی کار کنیم؟