ايران ويج

نسخه‌ی کامل: چگونگي تبديل از pic به avr
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
سنسور رو از مدار جدا كنيد .

سنسور رو جلوي نور بگير و مقاومت دو سرش رو با استفاده از اهم متر يادداشت كن .
بار ديگه سنسور رو در محيط عادي قرار بده و مقاومتش رو ياداشت كن ...

بعد اين مقادير رو بهم بگو ...

برنامه اتون درست هست ، با توجه به چيزي كه گفتين ، سنسور ها پايه هاي ورودي رو 1 مي كنن و طبيعي هست ...
من بي دقتي كردم ، سنسور ها رو نبايد اونطوري ببنديد ! چون اين باعث مي شه 2 سرشون ولتاژ VCC باشه و پايه هاي ورودي 1 بشه ...

اگر در محيط بدون نور ، مقاومت دو سر سنسور ها خيلي زياد باشه ، به روشي كه مي گم سنسور ها رو ببنديد .

جاي سنسور ها يه مقاومت بذاريد به عنوان pull up و بعد بين pull up تا پايه ي ميكرو ، سنسورتون رو به صورت سري ببنديد و به پايه ي ميكرو بزنيد.

اينطوري وقتي نور نيست ، مثل اينه كه سنسور اتصال باز هست . ( يعني پايه 0 مي شه )
و وقتي نور هست مثل اينه كه سنسور اتصال كوتاه هست. ( يعني پايه 1 مي شه )

البته اگر مقاومتش در محيط تاريك زياد و در محيط پر نور ، كم نباشه ، چيزي كه گفتم جواب نمي ده و بايد يه كار ديگه كرد ...

منم نگفتم اتصال موتور اشتباه هست ! عكسي كه در پيوست گذاشتيد رو ديده بودم ...

به هر حال ببينيد جواب مي ده ...

موفق باشيد.
يا علي.
من اصلا به اهم متر دسترسي ندارم كه ميزان مقاومت سنسورها رو بهت
بگم.
كاملا اونها رو توي آزمايشگاه دوستام تست كردم و ديدم كه در برابر نور تغيير مقاومت مي ده... پس كار ميكنه.
در ضمن اين راهنمايي كه در مورد سنسورها كردي رو پياده كردم تو پروتوس گذاشتم واست .
ببين بازم نظرت رو بهم بگو.
ممنون از لطفت
در مورد مولتي متر ، حتما يكي تهيه كن ، 3500 توماني هم هست ازشون ...
مقادير رو براي محاسبه مي خواستم ... ، نگفتم كه خرابه :d

در مورد فايل پروتوس ، نه منظورم اين نبود ... ، اين كار نمي ده به هيچ وجه ...

ديشب يه چيزايي نوشتم ، فايل پيوست رو بگير ، اميدوارم مشكلت حل بشه ...

براي مقادير مقاومت هايي هم كه شك داري يه پتانسيومتر بذار و امتحان كن و بعد مقدار پتانسيومتر رو بخون و جاش يه مقاومت نزديك بهش رو بذار ... ( مولتي متر بگير ... )

موفق باشي.
يا علي.
باشه ...
روش كار ميكنم ايشالله كه جواب بده اين لعنتي.
بازم ممنون كه راهنمايي كردي
سلام
0 و 1 منطقيش به نظرم داره الان كار ميكنه اما يه حدسي ميزنم كه چرا به خروجي نميبره ... يا اصلا ميكرو درست به vcc و gnd وصل نشده ... يا كلا برنامش ايراد داره.
مدار موتورم هم به دونوع طراحي كردم ... يكيش مثل همون اوليه هست ... يكيشم مثل مثالي كه زدي اما به صورت خروجي گذاشتم گفتم شايد اين جوري 0 و 1 منطقي رو بگيره ...
وقتي فايل و اجرا ميكني ببين چرا وقتي 1 و 0 ميكني پايه هاي ورودي فعال ميشن اما خروجي عكس العملي نداره...!!!!!!
سلام

تو برنامه ات چند تا اشكال كوچولو داشتي ...

اول از همه كل برنامه رو در يه حلقه ي Do_Loop بذار . ( برنامه ات هيچ وقت نبايد به end برسه ... )
بعد اين دو خط رو :
کد:
R = Portb.2
L = Portb.1
به اين صورت اصلاح كن :
کد:
R = Pinb.2
L = Pinb.1
نوع متغيير هات رو هم از نوع BIT تعريف كن ( بهينه تر هست )

دقت كن كه براي نوشتن به پايه ها از port و براي خوندنشون از Pin استفاده مي كنيم ...

ديگه درست مي شه ...

راستي همون روش 3 كه قبلا گفتم احتمالا جواب مي ده ها ... ، نيازي به اپ امپ هم احتمالا نيست ، ولي براي محكم كاري خوبه ...

موفق باشي.
يا علي.
من قبل از اينكه اين مشكل رو اينجا مطرح كنم تمام اين راهها رو امتحان كردم.
حلقه براش گذاشتم ... نشد.
جاي port ها رو با pin عوض كردم ... نشد.
كل برنامه رو از اول به يه صورت ديگه نوشتم ... نشد.
به جاي كد زير:
کد:
R = Portb.2
L = Portb.1
A = Pind.5
B = Pind.6
از اين كد ها استفاده كردم بازم نشد.
کد:
A = &B01100000
B = &B00100000
C = &B01000000
D = &B00000000
كه در واقع pin هاي خروجي رو به صورت باينري 0 و 1 ميكنه ... بازم كار نكرد.
يعني واقعا يه ربات نورياب با ميكرو اينقدر درد سر داره.!!!!!!!!!
به خدا بازم ميگم ميكرو اصلا كار نميكنه ... اصلا پردازشي صورت نميگيره ... هيچ بيتي در خروجي رد و بدل نميشه.
مي دونم كلافه شدي ... اما خداييش هركاري بلد بودم كردم ولي نميشه.
جاي همه ي port ها رو نمي خواد ، فقط همون مواردي رو كه گفتم رعايت كن ... .
به جاي موتور و ... ، يه LED بذار . به جاي ورودي كه سنسور هست ، يه كليد معمولي بذار ...
اينطوري عملي تست كن .

اگر روي برد بورد مي بندي ، براي IC ها رو حتما روي سوكت نظامي بذار و توي برد برد قرار بده ... .
با مولتي متر ولتاژ پايه ها رو چك كن .
مطمئن بشو درست پرو گرام مي شه ... .

ساخت روبات نور ياب سخت نيست ، اما معمولا هر وقت تازه شروع به كار عملي مي كني ، به علت كم بود تجربه ممكنه اشتباهات خيلي تابلو اي هم داشته باشي ...
حتي شايد سخت افزار رو درست نمي بندي ...
اصلا شايد ميكروت خرابه ... ( با يه ميكرو ي ديگه امتحان كن )
تغذيه ي ميكرو رو چك كن ببين 5 ولت هست ...
VCC و AVCC رو به هم وصل كن ، GND هاي مدار رو به هم وصل كن ...
و 1001 مورد ديگه ...

اگر تجربه ي اول هست ، پيشنهاد مي كنم يه LED رو معمولي با ميكرو روشن خاموش كني ،‌مرحله ي بعد با استفاده از كليد ورودي اين كار رو انجام بدي و رفته رفته كامل ترش كني ...
اينطوري تجربيات ريزي گيرت مي ياد كه براي كاراي بزرگتر بدردت مي خوره ... .

با اون اصلاحاتي كه تو برنامه ات گفتم انجام بدي ، پروتوس من جواب داد .

در ضمن اگر عملي تست مي كني ، مقاومت ها رو هم درست بايد انتخاب كني ...
در كل الان وضعيت شما كاملا مجهوله ... ، نمي تونم رو مورد خاصي دست بذارم بگم اينجا اشتباهه ... !
از اون حسگر گرفته تا عملي بستن مدار ...

شروع كنيد يكي يكي از كارايي كه كرديد مطمئن بشيد ، مثلا اون اپ امپ رو ببينيد به تنهايي به صورت عملي مي تونيد ازش جواب بگيريد ؟
و جاي موتور و ترانزيستور و ... از يه LED در خروجي استفاده كنيد و ...

موفق باشيد.
يا علي.

تا اينجاش درست ...
من برنامه رو رو همون ميكرو براي led نوشتم جواب داد...
به جاي موتور led گذاشتم نشد.
يه چيزي شما تو پروتوس كه ميخواي ميكرو رو فراخوني كني از چه كدي استفاده ميكني ؟
من مينويسم atmega32 بعد ميكرو مياد و منم درگش ميكنم... بدبختي اينجاست اصلا پايه هاش با اصلش همخوني نداره ... پورت ها سر جاشون نيستن... نه زمين معلومه نه vcc.
درسته كه نوشته كدوم پورت جاش كجاست اما تو عمل پايه ي 10 و 11 ميكرو ميزنيم به برق رو برد بورد ، اماتو پروتوس چي؟
اگه ميشه اون فايلي كه گفتي تو پروتوس برات جواب داد رو برام بزار. تا ببينم اشكال كارم كجاست ... شايد تونستم درستش كنم.
به جاي موتور LED گذاشتي ؟ ، يعني ترانزيستور ها بودن ؟
هدف من از انجام اينكار اين بود كه از برنامه ات مطمئن شي كه درسته يا اشكال داره ...
_ در پروتوس به همين روشي كه شما ميكرو رو مياري ، منم همينطوري ميارم .
قرار نيست پايه ها سر جاشون باشن ... !
اين فقط يه شماتيك هست و براي راحتي كار و تشخيص پايه هاست ... ، اينطوري كه خيلي بهتره ... !
VCC و GND رو براي ميكرو نيازي نيست وصل كني ، خودش وصل شده در نظر ميگيره ...
اما براي باقيه مداراتت بايد وصل كني ...

تو اون فايل پروتوس كه گفتم جواب داد ، برنامه اتون رو ساده كردم و فقط يه if براي پايه ي ورودي گذاشتم ( ورودي يك كليد بود ) و خروجي رو هم يه LED گذاشتم.
وقتي اون تيكه از دستور با port بود ، جواب نمي داد . بعد ديدم جاي pin از port استفاده كرديد ، اصلاح كردم درست شد ...
در ضمن باز مي گم ، نمي دونم تا چقدر رو چك كرديد ، خيلي سر بسته صحبت مي كنيد ، اما اين رو هم در نظر بگيريد كه ممكنه ترانزيستوري كه استفاده مي كنيد مناسب نباشه ...
اول از انتخاب قطعاتتون مطمئن بشيد و بعد دنبال وصل كردنش به ميكرو بشيد ...
براي چك كردن مدار هم از يه جاي مشخص شروع به چك كردن كنيد و از اينجا به اونجا نپريد ، به ترتيب و با دقت موارد رو يكي پس از ديگري بررسي كنيد كه ببينيد اشكال كار كجاست ...

موفق باشيد.
يا علي.
نحوه تبدیل کردن برنامه اتون مشکل داره، مدار خیلی ساده ای هست، برای خوندن سنسور ها از getrc استفاده کنین
http://avrhelp.mcselec.com/index.html?getrc.htm
در کل چیز ساده و مسخره ای به نظر میاد که فکر کنم از نو بسازین بهتر هست و ارزش تبدیل رو نداره
صفحه‌ها: 1 2 3