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

   

hassan.pic
:: مهندس متميز ::
تاريخ التسجيل: Aug 2016
المشاركات: 300
نشاط [ hassan.pic ]
قوة السمعة:
قديم 07-11-2016, 06:00 PM المشاركة 441   
افتراضي



السلام عليكم اخي العزيز، انا بعتذر لم اوافيك بالنتائج بسبب انقطاع الكهرباء منذ الصباح الي الان فانا من سوريا والوضع عنا صعب والامور الخدمية صعبة جدا فالكهرباء نراها كم ساعة فقط. فلاحول ولا قوة الابالله ، في حين اتت الكهرباء اوافيك فورا بالنتائج ، حياك الله ياطيب

اعلانات

hassan.pic
:: مهندس متميز ::
تاريخ التسجيل: Aug 2016
المشاركات: 300
نشاط [ hassan.pic ]
قوة السمعة:
قديم 07-11-2016, 08:48 PM المشاركة 442   
افتراضي


تجربة كود جديد(1),
السلام عليكم اخي العزيز قمت بتجربة الكود والاحرف ثابتة مكانها وقمت بعدها بالغاء التعديل الاحمر، ونفس ابنتيجة وقمت بعدها بالغاء stepdelay فتحركت الحروف ولكن نفس المشكلة القديمة ،حيااك الله

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

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
نشاط [ مشتاق الله ]
قوة السمعة:
قديم 08-11-2016, 09:51 AM المشاركة 443   
sun


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

السلام عليكم و رحمة الله و بركاته
توكل على الله الذى لا اله الا هو :
اخى العزيز اعذرنى على كثرة التجارب لعله لصعوبة المحاكاة على بروتيوس او لعدم شغلى فى مثل هذه الفكرة قبلا .
و الله المستعان , هذا الكود به تغيير بسيط , اذا لم يعمل, ان شاء الله ساقوم بتعديل اكبر .
ملاحظة : الكود الاحمر اذا مسحته سيتحرك الحروك لدورة واحدة ثم تتعطل .
طلب : ارجو معرفة بالنظر تقريبا عدد خطوات الحروف التى تتحركها حتى تكمل الدورة الاولى و تنتهى .
كود:
void step_Move(char step);
char i = 0 , START_flag = 0 , RELOAD_flag = 0 ;
char stepdelay = 0;
unsigned int  numbofturns = 0;

char letter_M[] = {0xfe,0xfe,0x60,0x30,0x60,0xfe,0xfe};
char letter_i[] = { 0x00,0x82,0xfe,0xfe,0x82,0x00,0x00};
char letter_c[] = { 0x38,0x7c,0xc6,0x82,0x82,0xc6,0x44};
char letter_R[] = {0x82,0xfe,0xfe,0x98,0x9c,0xf6,0x62};
char letter_O[] = {0X38,0X7C,0XC6,0X82,0XC6,0X7C,0X38};
char letter_p[] = { 0x82,0xfe,0xfe,0x92,0x90,0xf0,0x60};
char letter_Rr[] = { 0x82,0xfe,0xfe,0x98,0x9c,0xf6,0x62};

void interrup() iv IVT_ADDR_PCINT0 ics ICS_AUTO {
 PCIFR.PCIF0 = 1;
 if ((PINB & 0X02) && (START_flag == 0) ) {START_flag = 1;}
 if ((PINB & 0X02) && (START_flag == 1) ) {RELOAD_flag = 1;}
}

void step_Move(char step){
 for (i=0; i< step; i++){
     delay_us(600);       //
 }
}

void main() {
DDRD = 0XFF;
PORTD = 0;
DDRB = 0XFD;
PORTB = 2;

SREG_I_bit = 1;
PCICR |= 1<<PCIE0;
PCMSK0 |= 1<<PCINT1;
while(1){ 
 if (START_flag == 1){
          numbofturns++;
          if (numbofturns == 4 ) {
             numbofturns = 0;
             stepdelay++;
          }
          step_Move(stepdelay);

          for(i=0; i<7; i++){PORTD=letter_M[i]; if (RELOAD_flag == 1){  if (i <=1){stepdelay = 0;}
                                                                        PORTD = 0;
                                                                        break ;
                                                                      }
                              delay_us(300);
                             }
          
          if (RELOAD_flag == 1) {RELOAD_flag = 0;
                                 continue;
                                }
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_I[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_C[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

         for(i=0; i<7; i++){PORTD=letter_R[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_O[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_P[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_Rr[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);
          
          START_flag = 0;

    }
 }
}
و ما توفيقى الا بالله
و لا حول و لا قوة الا بالله
اللهم صبرك و نصرك




hassan.pic
:: مهندس متميز ::
تاريخ التسجيل: Aug 2016
المشاركات: 300
نشاط [ hassan.pic ]
قوة السمعة:
قديم 08-11-2016, 03:35 PM المشاركة 444   
افتراضي


الكود الجديد(2) السلام عليكم اخي العزيز, قمت بتجربة الكود والنتيجة لم تتحرك الحروف وتحركت كما تفضلت عند الغاء التعديل وقمت بعد الخطوات فمثلا حرف M منذ بدايته وحتى نهايته 50 خطوة , بارك اتعابك ودمت بامان الله ياطيب


hassan.pic
:: مهندس متميز ::
تاريخ التسجيل: Aug 2016
المشاركات: 300
نشاط [ hassan.pic ]
قوة السمعة:
قديم 08-11-2016, 06:39 PM المشاركة 445   
افتراضي


اخي الفاضل والله شي بحير ماهو سر الدورة الثانية في المشروع الاول والمشروع الثاني نفس المشكلة والكود الجديد بتاع حضرتك اروع كود في العالم كتقنية عرض بس باقي ازالة المشكلة ،ودمت بامان الله


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
نشاط [ مشتاق الله ]
قوة السمعة:
قديم 08-11-2016, 08:56 PM المشاركة 446   
sun


اخي الفاضل والله شي بحير ماهو سر الدورة الثانية في المشروع الاول والمشروع الثاني نفس المشكلة والكود الجديد بتاع حضرتك اروع كود في العالم كتقنية عرض بس باقي ازالة المشكلة ،ودمت بامان الله
ادعو الله لان مع العسر يسران , بحاول اوصل لمكان المشكلة و الله المستعان


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
نشاط [ مشتاق الله ]
قوة السمعة:
قديم 08-11-2016, 09:01 PM المشاركة 447   
sun


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

السلام عليكم و رحمة الله و بركاته
توكل على الله الذى لا اله الا هو :
ان شاء الله اذا نجح هذا الكود تقريبا يمكنك ضبطه بتغيير قيمة ال 50 بالاحمر و هى تمثل عدد الخطوات فى الدورة الكاملة.

اسم هذا الكود (كود111)
كود:
void step_Move(char step);
char i = 0 , START_flag = 0 , RELOAD_flag = 0 ;
char stepdelay = 0;
unsigned int  numbofturns = 0;

char letter_M[] = {0xfe,0xfe,0x60,0x30,0x60,0xfe,0xfe};
char letter_i[] = { 0x00,0x82,0xfe,0xfe,0x82,0x00,0x00};
char letter_c[] = { 0x38,0x7c,0xc6,0x82,0x82,0xc6,0x44};
char letter_R[] = {0x82,0xfe,0xfe,0x98,0x9c,0xf6,0x62};
char letter_O[] = {0X38,0X7C,0XC6,0X82,0XC6,0X7C,0X38};
char letter_p[] = { 0x82,0xfe,0xfe,0x92,0x90,0xf0,0x60};
char letter_Rr[] = { 0x82,0xfe,0xfe,0x98,0x9c,0xf6,0x62};

void interrup() iv IVT_ADDR_PCINT0 ics ICS_AUTO {
 PCIFR.PCIF0 = 1;
 if ((PINB & 0X02) && (START_flag == 0) ) {START_flag = 1;}
 if ((PINB & 0X02) && (START_flag == 1) ) {RELOAD_flag = 1;}
}

void step_Move(char step){
 for (i=0; i< step; i++){
     delay_us(600);       //
 }
}

void main() {
DDRD = 0XFF;
PORTD = 0;
DDRB = 0XFD;
PORTB = 2;

SREG_I_bit = 1;
PCICR |= 1<<PCIE0;
PCMSK0 |= 1<<PCINT1;
while(1){ 
 if (START_flag == 1){
          numbofturns++;
          if (numbofturns == 4 ) {
             numbofturns = 0;
             stepdelay++;
             if (stepdelay > 50){stepdelay = 0;}
          }
          step_Move(stepdelay);

          for(i=0; i<7; i++){PORTD=letter_M[i]; if (RELOAD_flag == 1){
                                                                        PORTD = 0;
                                                                        break ;
                                                                      }
                              delay_us(300);
                             }
          
          if (RELOAD_flag == 1) {RELOAD_flag = 0;
                                 continue;
                                }
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_I[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_C[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

         for(i=0; i<7; i++){PORTD=letter_R[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_O[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_P[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_Rr[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);
          
          START_flag = 0;

    }
 }
}
و ما توفيقى الا بالله

و لا حول و لا قوة الا بالله
اللهم صبرك و نصرك



التعديل الأخير تم بواسطة : مشتاق الله بتاريخ 08-11-2016 الساعة 09:30 PM

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
نشاط [ مشتاق الله ]
قوة السمعة:
قديم 08-11-2016, 09:33 PM المشاركة 448   
sun


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

السلام عليكم و رحمة الله و بركاته
توكل على الله الذى لا اله الا هو و جرب هذا ايضا :
يا رب

اسم هذا الكود (كود 122 )
كود:
void step_Move(char step);
char i = 0 , START_flag = 0 , RELOAD_flag = 0 ;
char stepdelay = 0;
unsigned int  numbofturns = 0;

char letter_M[] = {0xfe,0xfe,0x60,0x30,0x60,0xfe,0xfe};
char letter_i[] = { 0x00,0x82,0xfe,0xfe,0x82,0x00,0x00};
char letter_c[] = { 0x38,0x7c,0xc6,0x82,0x82,0xc6,0x44};
char letter_R[] = {0x82,0xfe,0xfe,0x98,0x9c,0xf6,0x62};
char letter_O[] = {0X38,0X7C,0XC6,0X82,0XC6,0X7C,0X38};
char letter_p[] = { 0x82,0xfe,0xfe,0x92,0x90,0xf0,0x60};
char letter_Rr[] = { 0x82,0xfe,0xfe,0x98,0x9c,0xf6,0x62};

void interrup() iv IVT_ADDR_PCINT0 ics ICS_AUTO {
 PCIFR.PCIF0 = 1;
 if ((PINB & 0X02) && (START_flag == 0) ) {START_flag = 1;}
 if ((PINB & 0X02) && (START_flag == 1) ) {RELOAD_flag = 1;}
}

void step_Move(char step){
 for (i=0; i< step; i++){
     delay_us(600);       //
 }
}

void main() {
DDRD = 0XFF;
PORTD = 0;
DDRB = 0XFD;
PORTB = 2;

SREG_I_bit = 1;
PCICR |= 1<<PCIE0;
PCMSK0 |= 1<<PCINT1;
while(1){
stepdelay = 0;
numbofturns = 0;

while( 1){
   if(START_flag == 1){
          numbofturns++;
          if (numbofturns == 4 ) {
             numbofturns = 0;
             stepdelay++;

          }
          step_Move(stepdelay);

          for(i=0; i<7; i++){PORTD=letter_M[i]; if (RELOAD_flag == 1){PORTD = 0; break ; }
                              delay_us(300);
                             }

          if (RELOAD_flag == 1) {RELOAD_flag = 0;
                                 if (i <=1){break;}
                                 continue;
                                }
          PORTD=0; delay_us(1200);

      for(i=0; i<7; i++){PORTD=letter_I[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_C[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

         for(i=0; i<7; i++){PORTD=letter_R[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_O[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_P[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          for(i=0; i<7; i++){PORTD=letter_Rr[i]; if (RELOAD_flag == 1) {PORTD = 0; break ;} delay_us(300);}
          if (RELOAD_flag == 1) {RELOAD_flag = 0; continue;}
          PORTD=0; delay_us(1200);

          START_flag = 0;
       }
    }
    START_flag = 0;
 }
}
و ما توفيقى الا بالله
و لا حول و لا قوة الا بالله
اللهم صبرك و نصرك





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