سلام ، دوستان بالاخره به کمک شما دوستان تونستم یک ربات بسازم که تا به حال یک بار رتبه آورده ( مقام اول نمایشگاه دانش آموزی مقطع راهنمایی مشهد ) .
حالا بریم سر اصل مطلب :
من این ربات رو ساختم بعضی موقع ها خیلی خوب کار میکرد بعضی موقع ها هم که یکم زیادی شارژ می شد به علت سرعت بسیار بالا قابلیت تعقیب خط را نداشت . -- ( البته تو نمایشگاه شانس آوردم درست کار کرد )-- چون من PWM بلد نبودم اومدم ولتاژ رو کم کردم و به موتور ها دادم و توسط یک ترانزیستور اونو کنترل می کردم -- ( اگه PWM بلد بودم همه چی حل می شد ) -- ولی وقتی یکم شارژ کم می شد به علت سنگینی ربات می ایستاد و حرکت نمی کرد و وقتی هم که زیاد شارژ می شد قاطی می کرد . در ضمن همانطور که در برنامه پایین می بینید من موتور ها رو به d7 و d6 دادم . ( MEGA8).و ورودی های منم توی برنامه پایین مشخصه. حالا به نظر شما نمی شه برنامه ای بهتر از این نوشت :
منتظر نظرات سازنده شما هستم ... در ضمن بعضی جاها اصلا آیسی قاط میزد و اولا که روی ال سی دی می نوشت حروف نامربوطی می نوشت.
حالا بریم سر اصل مطلب :
من این ربات رو ساختم بعضی موقع ها خیلی خوب کار میکرد بعضی موقع ها هم که یکم زیادی شارژ می شد به علت سرعت بسیار بالا قابلیت تعقیب خط را نداشت . -- ( البته تو نمایشگاه شانس آوردم درست کار کرد )-- چون من PWM بلد نبودم اومدم ولتاژ رو کم کردم و به موتور ها دادم و توسط یک ترانزیستور اونو کنترل می کردم -- ( اگه PWM بلد بودم همه چی حل می شد ) -- ولی وقتی یکم شارژ کم می شد به علت سنگینی ربات می ایستاد و حرکت نمی کرد و وقتی هم که زیاد شارژ می شد قاطی می کرد . در ضمن همانطور که در برنامه پایین می بینید من موتور ها رو به d7 و d6 دادم . ( MEGA8).و ورودی های منم توی برنامه پایین مشخصه. حالا به نظر شما نمی شه برنامه ای بهتر از این نوشت :
کد:
Dim Z As Word Dim Res As Integer Dim Z1 As Word Dim Res1 As Integer Dim Z2 As Word Dim Res2 As Integer Config Portd = Output Config Adc = Single , Prescaler = Auto , Reference = Off Start Adc Cursor Off Z = 0 Res = 0 Z1 = 0 Res1 = 0 Z2 = 0 Res2 = 0 Do 'Sensor I / A Z = Getadc(5) Res = Z 'Sensor II / L Z1 = Getadc(4) Res1 = Z1 'Sensor III / R Z2 = Getadc(3) Res2 = Z2 ' ^^^^^^^^^ < < < ### ROBOT ### > > > ^^^^^^^^^ If Res < 900 And Res1 > 900 And Res2 > 900 Then ' X ' O O Set Portd.7 ' LEFT Set Portd.6 End If If Res > 900 And Res1 > 900 And Res2 < 900 Then ' O ' O X Reset Portd.7 ' LEFT Set Portd.6 ' right End If If Res > 900 And Res1 < 900 And Res2 > 900 Then ' O ' X O Set Portd.7 ' LEFT Reset Portd.6 'Right End If If Res > 900 And Res1 > 900 And Res2 > 900 Then ' O ' O O Set Portd.7 ' LEFT Set Portd.6 'Right End If If Res < 900 And Res1 < 900 And Res2 < 900 Then ' X ' X X Set Portd.7 ' LEFT Set Portd.6 End If If Res < 900 And Res1 < 900 And Res2 > 900 Then ' X ' X O Set Portd.7 ' LEFT Set Portd.6 'Right End If If Res < 900 And Res1 > 900 And Res2 < 900 Then ' X ' O X Set Portd.7 ' LEFT Set Portd.6 End If Loop End
دیدگاه