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

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

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 21-05-2016, 04:24 PM المشاركة 1   
sun جرس حصص للمدارس - مع امكانية ضبط الزمن و التاريخ و زمن الحصص للاسبوع Twitter FaceBook Google+



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

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

اخوتى فى الله بفضل الله و توفيقه اقدم لكم مشروع جرس حصص للمدارس.

المشروع هدية لاخوانى لمن يريد التعديل او الانتفاع به (اذا كان انتفاع تجارى يشترط انفاق خمس الربح فى سبيل الله )

خصائصه :
1- امكانية تعديل الزمن و التاريخ
2- امكانية ادخال مواقيت الحصص للاسبوع كله مرة واحدة فقط .
3- ان شاء الله يحتفظ بالبيانات و الزمن حتى لو انقطع التيار الكهربى.
4- تشغيل جرس لمدة 10 ثوانى مع نهاية الحصص .
5- يصحح اخطاء مدخلات ضبط التاريخ و الزمن .
6- بمجرد ضبطه يتعرف على اليوم الحالى و الحصة الحالية و بمجرد انتهاء الحصة يضرب الجرس .

مكوناته :
1- شاشة lcd16x2
2- 4 مفاتيح
3- DS1307 + Battery 3V + crystal 32.768KHz
4- Atmega 16 او اعلى
5- مقاومتين 4.7kohm + مقاومة 1k
6- جرس + ريلاى + موحد


* ملاحظة : اذا وجد اى امر يحتاج تعديل او اضافة يمكن ارسالها .

ان شاء الله سيتم رفع الدائرة و البرنامج فى البوستات التالية .


الحمد الذى بنعمته تتم الصالحات

الله مولانا ولا مولى لهم
انى عذت بربى و ربكم ان ترجمون
الله ينصرك سوريا و . و . - كلنا حلب و غزة



احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً سعيد قادر ( شكر العضو على هذه المشاركة )
اعجاب سعيد قادر ( أعجبته المشاركة )
اعلانات

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 21-05-2016, 07:14 PM المشاركة 2   
افتراضي الدائرة


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

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

الدائرة مجربة بفضل الله فى البوتيوس :




الحمد الذى بنعمته تتم الصالحات

الله مولانا ولا مولى لهم
انى عذت بربى و ربكم ان ترجمون
الله ينصرك سوريا و . و . - كلنا حلب و غزة



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

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 21-05-2016, 07:24 PM المشاركة 3   
x4 البرنامج


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

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

اليكم اخوانى البرنامج :
المترجم : avr studio
اللغة : C/C++ + arduino

كود:
#include <Arduino.h>
#include <Adafruit_LiquidCrystal.h>
#include "Wire.h"
#include <EEPROM.h>

#define DS1307_I2C_ADDRESS 0b1101000
#define but_up    ~PIND & 1<<PIND0
#define but_dn    ~PIND & 1<<PIND1
#define but_st    ~PIND & 1<<PIND2
#define but_CLASS ~PIND & 1<<PIND3
#define alarmON   PORTA = 1
#define alarmOFF  PORTA = 0
#define addressof_totalWorkday            0
#define addressof_Firstworkday          1
#define addressof_FirstworkdayClassNo   2
#define addressof_FirstworkdayTimes     3

class Days_Classes //: public Adafruit_LiquidCrystal
{
    public:
    Adafruit_LiquidCrystal lcd;
    Days_Classes():lcd(8,9,10,11,12,13) {lcd.begin(16,2);}
    ~Days_Classes(){};
    char keypressed ;
    char week[8][10] = {"0","FRIDAY   ","SATURDAY ","SUNDAY   "  ,"MONDAY   " ,"TUESDAY  " ,"WEDNESDAY", "THURSDAY "};
    typedef struct {
        byte second,minute, hour, dayofweek, dayofmonth, month, year;
        } RTCtype;    
    
void clearEEprom(){
    int i ;
    for (i=0; i<=300;i++)
    {                            // to not clear all bytes every restart of MCU , only first time operation.
        if(EEPROM.read(i) > 59) EEPROM.write(i,0);
    }
}        
    
byte decToBcd (byte dec){
    return ( (dec/10)*16+dec%10 );
}

byte bcdToDec (byte bcd){
    return ( (bcd/16)*10+bcd%16 );
}

void RTC_display(){
RTCtype myRTC ;    //struct
RTCtype* myRTCaddress;
myRTCaddress = &myRTC ;
    RTC_read(myRTCaddress);
    // display date
    lcd.setCursor(0,0);
    lcd.print("Date:  :  :20");
    lcd.setCursor(5,0); // day
    if(myRTC.dayofmonth<10)lcd.print("0");
    lcd.print(myRTC.dayofmonth);
    lcd.setCursor(8,0);// month
    if(myRTC.month<10)lcd.print("0");
    lcd.print(myRTC.month);
    lcd.setCursor(13,0); // year
    lcd.print(myRTC.year);
    // display time
    lcd.setCursor(0,1);
    lcd.print("Time:  :  :  ");
    lcd.setCursor(5,1); // hour
    if(myRTC.hour<10)lcd.print("0");
    lcd.print(myRTC.hour);
    lcd.setCursor(8,1); // minute
    if(myRTC.minute<10)lcd.print("0");
    lcd.print(myRTC.minute);
    lcd.setCursor(11,1);// second
    if(myRTC.second<10)lcd.print("0");
    lcd.print(myRTC.second);
}

void RTC_read( RTCtype* myRTCaddress){
Wire.beginTransmission(DS1307_I2C_ADDRESS);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(DS1307_I2C_ADDRESS,7);
myRTCaddress->second    = bcdToDec(Wire.read() & 0x7f);
myRTCaddress->minute    = bcdToDec(Wire.read());
myRTCaddress->hour = bcdToDec(Wire.read() & 0x3f);
myRTCaddress->dayofweek = bcdToDec(Wire.read());
myRTCaddress->dayofmonth = bcdToDec(Wire.read());
myRTCaddress->month = bcdToDec(Wire.read());
myRTCaddress->year = bcdToDec(Wire.read());
}

char key_input (){   
    if (but_up )    {delay(250) ;return 'u'; }
    if (but_dn )    {delay(250) ;return 'd'; }
    if (but_st )    {delay(250) ;return 's'; }
    if (but_CLASS)  {delay(250) ;return 'C'; }
      else return 0;    
}

void Rtc_Update(){
char keypressed=0 ;
byte element=0    ;   // increment / dec. values
RTCtype myRTC;
RTC_read (&myRTC);
byte* alldataddress[7] = {&myRTC.year, &myRTC.month, &myRTC.dayofmonth, &myRTC.dayofweek, &myRTC.hour, &myRTC.minute, &myRTC.second};
char week[7][10]= {"FRIDAY   ","SATURDAY ","SUNDAY   "  ,"MONDAY   " ,"TUESDAY  " ,"WEDNESDAY", "THURSDAY " };
     
 lcd.clear();
 lcd.print("DATE : YEAR = ") ;
 while(1){ 
                // Print date/time variable
         lcd.setCursor(6,1);
         if(element == 3 /*dayofweek*/){ lcd.print(week[myRTC.dayofweek-1]);}    
             else{
                   if((*alldataddress[element])<10) lcd.print("0");
                   lcd.print((*alldataddress[element]))           ;
                 }
         keypressed=key_input();
         switch (keypressed){  
             case 'C':      break;
             case 'u':  {  (*alldataddress[element])++ ;break;}
             case 'd':  {  (*alldataddress[element])-- ;break;}
             case 's':  { 
                          element++;
                      if(element == 1 /*month*/      ) { lcd.clear();lcd.setCursor(0,0); lcd.print("DATE : MONTH  = ")  ;}
                 else if(element == 2 /*dayofmonth*/ ) { lcd.clear();lcd.setCursor(0,0); lcd.print("DATE : DAY    = ")  ;}
                 else if(element == 3 /*myRTC.dayofweek*/ ) { lcd.clear();lcd.setCursor(0,0); lcd.print("DATE : WEEKDAY= ")  ;}     
                 else if(element == 4 /*myRTC.hour */     ) { lcd.clear();lcd.setCursor(0,0); lcd.print("TIME : HOUR   = ")  ;}
                 else if(element == 5 /*myRTC.minute */   ) { lcd.clear();lcd.setCursor(0,0); lcd.print("TIME : MINUTE = ")  ;}
                 else if(element == 6 /*myRTC.second */   ) { lcd.clear();lcd.setCursor(0,0); lcd.print("TIME : SECOND = ")  ;}          
                 else   {return ;}
                 break;
                   }
      }
         if((*alldataddress[element] == myRTC.year       ) &&  myRTC.year<16) { myRTC.year = 16    ;}
         if((*alldataddress[element] == myRTC.month      ) && (myRTC.month<=1 || myRTC.month>12)) { myRTC.month =1     ;}  // MONTH LIMIT
         if((*alldataddress[element] == myRTC.dayofmonth ) && (myRTC.dayofmonth <=1 || myRTC.dayofmonth >31)) { myRTC.dayofmonth =1;}  // MONTH LIMIT
         if((*alldataddress[element] == myRTC.dayofweek  ) && (myRTC.dayofweek <=1  || myRTC.dayofweek >7 )) { myRTC.dayofweek  =1 ;}  // MONTH LIMIT
         if((*alldataddress[element] == myRTC.hour       ) && (myRTC.hour ==0   || myRTC.hour >23))    { myRTC.hour =0      ;} // MONTH LIMIT
         if((*alldataddress[element] == myRTC.minute     ) && (myRTC.minute ==0 || myRTC.minute >59)) { myRTC.minute =0    ;} // MONTH LIMIT
         if((*alldataddress[element] == myRTC.second     ) && (myRTC.second ==0 || myRTC.second >59) ) { myRTC.second =0    ;}  // MONTH LIMIT     
        
         RTC_write(&myRTC);
     }
}

void RTC_write(RTCtype* RTCnew){
    Wire.beginTransmission(DS1307_I2C_ADDRESS);
    Wire.write(0);
    Wire.write(decToBcd(RTCnew->second));
    Wire.write(decToBcd(RTCnew->minute ));
    Wire.write(decToBcd(RTCnew->hour));
    Wire.write(decToBcd(RTCnew->dayofweek));
    Wire.write(decToBcd(RTCnew->dayofmonth));
    Wire.write(decToBcd(RTCnew->month));
    Wire.write(decToBcd(RTCnew->year));
    Wire.endTransmission();
}

void get_allworkingDays(){      // all working days
    lcd.begin(16,2); 
    byte daynameID=1 , element=0 , eepromStep =0 ;
    char workdaysNames[8][8]={"FIRST  ", "SECOND ", "THIRD  ", "FORTH  ", "FIFTH  ", "SIXTH  ", "SEVENTH"}    ;
    
    lcd.clear();
    lcd.setCursor(0,0); lcd.print(workdaysNames[element]); lcd.print("work day");
    while(1){
         keypressed=key_input();
         switch (keypressed){
                     case 'C':  {   lcd.clear() ;lcd.setCursor(0,0); lcd.print("Total Work Days"); 
                                lcd.setCursor(6,1); lcd.print(EEPROM.read(addressof_totalWorkday));delay(2000); return; break;
                                }
                     case 'u':  {   daynameID++ ;break;}
                     case 'd':  {   daynameID-- ;break;}
                     case 's':  {  
                                element++;  if(element>6)return ;
                                EEPROM.write(addressof_Firstworkday + eepromStep, daynameID);
                                eepromStep+=3; 
                                EEPROM.write(addressof_totalWorkday,eepromStep/3);    
                                lcd.setCursor(0,0); lcd.print(workdaysNames[element]); lcd.print("work day");
                                break;
                                }
                        }
        if(daynameID>7 || daynameID<1) daynameID=1;    
        lcd.setCursor(6,1); lcd.print(week[daynameID]);            
   }
}

void get_classesperDays(){    
    byte num_of_class = EEPROM.read(addressof_FirstworkdayClassNo) , eepromStep = 0 ; // eeprom  address for addressof_Firstworkday     classes numbers = 1
    byte numberofDays = 1 , daynameID = 1 ;

    lcd.clear();
    lcd.setCursor(0,0); lcd.print(week[EEPROM.read(addressof_Firstworkday)]); lcd.print("ClssNo");
    while(1){
        keypressed=key_input();
        switch (keypressed){
                    case 'C':   break;
                    case 'u':  {  num_of_class++ ;  break;}
                    case 'd':  {  num_of_class-- ;  break;}
                    case 's':  { 
                                EEPROM.write(addressof_FirstworkdayClassNo + eepromStep, num_of_class);  eepromStep+=3;
                                numberofDays++;  if(numberofDays > (EEPROM.read(addressof_totalWorkday)))return ;
                                num_of_class = EEPROM.read(addressof_FirstworkdayClassNo + eepromStep);
                                break;
                              }
                          }
        if(num_of_class>=100) num_of_class=0;
        lcd.setCursor(0,0); lcd.print(week[EEPROM.read(addressof_Firstworkday + eepromStep)]); lcd.print("ClssNo");
        lcd.setCursor(6,1); 
        if(num_of_class<10) lcd.print("0");
        lcd.print(num_of_class);
       }
}         

void defineTimeslocations(){
    byte eepromStep = 0 , i ;
    
    EEPROM.write(addressof_FirstworkdayTimes + eepromStep , 20); // start of times =20
    for (i=2; i<= EEPROM.read(addressof_totalWorkday) ; i++){    
            eepromStep+=3;
            EEPROM.write(addressof_FirstworkdayTimes + eepromStep , 20 + EEPROM.read(addressof_FirstworkdayClassNo)*4);
    }
    
    
}
    
void get_classesTimePerDay(){
    signed char time = 0 , time_address = 20 ;
    byte eepromAddrstep = 0 ;
    byte nextDay = EEPROM.read(addressof_Firstworkday);
    byte lcd_position = 5 ;
    byte class_NO =1 ; 
    
    lcd.clear();
    lcd.setCursor(0,0);    lcd.print(week[EEPROM.read(addressof_Firstworkday + eepromAddrstep)]);
    lcd.setCursor(10,0); lcd.print("CLAS-");lcd.print(class_NO); // FIRST LINE
    lcd.setCursor(0,1); lcd.print("TIME:  :  >  :  ");
        
    while(1){
        keypressed=key_input();
        switch (keypressed){
            case 'C':              break;
            case 'u':  {  time++ ; break;}
            case 'd':  {  time-- ; break;}
            case 's':  {  EEPROM.write(time_address,time);time=0; time_address++; lcd_position+=3;
                          if (lcd_position>14) {
                                                class_NO++ ;
                                                lcd_position=5;
                                                lcd.setCursor(0,1); lcd.print("TIME:  :  >  :  ");                                                
                          }
                          if(class_NO > EEPROM.read(addressof_FirstworkdayClassNo + eepromAddrstep)){  // check total classes per day finished
                                      eepromAddrstep+=3; 
                                      if(eepromAddrstep >= EEPROM.read(addressof_totalWorkday)*3){lcd.clear(); return;} // check total days
                                      
                                      class_NO =1; lcd_position=5; time=0;
                                      lcd.clear();
                                      lcd.setCursor(0,0);lcd.print(week[EEPROM.read(addressof_Firstworkday + eepromAddrstep)]);
                                      lcd.setCursor(10,0); lcd.print("CLAS-");
                                      lcd.setCursor(0,1); lcd.print("TIME:  :  >  :  ");
                         }
                         break; 
                     }
        }
        lcd.setCursor(15,0); lcd.print(class_NO);
        lcd.setCursor(lcd_position,1);                    
        if(time>59 || time<=0) time=0;
        if(time<10) lcd.print("0"); 
        lcd.print(time);
            
   }
}
        
bool alarm (){
    byte i = 1 , eepromStep = 0 ;
    int location ;
    byte second, minute, hour, dayofweek, dayofmonth, month, year;

    for (i=1; i<= EEPROM.read(addressof_totalWorkday) ; i++){
        if(dayofweek == EEPROM.read(addressof_Firstworkday + eepromStep) ) break;
        eepromStep+=3;
    }
    location = EEPROM.read(addressof_FirstworkdayTimes + eepromStep)    ;
    
    for(i=1; i<=EEPROM.read(addressof_FirstworkdayClassNo + eepromStep); i++){
            if(hour == EEPROM.read(location) && minute == EEPROM.read(location+1)) return true ;
                   else location+=4;
    }
return false;    
}        
    
 };

void setup() {
     Days_Classes alldays ;
    alldays.clearEEprom(); 
    Wire.begin();
    
    PORTD = 0xFF;
    DDRD = 0x00;
    DDRA = 0xff;
    PORTA = 0;
    DDRB = 0;
    PORTB = 0xff;
}

void loop() {
    unsigned long previos=0 , current=0  ;
    byte halfminute = 0;
    Days_Classes alldays ;
    while(true){
        current = millis();
    
        if((current-previos)>=1000 ){alldays.RTC_display(); previos = current; halfminute++ ;}
    
        if(halfminute>=30 && alldays.alarm()) {alarmON; halfminute=0 ; delay(10000);}
        else alarmOFF;        

        if (but_st)  { delay(200);  ; alldays.Rtc_Update();    }
        
        if (but_CLASS) {delay(200) ; 
                        alldays.get_allworkingDays();
                        alldays.get_classesperDays(); 
                        alldays.defineTimeslocations();
                        alldays.get_classesTimePerDay(); 
        }
    }
}

الحمد الذى بنعمته تتم الصالحات

الله مولانا ولا مولى لهم
انى عذت بربى و ربكم ان ترجمون
الله ينصرك سوريا و سائر بلادنا - كلنا حلب و غزة


احصائية الشكر والاعجاب - 2 شكراً, 0 عدم اعجاب, 2 اعجاب
شكراً عبدالله حجازى, سعيد قادر ( شكر العضو على هذه المشاركة )
اعجاب عبدالله حجازى, سعيد قادر ( أعجبته المشاركة )

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 21-05-2016, 09:56 PM المشاركة 4   
افتراضي السلام عليكم ورحمه الله وبركاته


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

مشكور جدااا اخى على المشروع المفيد ده ..


أخى هل يمكنك عمل مثل المشروع ولكن بستحدام لغه الميكرو سى برو ... و pic16f877a

وبالتوفيق ...


الصورة الرمزية Sallam
Sallam
:: مهندس متميز ::
تاريخ التسجيل: Mar 2006
الدولة: Syria
المشاركات: 518
نشاط [ Sallam ]
قوة السمعة:0
قديم 22-05-2016, 12:15 AM المشاركة 5   
افتراضي


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

مشكور جدااا اخى على المشروع المفيد ده ..


أخى هل يمكنك عمل مثل المشروع ولكن بستحدام لغه الميكرو سى برو ... و pic16f877a

وبالتوفيق ...
تحية طيبة

أضم صوتي للأخ عبد الله لإمكانية عمل المشروع بلغة الميكرو سي برو

شكرا للمجهود الرائع

بالتوفيق


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 22-05-2016, 07:45 PM المشاركة 6   
sun


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

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

اخوتى الاعزاء كنت قد بدأت من فترة الدخول الى عالم الميكرو بداية مع ال pic , و بفضل الله انتقلت الى atmel و وجدت فيه
بعض ما يميزه مثل انه اسرع و معظمه به تردد داخلى بالاضافة لشهرة الاردوينو الذى اعتمد عليه.
وايضا وجود مترجمات مجانية بلغة السي لل atmel و اعتقد ان هذا غير متاح لل pic .
و بدأت مع ميكروسي لسهولته و كثرة مكتباته الجميلة و روعة help بالاضافة لانتشاره فى مجتمع النت .

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

و لما كان ميكروسي للمبتدأين لذا وجب علينا من شروط التطور هو تطور
الادوات لذا فان اشهر و اقوى لغات البرمجة هى السي ,
لذا
يجب محاولة اتقانها , و من الادوات المترجمات لذا وجب ان نطورها .
و من الادوات ايضا الميكرو نفسه فيجب علينا ان نتطور من 8 الى 16 الى 32 الى 64 بت .

لانك يجب ان تختار من تمكث حياتك مبتدئ او تاخذ الموضوع بجدية مجالا للاتقان و لعل بعضنا لا يدرك قوة استعمال الميكرو صناعيا فساضع لكم احدى اشهر شركات تصميم برمجيات الميكرو و البرسيسور للتحكم الصناعى و منتجاتها البرمجية لشركات طيران و اسلحة و صواريخ و هى تفتخر بذلك ولها مترجم خاص بها حيث يصل ثمنه الى حوالى 3000 دولار بينما ميكروسي 200 دولار .

لذلك
اخى ابدأ بالميكروسي لكن لا تنتهى به ....... اجعل لك خطة
و الله الموفق و المستعان

الحمد الذى بنعمته تتم الصالحات

الله مولانا ولا مولى لهم
انى عذت بربى و ربكم ان ترجمون
الله ينصرك سوريا و سائر بلادنا - كلنا حلب و غزة



احصائية الشكر والاعجاب - 0 شكراً, 0 عدم اعجاب, 1 اعجاب
اعجاب سعيد قادر ( أعجبته المشاركة )

الصورة الرمزية Sallam
Sallam
:: مهندس متميز ::
تاريخ التسجيل: Mar 2006
الدولة: Syria
المشاركات: 518
نشاط [ Sallam ]
قوة السمعة:0
قديم 22-05-2016, 09:40 PM المشاركة 7   
افتراضي


أشكرك أخي مشتاق الله على كلامك الرائع والمشجع
طبعا لا بد أن رنتقي ونتطور ولا نراوح مكاننا

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

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

المهم هل من طريقة للحصول على اردوينو هنا


أشكرك مجددا مع كل التوفيق


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 23-05-2016, 06:31 AM المشاركة 8   
sun


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

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

اخى لو استطعت ان تحصل على ميكرو atmega8 او اعلى منها
و استطعت ان تصنع لها دائرة مبرمج serial or parallel و هى سهلة على النت
عرفنى و ان شاء الله بخطوات بسيطة سيكون عندك Arduino system
بدون اردوينو

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

الله مولانا ولا مولى لهم
انى عذت بربى و ربكم ان ترجمون
الله ينصرك سوريا و سائر بلادنا - كلنا حلب و غزة



إضافة رد

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

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

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


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

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