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

   

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



بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته

الحمد لله الذى بنعمته تتم الصالحات ,
اولا : اليس هذا العرض الذى نبحث عنه تظهر الحروف تدريجيا ثم تتحرك تدريجيا ثم تتلاشى تدريجيا , اليس هذا ما يستخدم فى العرض للشاشات .
بعون الله يتبقى لنا ان نتحكم فى الرسائل المعروضة . اما عن التحكم فى السرعة فيمكن ذلك بتغيير قيم الاسطر الحمراء فى الكود التالى .
كود:
void step_Move(char step);
unsigned char i = 0 ,j =0 ,k=0 , n=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};


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

void step_Move(char step){
char i;
 for (i=0; i< step; i++){
     delay_us(500);        // decrease for more speed  in moving.
 }
}
char *all_letters[] = {letter_m,letter_i,letter_c,letter_r,letter_o} ;
char message[] = "ABCDE";
char divide =0;

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

SREG_I_bit = 1;
PCICR |= 1<<PCIE0;
PCMSK0 |= 1<<PCINT1;
      while(1){
         stepdelay = 0;
           for(i=0; i<(7*strlen(message)); i++) {
               while(1){
                 while(START_flag == 0){ }
                     for (k=0 ; k<=i ; k++){
                       divide = k/7;
                       PORTD=all_letters[(message[divide] - 65)][k - divide*7];
                       delay_us(400);
                       if (( !(k - divide)%6) && (k%7)){
                       portd = 0;
                       delay_us(1200);}
                      }
                   portd = 0;
                   START_flag = 0;
                   numbofturns++;
                    if (numbofturns == 3 ) {     // decrease for more speed  in writing message .
                              numbofturns = 0;
                              break;
                     }
                }

            }
   //-------------------------------------------------------------------
           stepdelay++;
               while(1){
                 while(START_flag == 0){ }
                       step_Move(stepdelay);
                     for(i=0; i<(7*strlen(message)); i++){
                       divide = i/7;
                       PORTD=all_letters[(message[divide] - 65)][i - divide*7];
                       if (RELOAD_flag ==1){ break;}
                       delay_us(400);
                       if (( !(i - divide)%6) && (i%7)){
                          portd = 0;
                          delay_us(1200);
                       }
                     }
                   portd = 0;
                   START_flag = 0;
                   numbofturns++;
                    if (numbofturns == 3 ) {     // decrease for more speed  in moving.
                              numbofturns = 0;
                              stepdelay++;
                     }
                   if (RELOAD_flag ==1){ RELOAD_flag = 0; START_flag = 1; if(i<=1){break;}}
                   
                }
          }
 }
و للاخوة الاعضاء ارفع لكم صورة للمنتج الذى وصلنا اليه حتى الان و لله الحمد و الفضل و المنة :
و هى تكتب تدريجيا و تتحرك كذلك و تتلاشى كذلك بفضل الله .



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

اعلانات

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


السلام عليكم اخي واستاذي العظيم ،مشتاق الله ،الله يجزيك الف خير كلامك صحيح ولكن لم نصل بعد للهدف المطلوب ، تحملني ارجوك هههههه ، في هذا الكود 119، نقطة (1) تبدا الحروف يالضهور حرف تلو اخر الي تكتمل الكلمة المبرمجة بعدها تبدا بالتحرك يعني في البداية الحروف تكون واقفة بعدها تتحرك ، نقطة (2) كلمة MICRO تبدا بحرف حرف M وتنتهي بحرف O وعند نهاية الدورة اول حرف يبدا بالتلاشي هو حرف O والاصول اول حرف يتلاشي هو اول حرف يضهر، يعني بالمختصر اخي العزيز ، اول حرف يجب ان يضهر هو حرف O بعده حرف R وهكذا وطبعا يخرج الحرف وهو يتحرك وليس انتضار الكلمة لتكتمل وبعدها تتحرك ،وارجو ان تكون الفكرة وصلت وهذا المشروع انجاز عظيم جدا من حضرتك بارك الله فيك وهذا الكود فيه بعض التعديلات ونكون قد وصلنا للنتيجة المرجوة ، ولوتكرمت امعن في كلامي تجد كلامي صحيح ودمت بامان الله ياطيب

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

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


السلام عليكم اخي واستاذي العظيم ،مشتاق الله ،الله يجزيك الف خير كلامك صحيح ولكن لم نصل بعد للهدف المطلوب ، تحملني ارجوك هههههه ، في هذا الكود 119، نقطة (1) تبدا الحروف يالضهور حرف تلو اخر الي تكتمل الكلمة المبرمجة بعدها تبدا بالتحرك يعني في البداية الحروف تكون واقفة بعدها تتحرك ، نقطة (2) كلمة MICRO تبدا بحرف حرف M وتنتهي بحرف O وعند نهاية الدورة اول حرف يبدا بالتلاشي هو حرف O والاصول اول حرف يتلاشي هو اول حرف يضهر، يعني بالمختصر اخي العزيز ، اول حرف يجب ان يضهر هو حرف O بعده حرف R وهكذا وطبعا يخرج الحرف وهو يتحرك وليس انتضار الكلمة لتكتمل وبعدها تتحرك ،وارجو ان تكون الفكرة وصلت وهذا المشروع انجاز عظيم جدا من حضرتك بارك الله فيك وهذا الكود فيه بعض التعديلات ونكون قد وصلنا للنتيجة المرجوة ، ولوتكرمت امعن في كلامي تجد كلامي صحيح ودمت بامان الله ياطيب
حضرتك صح , ادعو الله ان يوفقنى لهذا التعديل


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


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


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


بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته

الحمد لله الذى بنعمته تتم الصالحات , الله المستعان حقيقة استفدت شخصيا من الكود و افكاره .
جرب و بانتظار الفيديو ان شاء الله
كود:
#define numletterBytes 7
void step_Move(char step);
unsigned char i = 0 ,j =0 ,k=0 , n=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};


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

void step_Move(char step){
char i;
 for (i=0; i< step; i++){
     delay_us(500);        // decrease for more speed  in moving.
 }
}
char *all_letters[] = {letter_m,letter_i,letter_c,letter_r,letter_o} ;
char message[] = "ABCDE";
char divide =0;

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

SREG_I_bit = 1;
PCICR |= 1<<PCIE0;
PCMSK0 |= 1<<PCINT1;
      while(1){
         stepdelay = 0;
           for(i=(numletterBytes * strlen(message))-1; i>=0; i--){
               while(1){
                 while(START_flag == 0){ }
                    for (k=i ; k<(numletterBytes * strlen(message)); k++){
                       divide = k/numletterBytes;
                       PORTD=all_letters[(message[divide] - 65)][k - divide*numletterBytes];
                       delay_us(400);
                       if (( !(k - divide)%(numletterBytes-1)) && (k % numletterBytes)){
                       portd = 0;
                       delay_us(1200);}
                      }
                   portd = 0;
                   START_flag = 0;
                   numbofturns++;
                    if (numbofturns == 3 ) {     // decrease for more speed  in writing message .
                              numbofturns = 0;
                              break;
                     }
                }

            }
   //-------------------------------------------------------------------
           stepdelay++;
               while(1){
                 while(START_flag == 0){ }
                       step_Move(stepdelay);
                     for(i=0; i<(numletterBytes*strlen(message)); i++){
                       divide = i/numletterBytes;
                       PORTD=all_letters[(message[divide] - 65)][i - divide*numletterBytes];
                       if (RELOAD_flag ==1){ break;}
                       delay_us(400);
                       if (( !(i - divide)%(numletterBytes - 1)) && (i%numletterBytes)){
                          portd = 0;
                          delay_us(1200);
                       }
                     }
                   portd = 0;
                   START_flag = 0;
                   numbofturns++;
                    if (numbofturns == 3 ) {     // decrease for more speed  in moving.
                              numbofturns = 0;
                              stepdelay++;
                     }
                   if (RELOAD_flag ==1){ RELOAD_flag = 0; START_flag = 1; if(i<=1){break;}}

                }
          }
 }
اللهم صبرك و نصرك
و الله المستعان
ولا حول و لا قوة الا بالله



hassan.pic
:: مهندس متميز ::
تاريخ التسجيل: Aug 2016
المشاركات: 300
نشاط [ hassan.pic ]
قوة السمعة:
قديم 16-11-2016, 12:19 AM المشاركة 494   
افتراضي


حياك الله استاذي العظيم والحمدلله علي كل شي ، توكلنا علي الله وغدا باذن الله غدا صباحا اوافيك بالنتائج. ، دمت بامان الله ياطيب


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


السلام عليكم استاذي العظيم. ،رائع جدا جدا خرجت الجروف مثل تماما تبدا بO وتنتهي بM مع ملاحظة صغيرة عند اكتمال الكلمة تختفي وتعود من البداية بعد حوالي 5 دقائق. شرحتلك التجربة في حال لم يصلك الفيديو ،ودمت بامان الله ياطيب


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


السلام عليكم اخي واستاذي العظيم بقي لدينا خطوة واحدة ونصل الي نهاية المشروع بفضل الله وفضلك استاذ مشتاق الله ،
الخطوة الاولي انتهينا منها ،
الخطوة الثانية ، عند بداية ضهور الاحرف يجب ان تتابع طريقها بدون توقف وليس اكتمال الكلمة بعدها تبدا بالتحرك يعني يخرج حرف O ويتابع طريقه ويلحق به حرف R وهكذا ، استاذي بعرف اني عم ثقل عليك تحملني بعدها تره المشروع كم هو رائع ،والله يجزيك الف خير واطال الله في عمرك ياطيب



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