قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

mastertiger
:: مهندس متواجد ::
تاريخ التسجيل: May 2010
المشاركات: 69
نشاط [ mastertiger ]
قوة السمعة:0
قديم 06-08-2012, 03:36 AM المشاركة 1   
افتراضي مساعدة فى برنامج بلغة الميكرو سى Twitter FaceBook Google+



السلام عليكم ورحمة الله وبركاتة
هل يوجد امر فى البيك (بلغة الميكرو سى)
يقيس التغير
بمعنى عندى switch 1 متوصل بالارضى (0)
عن طريقة هيتم تشغيل motor 1
المفروض الماتور يشتغل بعد (تغير switch 1 الى 1 ورجوعة مرة اخرى الى 0 )

اعلانات

الصورة الرمزية 3bkarino medo
3bkarino medo
:: مهندس جيد ::
تاريخ التسجيل: Mar 2012
الدولة: دمنهور البحيرة
المشاركات: 272
نشاط [ 3bkarino medo ]
قوة السمعة:0
قديم 06-08-2012, 04:08 AM المشاركة 2   
افتراضي


بوص يا اخي انت سؤالك مش واضح كويس
بس اذا كنت تقصد ان لديك زرار button وموصل بطرف من اطراف البيك بمقاومه رفع
والطرف الاخر للزر موصل بالارضي
فان الكود سيكون
كود:
void main (){
trisb = 0;
portb = 0;
trisa = 255;
if ( porta.f1==0){
portb = 255 ;
}
}

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 666
نشاط [ funky112233 ]
قوة السمعة:92
قديم 06-08-2012, 04:39 AM المشاركة 3   
افتراضي


بسم الله الرحمن الرحيم

هذه طريقة من احدى الطرق

كود:
if(porta.f0==1){while(porta.f0==1){if(porta.f0==0){portb.f1=1;}}}
وهنا اذا كان السويتش متوصل على الطرف 0 من البورت A
فا فى البداية سوف ينتظر البك الى ان يتغير حالتة الى 1
ثم يقوم بعمل حلقة تكرارية طلاما ان الزر مازال يساوى 1
وفى نفس الوقت يختبر هل هو بصفر ام ما زال يساوى 1
فاذا ساوى 1 يعيد التكرار واذا ساوى 0 يشغل الطرف 0 من البورت B
ويخلية ب1


هل هذا هو طلبك ؟؟


mastertiger
:: مهندس متواجد ::
تاريخ التسجيل: May 2010
المشاركات: 69
نشاط [ mastertiger ]
قوة السمعة:0
قديم 06-08-2012, 11:53 AM المشاركة 4   
افتراضي


انا هحاول اشرح البرنامج كلة بصورة بسيطة
هو بنامج للتحكم فى robotic arm ياخذ قطعه العمل من خط الانتاج ثم يضعها فى fixture ليتم تثبيتها اوتماتيكيا وعندما تنتهى ال cnc يرجع لاخذها
يوجد sensor فى zero point of cnc يعنى فى مكان باية التشغيل وبعد نهايتة
سوف اقوم بوضع البرنامج مع الرسم والتفاصيل فى قسم المشاريع بأذن الله
المشكلة الان ان على robotic arm ان يتوقف الى ان يتغير وضع الsensor من 0 الى 1 ثم يعود الى 0 فيعمل الrebotic مرة اخرى
///////////////////////4 axes cnc machine with robotic arm//////////////////////
///////////////////////////////tiger team///////////////////////////////////////
//////////////////////////////mohammed aly//////////////////////////////////////
/////////////////////////////ahmed mohammed/////////////////////////////////////
/////////////////////////////abdel rahman///////////////////////////////////////
/////////////////////////////sherif/////////////////////////////////////////////

void main() {


int a; // variable a
int b; // variable b
int c; // variable c
int d; // variable d
int e; // variable e
int f; // variable f
int h; // variable i
int j; // variable j
int k; // variable k
int i; // variable l
int m; // variable m
int n; // variable n
int o; // variable o
int p; // variable p
int q; // variable q
int r; // variable r
int s; // variable s
int t; // variable t
int u; // variable u
int v; // variable v
int w; // variable w
int x; // variable x
int y; // variable y
int z; // variable z
trisa=0; // porta output
trisb=0; // portb output
trisd=0; // portd output
portd=0; // portd output zero
trisc=0xff; // portc input
portb=0; // portb output zero
porta=0; // porta output zero
loop: // loop for all program
if(portc.f0==0) // if push start

portb=0b10000000; // run dc motor

if(portc.f1==0) // if work piece cut sensor
{

portb=0; // dc motor stop
for(a=0;a<10;a++) //loop for link 2 down to take work piece
{
portb=0b01100000;
delay_ms(100);
portb=0b01000000;
delay_ms(100);

}

portb=0;
for(b=0;b<10;b++) // graper close
{
portb=0b00000001;
delay_us(3000);
portb=0;
delay_ms(20);
}

for(c=0;c<10;c++) //loop for link 2 up
{
portb=0b001000000;
delay_ms(100);
portb=0b000000000;
delay_ms(100);
}
portb=0;
for(d=0;d<10;d++) //loop for motor base go to fixture
{
portb=0b00011000;
delay_ms(100);
portb=0b00010000;
delay_ms(100);

}
portb=0;
for(e=0;e<10;e++) //loop for link2 down to put work piece in fixture
{
portb=0b01100000;
delay_ms(100);
portb=0b01000000;
delay_ms(100);

}

portb=0;
for(f=0;f<10;f++) //motor of fixture close
{
portb=0b000000110;
delay_ms(100);
portb=0b000000010;
delay_ms(100);
}
portb=0;
for(h=0;h<20;h++) // graper open to leave work piece in fixture
{
portb=0b00000001;
delay_us(1000);
portb=0b00000000;
delay_ms(20);
}
for(j=0;j<10;j++) // motor of base go back to production line
{
portb=0b000001000;
delay_ms(100);
portb=0b000000000;
delay_ms(100);
}
portb=0;
if(portc.f2==1){while(portc.f2==1){

if(portc.f2==0) // if cnc finish
{
for(k=0;k<10;k++) // motor base go to fixture
{
portb=0b00011000;
delay_ms(100);
portb=0b00010000;
delay_ms(100);
}
portb=0;
for(i=0;i<10;i++) // link 2 down to take work piece from fixture
{
portb=0b01100000;
delay_ms(100);
portb=0b01000000;
delay_ms(100);
}
portb=0;
for(m=0;m<10;m++) // graper close to take work piece from fixture
{
portb=0b00000001;
delay_us(3000);
portb=0b00000000;
delay_ms(20);
}
portb=0;
for(n=0;n<10;n++) //motor of fixture open
{
portb=0b00000010;
delay_ms(100);
portb=0b00000000;
delay_ms(100);
}
portb=0;
for(p=0;p<10;p++) //loop for link 2 up
{
portb=0b00100000;
delay_ms(100);
portb=0b00000000;
delay_ms(100);
}
portb=0;
for(q=0;q<10;q++) //motor of base take work piece to production line
{
portb=0b00001000;
delay_ms(100);
portb=0b00000000;
delay_ms(100);
}
portb=0;

for(r=0;r<10;r++) // link 2 down to put work piece in production line
{
portb=0b01100000;
delay_ms(100);
portb=0b01000000;
delay_ms(100);
}
portb=0;
for(s=0;s<25;s++) //graper open to leave work piece on production line
{
portb=0b00000001;
delay_us(1000);
portb=0b00000000;
delay_ms(20);
}
portb=0;
portb=0b10000000;
delay_ms(9000);
portb=0b00000000;



}}
}
goto loop;
}
للتجرية على ledshttp://www.mediafire.com/download.php?7zo7c2n5eniaenb


التعديل الأخير تم بواسطة : mastertiger بتاريخ 06-08-2012 الساعة 11:59 AM
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 12:41 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025