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

   

abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:
قديم 20-06-2015, 01:46 AM المشاركة 113   
افتراضي



السلام عليكم
انا أعتذر حاليا لان مشغول
تحياتي
شكرا اخي العزيز

اعلانات

abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:
قديم 25-06-2015, 09:05 PM المشاركة 114   
افتراضي


وما توفيقي إلا بالله العلي العظيم

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

mar7aba_01
:: موقوف ::
تاريخ التسجيل: Jan 2010
الدولة: المغرب
المشاركات: 739
نشاط [ mar7aba_01 ]
قوة السمعة:
قديم 10-12-2015, 06:36 AM المشاركة 115   
افتراضي


السلام عليكم
ممكن العمل على مكتبة "led adressable " ws8212B هي ليدات معنونة
وممكن العمل على مكتبة ledISP يعني ترجمة المعطيات من الحاسوب أو الهاتف الأندرويد مباشرة لمخارج النيكرو


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
نشاط [ مشتاق الله ]
قوة السمعة:
قديم 11-12-2015, 10:55 PM المشاركة 116   
افتراضي فكرة جميلة


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

اخوانى هل من طريقة لتحويل مشروع عملته و اريد ان احوله الى مكتبة لتظهر فى مكتبات ميكرو سي .


و الله الموفق و المستعان

في الحياة :ثلاثة عوالم
عالم الفكر و عالم الاشخاص و عالم الاشياء
ايهما نبدأ لنغير انفسنا "كتاب حتى يغيروا ما بانفسهم
"



مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
نشاط [ مشتاق الله ]
قوة السمعة:
قديم 15-12-2015, 02:46 PM المشاركة 117   
x4 مشاركة ب addressable led ws2801


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

اليكم برنامج للتحكم في addressable led باستخدام ic ws2801 و هي تتحكم في ال RGB LED باستخدام بروتوكول I2C او SPI . لكن قمت باختبار شكل الخرج على بروتيوس و نجحت لكن ليس عندى وحدة الليدات للتجربة , ارجو من يستطيع تجربتها يطمنى على شغلها و طريقة توصيلها سهلة و موضحة بالداتا شيت لل IC .


البروسيسور : ATMEGA 8 or 16 - التردد 8mhz مذبذب داخلى
برنامج : ميكروسي
من اراد سؤال او اراد التعديل عليه او ينتفع به فهو ملك لكم ...


كود:
                      // NOTE : when color array start with elemnt =255 it makes error in I2C. so make it =254 .
                      // But in spi commu. no errors
                      // led addressable control by ic WS2801
                      // processor ATMEGA any one , pins==> SDA , SCL , PULL UPpins by 10k resistor
//******************************************************************
char White[]={254,255,255} , Red[]= {254,0,0} , Green[]={0,128,0} , Blue[]={0,0,255} ,Yellow[]={254,255,0} , Lime[]= {0,255,0}     ;
char pink[]= {254,20,147} , violet[]= {138,43,226} , aqua[]= {0,255,255} , orange[]= {254,165,0} , chocolate[]= {210,105,30}        ;

const int total_led = 3;  // total leds
//******************************************************************
void F_L ( char RED ,char GREEN ,char BLUE){
int k ; 
  TWI_Start();
 for( k=1 ; k<=total_led ; k++){
              TWI_Write(RED);
              TWI_Write(GREEN);
              TWI_Write(BLUE);
          DELAY_ms(300);
      }
   TWI_Stop();
  }
//******************************************************************
void all (char RED ,char GREEN ,char BLUE){
int k ;
  TWI_Start();
 for( k=1 ; k<=total_led ; k++){
              TWI_Write(RED);
              TWI_Write(GREEN);
              TWI_Write(BLUE);
      }  
   TWI_Stop();
  }
//******************************************************************
void L_F (char RED ,char GREEN ,char BLUE , char MOV_RED ,char MOV_GREEN, char MOV_BLUE){
int k , m ,n ;
  all(RED,GREEN,BLUE);
  delay_ms(300);
  TWI_Start();
     for(k=1 ; k<=total_led ; k++){
               for(m=1 ; m<=k ; m++){ TWI_Write( MOV_RED); TWI_Write( MOV_GREEN); TWI_Write( MOV_BLUE);}
               for( n=1 ; n<=(total_led-k) ; n++){
                                      TWI_Write(RED);
                                      TWI_Write(GREEN);
                                      TWI_Write(BLUE);
                                      }
            delay_ms(300);
           }
   TWI_Stop();
  }
//******************************************************************
void arms (char arms_num ,char RED,char GREEN , char BLUE){
char arm_len[]={1,2,3} ;     // arm_len= no. of led/arm ,  arms_num= no. of total arms = no. of array element .
char k  , m ,  LEN ;
TWI_Start();
for(m=0 ; m<arms_num ; m++){
                          LEN=arm_len[m];
  for(k=1; k<=LEN; k++){
   TWI_Write(RED);
   TWI_Write(GREEN);
   TWI_Write(BLUE);
     }
  }
 TWI_Stop();
 }
 //******************************************************************

void main() { TWI_Init(100000);

 F_L(chocolate[0],chocolate[1],chocolate[2]);
 all(orange[0],orange[1],orange[2]); delay_ms(500);
 L_F(white[0],white[1],WHITE[2],GREEN[0],GREEN[1],GREEN[2]);
 ARMS(3,pink[0],pink[1],pink[2]) ;

 // SPI1_init_advanced( _SPI_MASTER , _SPI_FCY_DIV4 , _SPI_CLK_LO_LEADING  ) ;
 // SPI1_WRITE(ORANGE[0]);SPI1_WRITE(ORANGE[1]);SPI1_WRITE(ORANGE[2]);


}


و الله الموفق و المستعان
اول مراحل تغيير النفس هو تغيير افكارها




mar7aba_01
:: موقوف ::
تاريخ التسجيل: Jan 2010
الدولة: المغرب
المشاركات: 739
نشاط [ mar7aba_01 ]
قوة السمعة:
قديم 16-02-2016, 06:42 AM المشاركة 118   
افتراضي


شكرا لك أخي "مشتاق الله " على المثال
لكن عند صياغته على الميكروسي يعطب أخطاء
هذا مثال آخر على متحكم PIC18F4550
أتمنى لو يقوم أحد الإخوة بإنتاج ملف هيكس فأنا لا أدري من أين أبدء

[IMG][/IMG]

هذا ملف السي NeoCol.c

كود:
#include <NeoCol.h>
#include <stdlib.h>

unsigned int8 NeoGreen [NeoNum];
unsigned int8 NeoBlue [NeoNum];
unsigned int8 NeoRed [NeoNum];

void NeoBit (int1 Bit)
{
   if (Bit == 1)
   { output_high (NeoPin); delay_cycles (6); output_low (NeoPin); } // delay_cycles (3); // Bit '1'   
   else
   { output_high (NeoPin); delay_cycles (3); output_low (NeoPin); } // delay_cycles (6); // Bit '0'   
}
void NeoInit (void)
{
   unsigned int8 NeoPixel;
   for (NeoPixel = 0; NeoPixel < NeoNum; NeoPixel++)   
   {
      if (NeoPixel < 10)
         { NeoGreen[NeoPixel] = 0; NeoBlue[NeoPixel] = 0; NeoRed[NeoPixel] = 64; }
      else if ((NeoPixel >= 10) & (NeoPixel < 20))
         { NeoGreen[NeoPixel] = 0; NeoBlue[NeoPixel] = 64; NeoRed[NeoPixel] = 0; }
      else if ((NeoPixel >= 20) & (NeoPixel < 30))
         { NeoGreen[NeoPixel] = 0; NeoBlue[NeoPixel] = 64; NeoRed[NeoPixel] = 64; }
      else if ((NeoPixel >= 30) & (NeoPixel < 40))
         { NeoGreen[NeoPixel] = 64; NeoBlue[NeoPixel] = 0; NeoRed[NeoPixel] = 0; }
      else if ((NeoPixel >= 40) & (NeoPixel < 50))
         { NeoGreen[NeoPixel] = 64; NeoBlue[NeoPixel] = 0; NeoRed[NeoPixel] = 64; }
      else if ((NeoPixel >= 50) & (NeoPixel < NeoNum))
         { NeoGreen[NeoPixel] = 64; NeoBlue[NeoPixel] = 64; NeoRed[NeoPixel] = 0; }      
   }
}
void NeoDraw (void)
{
   unsigned int8 NeoPixel;
   signed int8 BitCount;
   for (NeoPixel = 0; NeoPixel < NeoNum; NeoPixel++)
   {    
      for (BitCount = 7; BitCount >= 0; BitCount--)      
         NeoBit(bit_test(NeoGreen[NeoPixel], BitCount));      
      for (BitCount = 7; BitCount >= 0; BitCount--)           
         NeoBit(bit_test(NeoRed[NeoPixel], BitCount));            
      for (BitCount = 7; BitCount >= 0; BitCount--)      
         NeoBit(bit_test(NeoBlue[NeoPixel], BitCount));      
   }
   output_low (NeoPin);
}
void NeoRotate (void)
{
   unsigned int8 NeoPixel;   
   for (NeoPixel = 0; NeoPixel < NeoNum - 1; NeoPixel++)   
   {           
      NeoGreen[NeoPixel] = NeoGreen[NeoPixel + 1];
      NeoBlue[NeoPixel] = NeoBlue[NeoPixel + 1];
      NeoRed[NeoPixel] = NeoRed[NeoPixel + 1];
   }
   NeoGreen[NeoNum - 1] = NeoGreen[0];
   NeoBlue[NeoNum - 1] = NeoBlue[0];
   NeoRed[NeoNum - 1] = NeoRed[0]; 
}
void main()
{   
   NeoInit ();   
   while(true)
   {       
      NeoDraw ();
      NeoRotate ();
      delay_ms (25);
   }
}

وهذا ملف NeoCol.h


كود:
#include <18F4550.h>
#device ADC = 16

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)

#use delay(clock=48000000,crystal=20000000)

#define NeoPin PIN_E0
#define NeoNum 60
#define RAND_MAX 64
#define ALL_OUT 0x00
#define ALL_IN  0xFF
#byte PORTA = 0xF80


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
نشاط [ مشتاق الله ]
قوة السمعة:
قديم 16-02-2016, 10:23 AM المشاركة 119   
sun


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

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

اخى العزيز جزاك الله خيرا الكود جربته و يعمل بشرط التاكد من التردد 8 ميجا
او قلل سرعة الارسال

كود:
void main() { TWI_Init(10000);

تقبل الله منك و منا


من لم يحي بروح القران لا يحي
"وكذلك اوحينا اليك روحا من امرنا"
قدمه و ارفعه عن كل الكتب ليرفع قدرك
قال(ص) " إن الله يرفع بهذا الكتاب أقواماً ويضع به آخرين "



الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 16-02-2016, 09:09 PM المشاركة 120   
افتراضي


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

اخوانى هل من طريقة لتحويل مشروع عملته و اريد ان احوله الى مكتبة لتظهر فى مكتبات ميكرو سي .


و الله الموفق و المستعان

في الحياة :ثلاثة عوالم
عالم الفكر و عالم الاشخاص و عالم الاشياء
ايهما نبدأ لنغير انفسنا "كتاب حتى يغيروا ما بانفسهم
"

السلام عليكم

نعم ممكن اخي

راجع مشاركه 91
http://www.qariya.info/vb/showthread...143596&page=12

وأعتذر على تأخير بالرد

تحياتي



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