PDA

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



nima_elc
07-04-2012, 15:03
سلام
میخواستم بدونم چطور میشه با میکرو برنامه ای نوشت که با یه پتانسیومتر و حالت ولوم میزان PWM خروجی را تغییر داد ...یعنی میزان dutycycle با تغییر وضعیت سر پتانسیومتر از یه میزان خیلی کم شروع به زیاد شدن بکنه؟
نمیخوام پله ای و مرحله ای زیاد بشه چون باید حرکت موتور تو دستگاه روان باشه و به ارومی سرعتش کم و یا زیاد بشه

و یک سوال دیگه درایوری مثل L298 وجود داره که تا 3 امپر بدون داغ شدن به موتور جریان بده؟

naatamam
07-04-2012, 15:12
سلام
میخواستم بدونم چطور میشه با میکرو برنامه ای نوشت که با یه پتانسیومتر و حالت ولوم میزان PWM خروجی را تغییر داد ...یعنی میزان dutycycle با تغییر وضعیت سر پتانسیومتر از یه میزان خیلی کم شروع به زیاد شدن بکنه؟
نمیخوام پله ای و مرحله ای زیاد بشه چون باید حرکت موتور تو دستگاه روان باشه و به ارومی سرعتش کم و یا زیاد بشه


سلام
سر وسط ولوم را به یکی از کانال های adc وصل کن.
مقدار ولتاژ را از طریق ADC بخوان و با توجه عددی که از ADC بدست میاید مقدار عددی PWM را کم یا زیاد کن.

nima_elc
07-04-2012, 15:31
خب میدونم دوست عزیز ولی من با ADC میکرو زیاد کار نکردم و نمیدونم چطور مقدار بدم که PWM خروجی بده و dutycycle مقدارش با مقدار ولتاژ خوانده شده به ارومی افزایش پیدا کنه
اگه ممکنه یه مثال از برنامش بزارید ممنون میشم و البته c باشه نه بیسیک چون من کارم با C هست

Ma3ood
07-04-2012, 18:49
سلام
میخواستم بدونم چطور میشه با میکرو برنامه ای نوشت که با یه پتانسیومتر و حالت ولوم میزان PWM خروجی را تغییر داد ...یعنی میزان dutycycle با تغییر وضعیت سر پتانسیومتر از یه میزان خیلی کم شروع به زیاد شدن بکنه؟
نمیخوام پله ای و مرحله ای زیاد بشه چون باید حرکت موتور تو دستگاه روان باشه و به ارومی سرعتش کم و یا زیاد بشه

و یک سوال دیگه درایوری مثل L298 وجود داره که تا 3 امپر بدون داغ شدن به موتور جریان بده؟

اول در مورد درایور بگم که میتونی از L6203 استفاده کنید که جوابگوی کار شما هست و البته قیمتش در حدود دو برابر l298 یعنی 5000 تومنه
در مورد سوالت در مورد PWM باید بگم که بعد از ساختن موج PWM توسط مثلا تایمر 0 میتونی مقدار
OCR0 را برابر مقدار دریافت شده از adc با یه ضریب مشخص
(OCR0 مقدارش از 0 تا 255 تغییر تغییر میکنه ) و با توجه به اون دیوتی سایکل رو تغییر بدهی
موفق باشید.

nima_elc
07-04-2012, 21:03
ممنون بابت راهنماییتون خیلی مفید بود
من 3 تا مقدر PWM باید از میکرو بگیرم که به صورت انالوگ dutycycle هاشون را بشه تغییر داد
و بنظرتون تو عمل میشه با اعمال یک سیگنال درایور را کنترل کرد؟؟ سیگنال را به 2 کلید بدیم و هرکدوم از کلید ها به یکی از وریودی های درایور وصل باشه؟و در حالت ترمز اگه 2 کلید با هم وصل باشن قدرت ترمز برای موتور را دارند؟
و یک سوال در مورد درایوری که گفتید....این درایور یک خروجی موتور داره؟؟

Ma3ood
07-04-2012, 22:16
درود مجدد:hi:
دوست عزیز اول در مورد درایور موتور بگم که این درایور نسل جدید همون l298 و دارای 2 خروجی بهتر بگم میشه دو موتور را باهاش کنترل کرد با تحمل جریان بیشتر و میتونه موتور ها رو تا ولتاژ 52 ولت راه اندازی کنه
ببینید شما چند تا موتور دارید ؟
با موتور ها دقیق میخواهید چیکار کنید فقط کنترل سرعت ؟
تا اونجایی که من میدونم با یه سیگنال موتور رو کنترل میکنن نه چند تا (دلیلتون برای این کار چیه) ؟
لطفا جواب این سوالها رو دقیق بدین تا من و دوستان که تجربه عملی توی این کار دارند کمک کنند:wink:

nima_elc
07-04-2012, 22:22
3 تا موتور گیریبکس حدودا 4 آمپری هستن
از سرعت خیلی کم میخوایم تا قدرت سرعت حداکثر موتور
خب موتورها باید ترمز داشته باشند
با l298 وقتی به 2 پایه ورودی موتور سیگنال بدید موتور حالت ترمز داره و فورا از حرکت می ایسته و با فشار روی شافت موتور موتور نمی چرخه

M_GH
07-04-2012, 22:45
برای pwm باید بهتون بگم غیر از راه adc یک راه دیگه هم هست که یه جورایی نقش میکرو توش کمتر هست
و با پتانسیومتر کنترل میشه در ضمن شما هرچند تا pwm هم بخوای میتونی ازش بگیری

(
Fast PWM
میتونه یک موج مثلثی درست کنه که با پتانسیومتر و آپ امپ میشه اونو به PWM
تبدیل کرد که اساس کار PWM هم همینه

nima_elc
07-04-2012, 22:54
ممنون ولی کار من با میکرو هست وگرنه راه برای تولید PWM زیاده
الان دنبال راهی هستم که 3 تا PWM از میکرو بگیرم که با پتانسیومتر بشه از سرعت خیلی پایین و بتدریج مقدار dutycycle هرکدوم را تغییر داد
مثلا با هر 20 میلی ولت افزایش ورودی dutycycle مقدارش 1درصد اضافه بشه تا 255همینطور

Ma3ood
08-04-2012, 12:01
راه پیشنهادی من اینکه مثلا
شما اول بیایی از تمامی تایمر ها 0و1و2 در مد PWM از میکرو مگا 32 رو تک تک راه اندازی کنی و جواب بگیری و بعد از اون هر سه را فعال کنید و ببنید حالا چطور کار میکنه (از دوستان جواب بده ایا میشه از تمامی تایمر ها همزمان در مد PWM استفاده کرد این سوال خودمم هست)
دلیل این پیشنهادم اینه که کار و قدم به قدم پیش برید و اشکالاتتون رو زود پیدا میکنید وقتی شما از حالتهای بالا جواب گرفتید دیگه خیالی نیست :o

ali_h
08-04-2012, 19:37
سلام.
اگر درست یادم باشه یکی از تایمر ها رو نمی شد در حالت pwm استفاده کرد.
نیازی هم به 3 تایمر نیست. تایمر 1 می تونه 2 تا موتور رو همزمان راه اندازی کنه.
در نهایت اگر میکرو به کار دیگه ای مشغول نیست می شه با استفاده یک تایمر چند تا pwm نرم افزاری تولید کرد.

roohlla
08-04-2012, 23:00
اگه از کد ویژن استفاده میکنی توی کد ویزارد قسمت adc حالت 8 بیت رو تیک بزن اگه هم از کدویژن استفاده نمیکنی با یه تقسیم ساده ی (مقدار خوانده شده از adc تقسیم بر 1023 ضرب در 255 )میتونی کارت رو انجام بدی . فقط حواست باشه از مقدار اخر جزء صحیح بگیر یا این که گردش کن . و در مورد کم کم زیاد شدن سرعت هم یکی از کار هایی که میتونی انجام بدی اینه که بیای مقداری که باید تایمر به اون برسه رو از مقدار حاضر تایمر کم کنی و اونو توی یه متغیری که علامت رو قبول کنه بریزی حالا بیا مقایسه کن ببین اگه مقدار منفی شده رجوع بده به یه حلقه ایی که میاد طی هر n بار چک کردن مراحل قبل ا بار به تایمر یک رو اضافه میکنه و اگر مقدار مثبت شد دقیقا کاری رو که گفتم بکن ولی این دفع به جای یه واحد اضافه کردن یه واحد کم کن . این کم یا زیاد کردن نا زمانی ادامه پیدا که تفاضل ذکر شده مخالف صفره پس یه if بزار تو حلقه تا زمانی که این مقدار صفر میشه دیگه حلقه ادامه پیدا نکنه و توی if گیر کنه (البته تو حلقه ی if یه دستور بزار تا شرص if رو رفرش کنه یعنی ببینه که آیا مقدار هنوز صفره یا نه و به محضی که مخالف صفر شد ارجاع بده به مراحل قبل تا تغییرات روی خروجی اعمال بشه ) . در ضمن با کم و زیاد کردن تعداد n میتونی سرعت تغییر روی خروجی رو کم و زیاد کنی .

nima_elc
09-04-2012, 22:42
من برنامه را راه انداختم و تونستم یه PWM متغیر با پتانسیومرت از OCR0 سیگنال گرفتم ولی وقتی خواستم از ازOC1A ---OC1B---OC2 استفاده کنم که تو timer تعریف میشدن کد را نرم افزار نمیشناخت
کسی از دوستان میتونه کمک کنه؟؟
من باید 3 تا PWM متغیر با پتانسیومتر از میکرو بگیرم
در مورد اون روش یه برنامه نمونه ندارید من درست متوجه نشدم

Ma3ood
09-04-2012, 23:32
خوب دوست عزیز ocr0 و oc1a , oca1b
میشه سه تا دیگه به oc2 احتیاجی ندارین
در مورد راه اندازی تایمر یک به عنوان نمونه اینطوری تنظیم کنی و با تغییر OC1A OC1B مقدار pwm تغییر کنه
مثل همون تایمر صفر تقریبا
امیدوارم به کارتون بیاد


// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 125.000 kHz
// Mode: Ph. correct PWM top=00FFh
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: On
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA1;
TCCR1B=0x83;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

nima_elc
10-04-2012, 00:46
ممنونم ولی تونستم تنظیمشون کنم بصورت ثابت ولی تو برنامه نتونستم بنویسم که قابلیت تغییر dutycycle داشته باشه

Ma3ood
10-04-2012, 00:48
خوب برنامه تون رو بگذارید شاید بتونیم با هم دیگه حلش کنیم!
دقیق یادم نیست مثلا تو برنامه این جوری نوشته میشه


OCR1AL=y;
OCR1BL=y;


یا


OCR1A=y;
OCR1B=y;

nima_elc
10-04-2012, 01:20
این برنامه کنترل OCR با پتانسیومتره که نوشتم

#include <mega16.h>


void main(void)
{

PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
UCSRB=0x00;
ACSR=0x80;
SFIOR=0x00;
ADCSRA=0x00;
SPCR=0x00;

Ma3ood
10-04-2012, 13:28
این برنامه کنترل ocr با پتانسیومتره که نوشتم

#include <mega16.h>


void main(void)
{

porta=0x00;
ddra=0x00;
portb=0x00;
ddrb=0x00;
portc=0x00;
ddrc=0x00;
portd=0x00;
ddrd=0x00;
tccr0=0x00;
tcnt0=0x00;
ocr0=0x00;
tccr1a=0x00;
tccr1b=0x00;
tcnt1h=0x00;
tcnt1l=0x00;
icr1h=0x00;
icr1l=0x00;
ocr1ah=0x00;
ocr1al=0x00;
ocr1bh=0x00;
ocr1bl=0x00;
assr=0x00;
tccr2=0x00;
tcnt2=0x00;
ocr2=0x00;
mcucr=0x00;
mcucsr=0x00;
timsk=0x00;
ucsrb=0x00;
acsr=0x80;
sfior=0x00;
adcsra=0x00;
spcr=0x00;


دوست عزیز این که اولا کامل نیست و بعدشم تا اینجای برنامه که چیزی به عنوان فعال سازی تایمر نمی بینم همه رجیستر هاتون صفر هستش

تایمر صفر رو اول شما به این صورت راهش بنداز

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 125.000 kHz
// Mode: Fast PWM top=FFh
// OC0 output: Non-Inverted PWM
TCCR0=0x6A;
TCNT0=0x00;
OCR0=0x00;
ADC را هم فعال کن همون طور که در تاپیک قبلی بحث کردیم

nima_elc
10-04-2012, 16:33
من خط توظیحاتش را بداشتم وگرنه این اصل برنامست

#include <mega16.h>

#include <delay.h>

#include <stdio.h>
// Alphanumeric LCD Module functions
#include <alcd.h>

#define ADC_VREF_TYPE 0x60

// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}

// Declare your global variables here

void main(void)
{
unsigned char a,sorat;
char str [16];
// Declare your local variables here

// Input/Output Ports initialization
// Port A 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
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=0 State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x08;

// Port C 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
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: 1000.000 kHz
// Mode: Fast PWM top=0xFF
// OC0 output: Non-Inverted PWM
TCCR0=0x6A;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// 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=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
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
// INT2: Off
MCUCR=0x00;
MCUCSR=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 Clock frequency: 1000.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC Auto Trigger Source: Free Running
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0xA3;
SFIOR&=0x1F;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

// Alphanumeric LCD initialization
// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTC Bit 0
// RD - PORTC Bit 1
// EN - PORTC Bit 2
// D4 - PORTC Bit 4
// D5 - PORTC Bit 5
// D6 - PORTC Bit 6
// D7 - PORTC Bit 7
// Characters/line: 16
lcd_init(16);

while (1)
{
OCR0=read_adc(0);
a=read_adc(0);
sorat=(a*.39);
lcd_clear();
sprintf(str,"sorat=%u",sorat);
lcd_puts(str);

}
}

nima_elc
10-04-2012, 16:35
من یه lcd هم گذاشتم که سرعت را نشون بده و البته فقط برای نمونه

Ma3ood
10-04-2012, 18:31
while (1)
{
OCR0=read_adc(0);
a=read_adc(0);
sorat=(a*.39);
lcd_clear();
sprintf(str,"sorat=%u",sorat);
lcd_puts(str);

}
}
دوست عزیز فکر نمی کنید یه کم اشتباه کردید OCR به این صورت تغییر چندانی نداره شما اینجوری بنویسید و امتحان کنید . اگه خواستید برنامه اش رو براتون اپ کنم.


sorat=read_adc(0)*0.0048;
OCR0=sorat*51;

nima_elc
10-04-2012, 20:43
ممنون میدونم....کارم یه کار دقیق هست و حرکت حداکثر موتور اصلا لازم نیست و باید حرکتشم نرم باشه و محدوده سرعتم مشخصه البته اون را بازم باید روی دستگاه وقتی مدار کامل شد تست کنم
اگه میشه این برنامه را با 3 خروجی و کنترل پتانسیومتر برام بزارید ممنون میشم چون من نتونستم از تایمر 1 و یا 2 استفاده کنم
الان برنامه ای میخوام که 3 تا خروجی PWM با کنترل پتانسیومتر داشته باشه و رو LCD هم اگه بشه سه سرعت را همزمان نشون بده و بشه مثل برنامه که دادم سرعت را مثلا از 0 تا 100 تنظیم کردcry::

Ma3ood
10-04-2012, 22:57
با درود خدمت شما دوست عزیز
برنامه را براتون اماده کردم
توضیح اینکه از تایمر 0 و 1 برای ایجاد این کار استفاده شده
مقدار pwm ازبا تغییر ولوم 0 تا 100 قابل تغییر هستش شما میتونی هر جور دوست داشتی دیگه برنامه رو تغییرش بدی
موفق باشی
فایل پیوست شامل سورس+ شبیه سازی

M_GH
10-04-2012, 23:01
خیلی ببخشید یک سوالی برام پیش اومد
مطمئن هستین مقدار نهایت ocr ها 255 هست؟
گمونم 1023 باشه چون من از این مقدار جواب گرفتم!

Ma3ood
10-04-2012, 23:07
خیلی ببخشید یک سوالی برام پیش اومد
مطمئن هستین مقدار نهایت ocr ها 255 هست؟
گمونم 1023 باشه چون من از این مقدار جواب گرفتم!

نمی دونم تا اونجا که من اطلاع دارم وقتی از تایمر مثلا صفر استفاده میکنی وقتی هشت بیتی هست فکر نکنم بشه ازش ده بیتی استفاده کرد ولی الان با در نظر گرفتن این مقدار داره از 0تا 100 تغییر میکنه

M_GH
10-04-2012, 23:39
من الان با تایمر 1 اتمگا 16 و تو ربات امدادگر دانش آموزی (که الان جلوم هست)
با مقدار 0 تا 1023 جواب گرفتم تا جایی هم که بلدم 255 نباید حد اکثرش باشه
حالا کاری نداره با جفتش امتحان کنین

Ma3ood
10-04-2012, 23:59
من الان با تایمر 1 اتمگا 16 و تو ربات امدادگر دانش آموزی (که الان جلوم هست)
با مقدار 0 تا 1023 جواب گرفتم تا جایی هم که بلدم 255 نباید حد اکثرش باشه
حالا کاری نداره با جفتش امتحان کنین

خوب دوست عزیز شما داری میگی تایمر یک خوب معلومه این تایمر 16 بیتی هستش
اخرین مقدارشم میشه 65536 من توی مثالم در مورد تایمر صفر صحبت میکردم:wink:

nima_elc
11-04-2012, 00:13
اقا مسعود تشکر اشکالات برنامه های قبلیمم فهمیدم
اگه بازم مشکل داشتم مزاحم میشم
راستی درایور بجز l298 و l6203 درایوری هست تا 4 امپر راحت کار کنه؟

M_GH
11-04-2012, 00:25
خوب دوست عزیز شما داری میگی تایمر یک خوب معلومه این تایمر 16 بیتی هستش
اخرین مقدارشم میشه 65536 من توی مثالم در مورد تایمر صفر صحبت میکردم:wink:
شرمنده به بزرگی خودتون من تازه کار رو ببخشین دیگه!!

Ma3ood
11-04-2012, 01:02
اقا مهدی اختیار دارید :0013:
اقا نیما درایور که زیاده ولی l6203 جوابتون رو 100% میده فقط هیت سینگ فراموش نشه
شما یه نیگاه به دیتا شیتش بندازی همه چی دستت میاد

nima_elc
11-04-2012, 01:15
خب اخه اینجوری که من تست کردم هر l6203 یک خورجی داره
من از کسی پرسیدم گفت اگه از هردوکانال L298 برای یک موتور هم استفاده کنی جریان تا زندیک 5 امپر میشه به مدار داد
ولی من میخوام تا حدی که میشه مدارم جمع و جور باشه
مثلا یه قطعه مثل l298 که 2 خروجی داشته باشه ولی جریانش 4 امپر باشه

Ma3ood
11-04-2012, 01:39
دوست عزیز راه های زیادی هست اگه میخوای خیال خودتو راحت کنی از ترانزیستور های ماسفت استفاده کن البته به شکل پل خیلی خوب جواب میده :o

nima_elc
11-04-2012, 01:52
این کارو کردم با چند 2 مدل ولی داغ میکنن با اینکه مدل های امپر بالا هم بودن و من چون یه پروژه ساده نیست و قراره روی دستگاهی بسته بشه میخوام یه چیز مطمن باشه

Ma3ood
12-04-2012, 01:45
درود مجدد
مثل اینکه حق با شماست L6203 یه کاناله هستش
خوب به نظر من حالا شما اگه جریانت بالای 4 امپر نیست از همین استفاده کن و چون 3 تا موتور مستقل داری از 3 تا از این ای سی استفاده کن ولی از نظر هزینه بالا میره ای سی های دیگری هم هستش که قیمتش بالاست و اصلا توجیه اقتصادی نداره
ولی 90 درصد توی نظر سنجی هایی که من دیدیم با استفاده از مدل پل H ترانزیستور ماسفت تونسته بودن درایوری تا 20 امپر بسازند دارای عملکردی عالی و از لحاظ قیمتی با l298 یکسان و از نظر کارایی 4 برابر

nima_elc
12-04-2012, 02:26
دوست عزیز خب حساب حجم مدار هم بکن..من 3 تا مدار پل ببندم هرکدوم 4 تا ماسفت جریان 4 امپری داره اندازه یه رگلاتور هستن و 4 تا دیود 4امپر که بزرگه حساب کنی 3 تا مدار پل ببندم خیلی بزرگ میشه بردم با توجه به سیم کشیش
اگه درایور باشه بهتره هزینش مهم نیست چون کار اقتصادیه و شخصی نیست که بخاطر راحتی کار را پیچیده کنم

Ma3ood
12-04-2012, 12:30
دوست عزیز خب حساب حجم مدار هم بکن..من 3 تا مدار پل ببندم هرکدوم 4 تا ماسفت جریان 4 امپری داره اندازه یه رگلاتور هستن و 4 تا دیود 4امپر که بزرگه حساب کنی 3 تا مدار پل ببندم خیلی بزرگ میشه بردم با توجه به سیم کشیش
اگه درایور باشه بهتره هزینش مهم نیست چون کار اقتصادیه و شخصی نیست که بخاطر راحتی کار را پیچیده کنم

حق با شماست حجم مدار یه خورده بالا میره اگه هزینه مهم نیست خوب از همین l6203 استفاده کن درسته یه خروجی داره و به نظرم بهتره هر موتور برای خودش یه دونه درایور مجزا داشته باشه
و در اخر در صورت نیاز به آمپر های خیلی بیشتر (10آمپر به بالا) از درایور های قدرتمند تر مانند BTS7710 ,BTS7810 نیز می توان استفاده کرد که تا جریان 20 آمپر نیز خروجی می دهند .

مشخصات BTS7710GP :
درایور موتور های الکتریکی تا 12 امپر

حداکثر ولتاژ 55 ولت

استفاده از ماسفت برای تلفات بسیار کم

دیرایور موتور های DC

12 امپر به صورت دائم

قابلیت تحمل جریان تا 20 امپر برای 100 میلی ثانیه

قابلیت تحمل جریان تا 30 امپر برای 1 میلی ثانیه

قابلیت تغییر سرعت موتور با اعمال pwm

مشخصات BTS7810GP :
درایور موتور های الکتریکی تا 20 امپر

حداکثر ولتاژ 55 ولت

استفاده از ماسفت برای تلفات بسیار کم

دیرایور موتور های DC

20 امپر به صورت دائم

قابلیت تحمل جریان تا 25 امپر برای 100 میلی ثانیه

قابلیت تحمل جریان تا 100 امپر برای 1 میلی ثانیه

قابلیت تغییر سرعت موتور با اعمال pwm

147852369
08-07-2013, 03:13
حق با شماست حجم مدار یه خورده بالا میره اگه هزینه مهم نیست خوب از همین l6203 استفاده کن درسته یه خروجی داره و به نظرم بهتره هر موتور برای خودش یه دونه درایور مجزا داشته باشه
و در اخر در صورت نیاز به آمپر های خیلی بیشتر (10آمپر به بالا) از درایور های قدرتمند تر مانند BTS7710 ,BTS7810 نیز می توان استفاده کرد که تا جریان 20 آمپر نیز خروجی می دهند .

مشخصات BTS7710GP :
درایور موتور های الکتریکی تا 12 امپر

حداکثر ولتاژ 55 ولت

استفاده از ماسفت برای تلفات بسیار کم

دیرایور موتور های DC

12 امپر به صورت دائم

قابلیت تحمل جریان تا 20 امپر برای 100 میلی ثانیه

قابلیت تحمل جریان تا 30 امپر برای 1 میلی ثانیه

قابلیت تغییر سرعت موتور با اعمال pwm

مشخصات BTS7810GP :
درایور موتور های الکتریکی تا 20 امپر

حداکثر ولتاژ 55 ولت

استفاده از ماسفت برای تلفات بسیار کم

دیرایور موتور های DC

20 امپر به صورت دائم

قابلیت تحمل جریان تا 25 امپر برای 100 میلی ثانیه

قابلیت تحمل جریان تا 100 امپر برای 1 میلی ثانیه

قابلیت تغییر سرعت موتور با اعمال pwm


سلام ،
این BTS7710 ,BTS7810 هردوشون جریان خروجیشون عالیه ، قیمتشم با 6203ها هم قیمتن تقریبا،پس چرا زیاد سراغ این درایور نمیان ؟
من خیلی وقته که از l6203 ها استفاده میکنم،آنچنان مشکلی هم ندارم
اینا با توجه به اینکه smd هستن مقاومن؟ یعنی احتمال سوختنشون زیاد نیست؟
در کل معایبشونو میگید؟
اگه مدار کاملی هم ازش دارید و بذارید ممنون میشم ، چون میخوام رو ربات ببندم
ببخشید،خیلی سوال پرسیدم
:mrgreen:

Ma3ood
08-07-2013, 14:59
در مورد سوال اول باید بگم درایور های مثل l239 , l298 و الان 6203 به دلیل اینکه در بیشتر مراکز اموزشی و نقشه از این درایور استفاده شده بیشتر محبوبیت دارد
درایور 6203 مشکلی نداره و پاسخگوی نیاز شما میتونه باشه
بله دوست عزیز به دلیل استفاده از ماسفت در این نوع درایور ها توانایی جریان دهی خوبی دارند و همچنین تلفات بسیار کمی و زیاد داغ نمی شوند .

در مورد نقشه کاربردی در دیتاشیت باید باشه همونو استفاده کنید