۰۴-تير-۱۳۹۴, ۱۴:۰۱:۵۲
۰۴-تير-۱۳۹۴, ۱۹:۲۹:۰۲
سلام
اقا من این برنامه رو با کدویژن نوشتم و توی پروتئوس کار کرد و درست هم کار کرد
چون می خوام می خوام ارائه بدم گفتم خودم سعی کنم ببینم می تونم بنویسم
چون هنوز جای سنسور رو عوض نکردم توی روبات امتحان نکردم
شما یه زحمت بکش ببین درست نوشتم
while (1)
{
if (PINA.0==0&&PINA.1==0&&PINA.2==1&&PINA.3==0&&PINA.4==0)
{
PORTD.0=1;
PORTD.1=0;
PORTD.2=1;
PORTD.3=0;
PORTD.4=1;
PORTD.5=1;
}
if (PINA.0==0&&PINA.1==1&&PINA.2==0&&PINA.3==0&&PINA.4==0)
{
PORTD.0=0;
PORTD.1=0;
PORTD.2=1;
PORTD.3=0;
PORTD.4=0;
PORTD.5=1;
}
if (PINA.0==1&&PINA.1==0&&PINA.2==0&&PINA.3==0&&PINA.4==0)
{
PORTD.0=0;
PORTD.1=0;
PORTD.2=1;
PORTD.3=0;
PORTD.4=0;
PORTD.5=1;
}
if (PINA.0==0&&PINA.1==0&&PINA.2==0&&PINA.3==1&&PINA.4==0)
{
PORTD.0=0;
PORTD.1=1;
PORTD.2=0;
PORTD.3=0;
PORTD.4=1;
PORTD.5=0;
}
if (PINA.0==0&&PINA.1==0&&PINA.2==0&&PINA.3==0&&PINA.4==1)
{
PORTD.0=0;
PORTD.1=1;
PORTD.2=0;
PORTD.3=0;
PORTD.4=1;
PORTD.5=0;
}
if (PINA.0==0&&PINA.1==0&&PINA.2==0&&PINA.3==0&&PINA.4==0)
{
PORTD.0=0;
PORTD.1=0;
PORTD.2=0;
PORTD.3=0;
PORTD.4=0;
PORTD.5=0;
}
}
}
اقا من این برنامه رو با کدویژن نوشتم و توی پروتئوس کار کرد و درست هم کار کرد
چون می خوام می خوام ارائه بدم گفتم خودم سعی کنم ببینم می تونم بنویسم
چون هنوز جای سنسور رو عوض نکردم توی روبات امتحان نکردم
شما یه زحمت بکش ببین درست نوشتم
while (1)
{
if (PINA.0==0&&PINA.1==0&&PINA.2==1&&PINA.3==0&&PINA.4==0)
{
PORTD.0=1;
PORTD.1=0;
PORTD.2=1;
PORTD.3=0;
PORTD.4=1;
PORTD.5=1;
}
if (PINA.0==0&&PINA.1==1&&PINA.2==0&&PINA.3==0&&PINA.4==0)
{
PORTD.0=0;
PORTD.1=0;
PORTD.2=1;
PORTD.3=0;
PORTD.4=0;
PORTD.5=1;
}
if (PINA.0==1&&PINA.1==0&&PINA.2==0&&PINA.3==0&&PINA.4==0)
{
PORTD.0=0;
PORTD.1=0;
PORTD.2=1;
PORTD.3=0;
PORTD.4=0;
PORTD.5=1;
}
if (PINA.0==0&&PINA.1==0&&PINA.2==0&&PINA.3==1&&PINA.4==0)
{
PORTD.0=0;
PORTD.1=1;
PORTD.2=0;
PORTD.3=0;
PORTD.4=1;
PORTD.5=0;
}
if (PINA.0==0&&PINA.1==0&&PINA.2==0&&PINA.3==0&&PINA.4==1)
{
PORTD.0=0;
PORTD.1=1;
PORTD.2=0;
PORTD.3=0;
PORTD.4=1;
PORTD.5=0;
}
if (PINA.0==0&&PINA.1==0&&PINA.2==0&&PINA.3==0&&PINA.4==0)
{
PORTD.0=0;
PORTD.1=0;
PORTD.2=0;
PORTD.3=0;
PORTD.4=0;
PORTD.5=0;
}
}
}
۰۵-تير-۱۳۹۴, ۱۲:۴۱:۳۲
سلام
اقا من کار های زیر رو انجام دادم
1_ تغییر مثبت و منفی گیرنده ها (گیرنده ها وقتی روی صفحه سفید هستد بازه بین 0.22 تا 2.80 را نشان می دهد و توی صفحه سیاه بین 3.80تا4.80 را نشان می ده )
2_ با اون برنامه ای که شما نوشتی ه دو موتور کار می کرد ولی با برنامه که توی سایت هست نه فقط یکی از موتور ها کار می کنه .
3_ وقتی پتانسو متر رو زیاد و کم می کنیم انگار روی دوره موتور ها تاثیر می زاره و کم و زیاد می شه .
اقا من کار های زیر رو انجام دادم
1_ تغییر مثبت و منفی گیرنده ها (گیرنده ها وقتی روی صفحه سفید هستد بازه بین 0.22 تا 2.80 را نشان می دهد و توی صفحه سیاه بین 3.80تا4.80 را نشان می ده )
2_ با اون برنامه ای که شما نوشتی ه دو موتور کار می کرد ولی با برنامه که توی سایت هست نه فقط یکی از موتور ها کار می کنه .
3_ وقتی پتانسو متر رو زیاد و کم می کنیم انگار روی دوره موتور ها تاثیر می زاره و کم و زیاد می شه .
۰۵-تير-۱۳۹۴, ۱۲:۴۴:۱۳
سلام
1-خوبه الان سنسور ها هم درسته.
2-صبر کن هنوز قسمت سنسور رات کامل کار نمیکنه.
3-در مورد اپ امپ چیزی میدونی؟
1-خوبه الان سنسور ها هم درسته.
2-صبر کن هنوز قسمت سنسور رات کامل کار نمیکنه.
3-در مورد اپ امپ چیزی میدونی؟
۰۵-تير-۱۳۹۴, ۱۲:۵۳:۳۲
نه ؟ فقط می دونم تبدیل انالوگ به دیجیتال رو انجام می ده
۰۵-تير-۱۳۹۴, ۱۲:۵۸:۳۴
اقا وقتی دستم رو روی یکی از سنسور های که راست می گیرم موتور سمت چپ کار می کنه وای برای مخالفش هیچ عملی انجام نمی ده دستم رو که برمی دارم قطع می شه دوره موتور
۰۵-تير-۱۳۹۴, ۱۳:۲۲:۰۰
سلام
توی نت بگردی مطلب زیاد هست ولی یه توضیح مختصری هم میدم:
اپ امپ یه قطعه است با 5 پایه که یکیش vcc که باید به 5 ولت وصل بشه(البته در اینجا چون اگه بیشتر از 5 ولت باشه با میکرو اسیب میزنه) یکیش هم gnd که باید به زمین یا منفی وصل بشه دو تا هم ورودی اند و یکیش هم خروجی.
اون ورودی ها یکیش مثبته و یکیش هم منفی ما وقتی به پایه های ورودی اپ امپ ولتاژ میدیم اپ امژ مقل یک ولتمتر عمل میکنه اگر ولتاژ ورودی مثبت بیشتر بود تو خروجی vcc رو قرار میده(5 ولت) و اگه منفی بیشتر بود تو خروجی gnd رو قرار میده.
http://www.uplooder.net/img/image/92/23d...opamp2.jpg
این هم lm324 که چهار تا پایه اپ امپ داره که vcc و gnd ها شون همه به هم وصله:
http://www.uplooder.net/img/image/69/537...M324_1.jpg
حالا ما میایم به یکی از ورودی اپ امپ ها خروجی سنسور ها (همونی که گفتم اندازه بگیری) و یکیش هم پتانسیومتر وصل میکنیم و پتانسیومتر رو باید طوری تنظیم کنیم که توی خروجی 5 ولت(1 دیجیتال) و 0 ولت(0 دیجیتال) داشته باشیم.
الان فرض کن پتانسومتر رو روی 3 ولت گذاشتیم و به ورودی منفی اپ امپ وصل کردیم و خروجی سنسور رو هم به اون یکی وقتی سنسور میره رو رنگ سیاه فرض کنیم خروجی میشه 2 ولت پس چون 3 از 2 بزرگ تره تو خروجی 0 دیجیتال خواهیم داشت و اگر هم بره رو رنگ سفید چون 4 ولت از 3 بزرگ تره تو خروجی 1 دیجیتال(5 ولت) خواهیم داشت.
و این گونه بود که انالوگ به دیجیتال تبدیل گردید :d
تو باید پتانسیومتر رو طوری تنظیم کنی که در پایه هایی که به میکرو متصل است 0 و 1 داشته باشیم.
مشکلی بود بگو.
توی نت بگردی مطلب زیاد هست ولی یه توضیح مختصری هم میدم:
اپ امپ یه قطعه است با 5 پایه که یکیش vcc که باید به 5 ولت وصل بشه(البته در اینجا چون اگه بیشتر از 5 ولت باشه با میکرو اسیب میزنه) یکیش هم gnd که باید به زمین یا منفی وصل بشه دو تا هم ورودی اند و یکیش هم خروجی.
اون ورودی ها یکیش مثبته و یکیش هم منفی ما وقتی به پایه های ورودی اپ امپ ولتاژ میدیم اپ امژ مقل یک ولتمتر عمل میکنه اگر ولتاژ ورودی مثبت بیشتر بود تو خروجی vcc رو قرار میده(5 ولت) و اگه منفی بیشتر بود تو خروجی gnd رو قرار میده.
http://www.uplooder.net/img/image/92/23d...opamp2.jpg
این هم lm324 که چهار تا پایه اپ امپ داره که vcc و gnd ها شون همه به هم وصله:
http://www.uplooder.net/img/image/69/537...M324_1.jpg
حالا ما میایم به یکی از ورودی اپ امپ ها خروجی سنسور ها (همونی که گفتم اندازه بگیری) و یکیش هم پتانسیومتر وصل میکنیم و پتانسیومتر رو باید طوری تنظیم کنیم که توی خروجی 5 ولت(1 دیجیتال) و 0 ولت(0 دیجیتال) داشته باشیم.
الان فرض کن پتانسومتر رو روی 3 ولت گذاشتیم و به ورودی منفی اپ امپ وصل کردیم و خروجی سنسور رو هم به اون یکی وقتی سنسور میره رو رنگ سیاه فرض کنیم خروجی میشه 2 ولت پس چون 3 از 2 بزرگ تره تو خروجی 0 دیجیتال خواهیم داشت و اگر هم بره رو رنگ سفید چون 4 ولت از 3 بزرگ تره تو خروجی 1 دیجیتال(5 ولت) خواهیم داشت.
و این گونه بود که انالوگ به دیجیتال تبدیل گردید :d
تو باید پتانسیومتر رو طوری تنظیم کنی که در پایه هایی که به میکرو متصل است 0 و 1 داشته باشیم.
مشکلی بود بگو.
۰۵-تير-۱۳۹۴, ۱۴:۴۹:۰۸
سلام
برنامه ای که نوشته شده مربوط به 3سال پیشه
ممکنه چارچوب خوبی نداشته باشه ولی درست هست و تست شده
تنها ایرادی که من دیدم این دوتا خط رو بیار داخل حلقه DO
A = Pwm1a
B = Pwm1b
این برنامه رو چک کن
آستانه سنسورات نسبتا خوب هست:
برای 0 منطی مقادیر 0.22 تا 2.80
و برای 1 منطقی 3.80تا4.80
الان خروجی پتانسیومترت رو باید روی دقیقا 3.3(تقریبا حد وسط) ولت تنظیم کنی
تا به ازای مقادیر بیشتر از 3.3ولت سنسور خروجی مقایسه کننده 1 و به ازای کمتر از 3.3 ولت خروجی 0 بشه
ملاک درست بودن برنامه هم فقط تعقیب خط هست
رو هوا چیزی مشخص نمیشه
برنامه ای که نوشته شده مربوط به 3سال پیشه
ممکنه چارچوب خوبی نداشته باشه ولی درست هست و تست شده
تنها ایرادی که من دیدم این دوتا خط رو بیار داخل حلقه DO
A = Pwm1a
B = Pwm1b
این برنامه رو چک کن
کد:
$regfile = "m16def.dat"
$crystal = 1000000
'==============================================================================
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 64
Config Portd = Output
Config Porta = Input
'==============================================================================
Dim A As Word
Dim B As Word
'==============================================================================
Do
'============================= jolo =============================================
A = Pwm1a
B = Pwm1b
If Pina.2 = 1 And Pina.4 = 0 And Pina.0 = 0 Then
Portd = &B00000101
A = 1023
B = 1023
Elseif Pina.0 = 0 And Pina.2 = 0 And Pina.1 = 0 And Pina.3 = 0 And Pina.4 = 0 Then
Portd = &B00000000
End If
If Pina.1 = 1 And Pina.4 = 0 And Pina.0 = 0 Then
Portd = &B00000101
A = 1023
B = 1023
Elseif Pina.0 = 0 And Pina.1 = 0 And Pina.2 = 0 And Pina.3 = 0 And Pina.4 = 0 Then
Portd = &B00000000
End If
If Pina.3 = 1 And Pina.4 = 0 And Pina.0 = 0 Then
Portd = &B00000101
A = 1023
B = 1023
Elseif Pina.0 = 0 And Pina.1 = 0 And Pina.2 = 0 And Pina.3 = 0 And Pina.4 = 0 Then
Portd = &B00000000
End If
If Pina.2 = 1 And Pina.1 = 1 And Pina.4 = 0 And Pina.0 = 0 Then
Portd = &B00000101
A = 1023
B = 1023
Elseif Pina.0 = 0 And Pina.1 = 0 And Pina.2 = 0 And Pina.3 = 0 And Pina.4 = 0 Then
Portd = &B00000000
End If
If Pina.2 = 1 And Pina.3 = 1 And Pina.4 = 0 And Pina.0 = 0 Then
Portd = &B00000101
A = 1023
B = 1023
Elseif Pina.0 = 0 And Pina.1 = 0 And Pina.2 = 0 And Pina.3 = 0 And Pina.4 = 0 Then
Portd = &B00000000
End If
'=============================enheraf b chap===================================
If Pina.0 = 1 And Pina.1 = 1 Then
Portd = &B00000001
Elseif Pina.0 = 0 And Pina.1 = 0 And Pina.2 = 0 And Pina.3 = 0 And Pina.4 = 0 Then
Portd = &B00000000
End If
If Pina.0 = 1 Then
Portd = &B00000001
Elseif Pina.0 = 0 And Pina.1 = 0 And Pina.2 = 0 And Pina.3 = 0 And Pina.4 = 0 Then
Portd = &B00000000
End If
'=============================enheraf b rast===================================
If Pina.4 = 1 And Pina.3 = 1 Then
Portd = &B00000100
Elseif Pina.0 = 0 And Pina.1 = 0 And Pina.2 = 0 And Pina.3 = 0 And Pina.4 = 0 Then
Portd = &B00000000
End If
If Pina.4 = 1 Then
Portd = &B00000100
Elseif Pina.0 = 0 And Pina.1 = 0 And Pina.2 = 0 And Pina.3 = 0 And Pina.4 = 0 Then
Portd = &B00000000
End If
Loop
برای 0 منطی مقادیر 0.22 تا 2.80
و برای 1 منطقی 3.80تا4.80
الان خروجی پتانسیومترت رو باید روی دقیقا 3.3(تقریبا حد وسط) ولت تنظیم کنی
تا به ازای مقادیر بیشتر از 3.3ولت سنسور خروجی مقایسه کننده 1 و به ازای کمتر از 3.3 ولت خروجی 0 بشه
ملاک درست بودن برنامه هم فقط تعقیب خط هست
رو هوا چیزی مشخص نمیشه
۰۵-تير-۱۳۹۴, ۱۷:۴۱:۴۵
سلام
1_ نمی دونم چی شد دوباره روبات اصلا کار نمی کنه خروجی رگولاتور رو چک کردم درسته . سنسور ها هم روشنه ولی اصلا انگار برق نداره
2_ میکرو پرو گرام می شه ولی انگار اجرا نمی کنه حتی مثل قبل که یک طرفه حرکت می کرد ؟
3_ احتمال داره از درایور باشه ؟ چه طوری میکرو و درایور رو تست کنم ؟
1_ نمی دونم چی شد دوباره روبات اصلا کار نمی کنه خروجی رگولاتور رو چک کردم درسته . سنسور ها هم روشنه ولی اصلا انگار برق نداره
2_ میکرو پرو گرام می شه ولی انگار اجرا نمی کنه حتی مثل قبل که یک طرفه حرکت می کرد ؟
3_ احتمال داره از درایور باشه ؟ چه طوری میکرو و درایور رو تست کنم ؟
۰۵-تير-۱۳۹۴, ۱۷:۵۰:۳۰
همون برنامه ای من داده بودم رو دوباره بریز ببین کار میکنه یانه؟
۰۵-تير-۱۳۹۴, ۲۰:۲۴:۰۵
برنامه شما رو گذاشتم ولی کار نکرد. احتمالا از درایور باشه .چون میکرو با بیسکام کاملا پرو گرام می شه و می شناسه . من فرکانس داخلی هم چک کردم و تغییر دادم رو 1khz int ولی تاثیری نداشت