با سلام ،
دوست عزیز شما در حال استفاده از ورژنی قدیمی از اینترنت اکسپلورر هستید ، برای اینکه مشکلات ناشی از نمایش را نداشته باشید ، لطفا اقدام به دریافت مرورگری مناسب کرده و یا از ورژن قدیمی ما استفاده نمایید.


امتیاز موضوع:
  • 3 رأی - میانگین امتیازات: 3.67
  • 1
  • 2
  • 3
  • 4
  • 5
سوالات و مباحث مربوط به ساخت تابلو چرخان
#51
سلام .
وحید جان من یه نمونه مدار دیگه پیدا کردم که از همین شیفت رجیستر 8بیتی 74hc573 استفاده کرده و همچنین یه uln هم واسه تقویت جریان گذاشته.

با اینکه از 4تاشیفت رجیستر استفاده کرده اما همچنان از میکروی pic استفاده کرده.
اگه یه توضیح کوتاه بدی ممنون مکیشم.

   

یه سوال دیگه حالا که نیاز به میکروی سرعت بالا هست میشه از xmega32 استفاده کرد من قبلا از این میکرو استفاده کردم تا 32MHZ سرعت داره فکر نکنم کم بیاره درسته ؟
پاسخ
#52
(26 دي 1391، 11:33 عصر)mehdigostar نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
سلام .
وحید جان من یه نمونه مدار دیگه پیدا کردم که از همین شیفت رجیستر 8بیتی 74hc573 استفاده کرده و همچنین یه uln هم واسه تقویت جریان گذاشته.

با اینکه از 4تاشیفت رجیستر استفاده کرده اما همچنان از میکروی pic استفاده کرده.
اگه یه توضیح کوتاه بدی ممنون مکیشم.

یه سوال دیگه حالا که نیاز به میکروی سرعت بالا هست میشه از xmega32 استفاده کرد من قبلا از این میکرو استفاده کردم تا 32MHZ سرعت داره فکر نکنم کم بیاره درسته ؟

سلام :

بله ... نقشه رو دیدم . همونطور که قبلا" هم گفته بودم ، میکروهای PIC در بین خارجی ها بیشتر جا افتاده و بیشتر از اون توی پروژه هاشون بهره میگیرن . PIC کمتر به نویز حساسه ولی سرعتش در مقایسه با نمونهء برابر با خودش ، هیچوقت بهتر از AVR‌ نیست .

سرعت پردازش بالا بیشتر در دو حالت مورد نیاز هست :

1 - حجم دستورات بالا باشه

2 - میکرو کنترلر از سخت افزاری جانبی استفاده کرده باشه که در نتیجهء اون ، تقسیم کلاک انجام شده باشه ( مثل همون شیفت رجیستر های 16 بیتی ورودی سریال و خروجی پارالل دارند ) .

در این نمونه هایی که ما داریم روی اونها بعنوان تابلو چرخان کار میکنیم ، به هیچ وجه نیاز به این همه سرعت بالا نیست و AVR‌های معمولی هم با حداکثر سرعت 16MHz‌ یا حتی کمتر ، بخوبی هرچه تمامتر این وظیفه رو انجام میدن و احتیاجی به استفاده از XMEGA‌ نیست .
پاسخ
#53
سلام.
ممنونم از توضیحاتت آوحید جان.

چون شما تو دوتا پست قبل تر گفته بودی به علت استفاده از شیفت رجیستر نیاز به سرعت پردازش بالایی هست من گفتم که از xmega استفاده کنیم.
در هر حال منتظر میشیم ببینم پی سی بی نهایی شما کی آماده میشه که بی صبرانه منتظرم.

ایشالا تو پروژه بعدی با کمک شما همین مدارو با 64تا ال ای دی smd راه میندازیم از شیفت رجیستر هم استفاده میکنیم :D:s
پاسخ
#54
سلام آقا وحید
ببخشید آموزش تابلو چرخان رو دیگه ادامه نمیدید؟:-/
یا راهی خواهیم یافت
یا راهی خواهیم ساخت...!
پاسخ
#55
(7 بهمن 1391، 02:31 صبح)Tesla نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
خب سپاس از پاسختون و شرمنده بابت خلط مبحث!
من با PIC و AVR کار کردم...
.
.
به هر حال بنده بخاطر دلایلی که گفتم ، شخصا" برای پروژه های صنعتی هیچوقت از AVR استفاده نمیکنم ... اگر هم یه نفر از من بپرسه ، اصلا" بهش پیشنهاد نخواهم کرد !

(7 بهمن 1391، 11:33 عصر)mp1 نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
سلام آقا وحید
ببخشید آموزش تابلو چرخان رو دیگه ادامه نمیدید؟:-/

سلام :
البته که ادامه میدم ... اما دیگه نه با اون اشتیاق و فشردگی !
چون استقبال آنچنانی نشد ... منم یواش یواش سرد شدم :(
هر موقع که فرصتی گیرم بیاد میرم سراغش و یواش یواش ادامه میدم . هر چند تا همینجا هم فکر میکنم به قولم عمل کردم . البته یک بخش از نرم افزار هنوز مونده که بزودی تکمیلش میکنم .
من استارت کارو زدم ... تا همینجا هم پیش رفتم . حالا یه مقدار شما سکانو دست بگیرید و ادامه بدید ... منم از شما یاد میگیرم ( منظورم فقط شخص شما نیست ... همهء کاربران منظورمه )
پاسخ
#56
اینکه شما برای آموزش این مبحث چیزی کم نذاشتید کسی شک نداره!
خیلی هم از شما ممنونیم
شما هم لطفا سرد نشیدShy
ما منتظر ادامه آموزشتون هستیم
داشت میرسید به جاهای جذابش لطفا ادامه بدید
یادمه اوایل گفته بودید قصد دارید آموزش کاملتون رو در غالب یه PDF قرار بدید
لطفا حالا که شروع کردید تا آخرش بریدRolleyes
بخش نرم افزار رو که کامل کنید مطمئنا با انبوهی از سوالات از طرف کاربران روبرو میشید که دلگرمتون میکنه ;)
یا راهی خواهیم یافت
یا راهی خواهیم ساخت...!
پاسخ
#57
شما تو برنامتون از تایمرها و وقفه استفاده کردید
از تایمر1 برای اندازه گبری زمان یک دور چرخش
از تایمر0 و 2 برای چه منظوری استفاده کردید؟
prescale هارو بر چه اساسی انتخاب کردید؟
در مورد متغیرها هم اگه میشه یه توضیح بدید لطفا
عدد p=25 همون تعداد کاراکترهای دلخواهه؟
s و m و count بیانگر چه مقادیری هستند؟
ببخشید اگه سوالاتم زیاد شدBlush
ممنون
یا راهی خواهیم یافت
یا راهی خواهیم ساخت...!
پاسخ
#58
(8 بهمن 1391، 01:10 صبح)mp1 نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
اینکه شما برای آموزش این مبحث چیزی کم نذاشتید کسی شک نداره!
خیلی هم از شما ممنونیم
شما هم لطفا سرد نشیدShy
ما منتظر ادامه آموزشتون هستیم
داشت میرسید به جاهای جذابش لطفا ادامه بدید
یادمه اوایل گفته بودید قصد دارید آموزش کاملتون رو در غالب یه PDF قرار بدید
لطفا حالا که شروع کردید تا آخرش بریدRolleyes
بخش نرم افزار رو که کامل کنید مطمئنا با انبوهی از سوالات از طرف کاربران روبرو میشید که دلگرمتون میکنه ;)

ممنونم ... چشم . ادامه میدم . اما به مرور و سر فرصت Angel
( شرمنده که این پست شما رو دیر دیدم :s واسه همین ، الان جواب دادم Blush )
(9 بهمن 1391، 10:16 عصر)mp1 نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
شما تو برنامتون از تایمرها و وقفه استفاده کردید
از تایمر1 برای اندازه گبری زمان یک دور چرخش
از تایمر0 و 2 برای چه منظوری استفاده کردید؟
prescale هارو بر چه اساسی انتخاب کردید؟
در مورد متغیرها هم اگه میشه یه توضیح بدید لطفا
عدد p=25 همون تعداد کاراکترهای دلخواهه؟
s و m و count بیانگر چه مقادیری هستند؟
ببخشید اگه سوالاتم زیاد شدBlush
ممنون
با سلام مجدد به شما :



البته شما کاملا" حق دارید اگه این سؤالات برای شما بوجود اومده . من می بایست در ادامهء مبحث نرم فزار تابلو چرخان ، اینها رو توضیح میدادم که با کمال شرمندگی و بخاطر مشغلهء کاری و زندگی و البته تا حدود زیادی بی انگیزگی !... فرصت نشده تکمیلش کنم که در اولین فرصت این کارو تموم خواهم کرد .
و اما پاسخ شما :
اگه منظور شما ، برنامه ای هست که در ضمیمهء اول از اون تاپیک گذاشتم ، به این صورته که :


1 - از تایمر 0 برای انجام محاسبات مربوط به افکت دلخواه برای نمایش حروف استفاده کردم
2 - از تایمر 2 برای ایجاد نوع افکت استفاده کردم ( در این برنامه برای چرخش متن به چپ و راست )
3 - prescale تایمر 1 براساس فرکانس کاری میکرو و همینطور محدودهء سرعت چرخش موتور انتخاب میشه و باید حداقل 64 باشه . میتونید مقدارشو بیشتر هم قرار بدید ولی کمتر از این نباید باشه .
اگه بخوام بطور خلاصه بگم ، در این مدار و با توجه به این فرکانس کاری که من تعیین کردم ( 8Mhz ) ، هرچقدر سرعت چرخش موتور شما بیشتر باشه , میتونید عدد prescale رو کمتر بذارید و بالعکس . در این مورد باید کمی مفصل تر توضیح بدم که انشاءا... در بخش نرم افزار این کارو خواهم کرد .
4 - در مورد متغیرها باید بگم که من ، اسم متغیرها رو مناسب انتخاب نکردم ( چون با عجله و برای تست عملکرد مدار برنامه رو نوشتم ) . اگه اسم مناسبتری براشون میذاشتم ، شاید اونوقت وظیفهء هرکدوم برای شما مشخص تر میشد !Blush
وظیفهء هر متغیر به اینصورته :
K -> برای ذخیرهء محتوای تایمر 1
L -> برای نتیجهء تقسیم در برنامه
outs -> آرایه های مربوط به ذخیرهء کاراکترها
count -> بعنوان شمارنده برای تولید زمان مربوط به سرعت افکت
B -> بعنوان اشاره گر جدول lookup
M -> بعنوان نگهدارندهء عددی که مبنای تعیین محل نمایش هر کاراکتر براساس تایمر 1 هست
S -> بعنوان علامت دهندهء محل شروع و پایان افکت (چرخش)
P -> بعنوان تعیین کنندهء مبنای محل شروع نمایش کاراکترها ( یعنی نمایش و افکت از این نقطه شروع بشه )
Temp0 و Condition -> این متغیرها استفاده نشده و میتونید حذفشون کنید
******************************************************************
اگه سؤالی هست بپرسید ...
پاسخ
#59
خواهش میکنم دشمنتون شرمنده;)
خیلی ممنون بابت جواب
نقش متغیر M رو خوب متوجه نشدم(چطوری محل نمایش هر کاراکتر رو متوجه میشه؟)

اگه بخوایم فقط یه متنی رو نمایش بدیم (بدون افکت) پس نیازی به تایمر2 نداریم درسته؟(فعلا یه نمایش ساده رو یاد بگیرم;))
میشه لطفا این قسمت برنامتون رو توضیح بدید؟(اگه یه مثال عددی بزنید ممنون میشم)
اون عدد 104 تو تقسیم همون تعداد ستون های نمایشتونه؟

Int1_int:


Disable Int1 : Stop Timer1
K = Timer1 : L = K / 104
Goto Calculate


Calculate:
M = L * P : Timer1 = 65535 - M
Enable Timer1 : Start Timer1
Enable Int1


Return
خیلی ممنون که با حوصله توضیح میدید
یا راهی خواهیم یافت
یا راهی خواهیم ساخت...!
پاسخ
#60
(10 بهمن 1391، 01:43 عصر)mp1 نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
خواهش میکنم دشمنتون شرمنده;)
خیلی ممنون بابت جواب
نقش متغیر M رو خوب متوجه نشدم(چطوری محل نمایش هر کاراکتر رو متوجه میشه؟)

اگه بخوایم فقط یه متنی رو نمایش بدیم (بدون افکت) پس نیازی به تایمر2 نداریم درسته؟(فعلا یه نمایش ساده رو یاد بگیرم;))
میشه لطفا این قسمت برنامتون رو توضیح بدید؟(اگه یه مثال عددی بزنید ممنون میشم)
اون عدد 104 تو تقسیم همون تعداد ستون های نمایشتونه؟

خیلی ممنون که با حوصله توضیح میدید
من سعی میکنم هر خط از دستورات در int1 رو توضیح بدم . شاید تا حدود زیادی به درک مطلب کمک کنه :


Int1_int:


Disable Int1 : Stop Timer1
وقفه خارجی + تایمر 1 غیر فعال میشن

K = Timer1 : L = K / 104
محتوای تایمر 1 در متغیر K ذخیره و سپس بر عدد 104 تقسیم میشه و حاصلش در L قرار میگیره ( عدد 104 به این دلیله که حداکثر تعداد ستونهای قابل نمایش ما بر اساس همون محاسباتی که گفته بودم 104 تا هست )
متغیر L ، مشخص کنندهء مقیاس زمان برای نمایش هر ستون هست . مثل نقشه های جغرافیایی که مقیاسهای متفاوتی دارن . در نقشه ها ، با کوچک یا بزرگ کردن این مقیاس ، شکل نقشه که بهم نمیریزه ! فقط ابعادش کوچکتر یا بزرگتر میشه . اینجا هم به همین صورته . با این تفاوت که در اینجا ، تغییرات احتمالی ، در سرعت موتور هست که ممکنه بوجود بیاد .

Goto Calculate
این دستور رو برای کار دیگه ای قبلا" نوشته بودم که در اینجا کاربرد نداره و میتونید پاکش کنید .

Calculate:
M = L * P : Timer1 = 65535 - M

مقدار متغیر P به این صورت تنظیم شده و با یک مثال برای شما توضیح میدم :

فرض کنید مثلا" یک خط کش 50 سانتی متری دارید و یک تکه چوب 10 سانتی متری . حالا این تکه چوبو بذارید بر روی خط کش و به دو طرفش راه ببرید . متعادلترین فضایی که برای حرکت چوب در اختیار دارید چند سانتی متره ؟
طبیعتا" 20 سانتی متر ( به هر طرف ) . منم از همین الگو برای ایجاد افکت چرخش به چپ و راست استفاده کردم .

چون طول تمام کاراکترهام 54 بوده ، پس 50=54-104 . بنابراین P رو نصف عدد 50 گذاشتم . یعنی 25

( اینها همه اختیاری و بستگی به سلیقهء هر شخص داره )



با ضرب متغیر های P و L در هم و قرار دادن حاصل اونها در متغیر M ، عددی بدست میاد . اونو از 65535 کم کردم و در تایمر 1 قرار دادم . حالا با شمارش تایمر به تعداد M ، دقیقا" در مکان مورد نظر و دلخواه ما کاراکترها شروع به نمایش داده شدن میکنن

Enable Timer1 : Start Timer1
Enable Int1

و در نهایت هم دوباره وقفه و تایمر 1 فعال میشن


Return
******************************************


بله ... برای نمایش متن بدون افکت نیازی به تایمر 2 نیست .
پاسخ
مشترک شدن در این موضوع


پرش به انجمن:

کاربرانِ درحال بازدید از این موضوع: 1 مهمان

انتخاب پوسته :

دسترسی سریع
درباره ما
انجمن سرزمین الکترونیک در 20 شهریور 91 تاسیس شده ، که همیشه سعی کرده با ظاهری متفاوت و سرعتی خوب رضایت کاربران را جلب کند ، امیدواریم توانسته باشیم گامی کوچک در پیشرفت فناوری در ایران برداشته باشیم...
نیرو گرفته از MyBB 1.8.6 با فارسی سازی مای بی بی ایران - طراحی شده در : ملت دیزاین
© تمامی حقوق برای انجمن سرزمین الکترونیک محفوظ می باشد .

پوسته‌ی انجمن: