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

   

احمد شهيد جواد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2015
الدولة: العراق
المشاركات: 322
نشاط [ احمد شهيد جواد ]
قوة السمعة:
قديم 10-06-2020, 09:16 AM المشاركة 9   
افتراضي



أخي عبدالله المهم هو نوع الحساس المستخدم فما هو ؟

اعلانات

الصورة الرمزية مسلم11
مسلم11
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2009
الدولة: بلاد الشام
المشاركات: 3,679
نشاط [ مسلم11 ]
قوة السمعة:
قديم 11-06-2020, 04:14 PM المشاركة 10   
افتراضي


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

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

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 12-06-2020, 04:02 AM المشاركة 11   
افتراضي


أخي عبدالله المهم هو نوع الحساس المستخدم فما هو ؟
اخي الميكرو ينتظر نبضه بحافة اقصاها 5 فولت لكي يذيد العدد بواحد لفه

وهنا المتحكم مبرمج علي انه ايذا وجد 5 فولت علي طرف الحساس ينتظر الي ان تختفي
النبضه الخمسه فولت
بمعني لا يعد الا بنبضه ساعه 5 فولت ثم صفر فولت
وهذا لضمان انة لا يعد الا عدة واحدة

ويمكنك تركيب أو ابتكار أي حساس يفي بالغرض

تحياتي


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 12-06-2020, 04:04 AM المشاركة 12   
افتراضي


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

حسنا أخي سوف أعمل علي برنامج كما طلبت
وان شاء الله سوف أعمل برنامج أخر مخصص للف قوالب المحولات

حياك الله


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 12-06-2020, 05:22 AM المشاركة 13   
افتراضي السلام عليكم ورحمه الله


وضعت بعض التعديلات علي الدائرة
وجاري تعديل البرنامج



احمد شهيد جواد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2015
الدولة: العراق
المشاركات: 322
نشاط [ احمد شهيد جواد ]
قوة السمعة:
قديم 14-06-2020, 04:22 PM المشاركة 14   
افتراضي


اخي عبدالله انا صممت قبل اربع سنوات ماكنة صغيرة للف محولات صغيرة
بواسطة البك 628 واستخدمت حساس photodiode ولكن لم اطورها لأن كان عندي 10 محولات بعدما اكملت لفهم اهملت الماكنة ...

سأرفع فيديو لها إن وجدته في الكمبيوتر ...


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 18-06-2020, 08:08 AM المشاركة 15   
افتراضي


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

وعد الحر دين عليه
وكما وعدتكم أصدقائي اقدم لكم الأصدار الأول لنظام إدارة
وسيطرة علي ماكينة إعادة لف المحركات

عداد سهل في الضبط مع ليدات مساعدة لتخبر المستخدم بحالة العداد
مثل قائمة ضبط العداد وحالة المحرك يعمل أو متوقف وحاله الأرقام عند
انتهاء العدد اللذي توافق مع العدد المدخل للعداد
مع امكانيه عمل ايقاف مؤقت للعداد وتشغيله

أقول أن هذا هو الإصدار الأول للنظام عداد وتحكم في ماكينة اعادة
لف المحركات لأن توجد اضافات سوف اضيفها في الأصدار الثاني

حيث سيكون هناك تحكم في سرعة المحرك واختيار عدد الدورات في الدقيقه

مخطط الدائرة لأطراف المعالج مع المكونات المحيطه



كما نعلم هذا المخطط لتوضيح أطراف المحرك ووظيفة كل طرف
وعند التنفيذ العملي سيكون علي كل واحد اختيار المكونات اللازمه لطبيعة
عمله واختيار المحرك المناسب وهكذا من مكونات

البرنامج / الكود

كود:
  

// ENG ABDALLA HYGAZY // // COUNTER CONTROL // // DATA 2020/6/17 // // Frequency 8 MHz // // PIC16F877A // // Site https://www.qariya.info/vb/showthread.php?t=247636 // #define The_engine_stops PORTD.f3 #define MOTOR_Brakes PORTD.f2 #define MOTOR PORTD.f0 #define DP PORTB.f7 #define BUZ PORTD.F1=1; delay_ms(250); PORTD.F1=0; delay_ms(80); #define BUZ_count_is_over for(X=0;X<4;X++){PORTD.F1=1; delay_ms(550); PORTD.F1=0; delay_ms(150); } //********************========************************// unsigned int STOP=0,NEXT,X; unsigned int DATA_1,DATA_2,DATA_3,DATA_4,DATA_CC; unsigned int AA1=0,AA2,AA3,AA4=0,AA5=0,a1=0,Brakes=0,START; unsigned short mask(unsigned short num); long tlong; //********************========************************// //======================= show_adc ==========================================// /*void show_adc() { adc_rd = ADC_Read(0); tlong = (long)adc_rd * 5000; tlong = tlong / 1023; }*/ //=============== show_adc === END ========================================// //=========================== void SETENG ================================// void SETENG(){ PORTC.F6=1; DATA_1 = DATA_1 / 1000; DATA_2 = DATA_2 / 100; DATA_3 = DATA_3 / 10 ; while (NEXT==0) { PORTA=1; PORTB=mask(DATA_1);delay_ms(1); //********************************************************// if(PORTD.F7==1){ DATA_1 ++; delay_ms(350);} if(PORTD.F6==1){ DATA_1 --; delay_ms(350);} if(DATA_1>9 ){ DATA_1 =9; delay_ms(20);} if(DATA_1<0 ){ DATA_1 =0; delay_ms(20);} if(PORTD.F5==1){BUZ BUZ NEXT=1; delay_ms(500);} //********************************************************// } EEPROM_Write(0, DATA_1); delay_ms(10); NEXT=0; //=============================================================================// while (NEXT==0) { PORTA=1; PORTB=mask(DATA_1); delay_ms(1); PORTA=2; PORTB=mask(DATA_2); delay_ms(1); //********************************************************// if(PORTD.F7==1){ DATA_2 ++; delay_ms(350);} if(PORTD.F6==1){ DATA_2 --; delay_ms(350);} if(DATA_2>9 ){ DATA_2 =9; delay_ms(20);} if(DATA_2<0 ){ DATA_2 =0; delay_ms(20);} if(PORTD.F5==1){BUZ BUZ NEXT=1; delay_ms(500);} //********************************************************// } EEPROM_Write(1, DATA_2); delay_ms(10); NEXT=0; //================================================================================// while (NEXT==0) { PORTA=1; PORTB=mask(DATA_1); delay_ms(1); PORTA=2; PORTB=mask(DATA_2); delay_ms(1); PORTA=4; PORTB=mask(DATA_3); delay_ms(1); //********************************************************// if(PORTD.F7==1){ DATA_3 ++; delay_ms(350);} if(PORTD.F6==1){ DATA_3 --; delay_ms(350);} // MEN HONAA KAMEEL // if(DATA_3>9 ){ DATA_3 =9; delay_ms(20);} if(DATA_3<0 ){ DATA_3 =0; delay_ms(20);} if(PORTD.F5==1){BUZ BUZ NEXT=1; delay_ms(500);} //********************************************************// } EEPROM_Write(2, DATA_3); delay_ms(10); NEXT=0; // STOP=0; //========================================================================// while (NEXT==0) { PORTA=1; PORTB=mask(DATA_1); delay_ms(1); PORTA=2; PORTB=mask(DATA_2); delay_ms(1); PORTA=4; PORTB=mask(DATA_3); delay_ms(1); PORTA=8; PORTB=mask(DATA_4); delay_ms(1); //********************************************************// if(PORTD.F7==1){ DATA_4 ++; delay_ms(350);} if(PORTD.F6==1){ DATA_4 --; delay_ms(350);} if(DATA_4>9 ){ DATA_4 =9; delay_ms(20);} if(DATA_4<0 ){ DATA_4 =0; delay_ms(20);} if(PORTD.F5==1){BUZ BUZ NEXT=1; delay_ms(500);} //********************************************************// } EEPROM_Write(3, DATA_4); delay_ms(10); NEXT=0; STOP=0; // MEN HONAA KAMEEL // //========================================================================// DATA_1 = DATA_1 *1000; DATA_2 = DATA_2 *100; DATA_3 = DATA_3 *10; tlong = DATA_1 + DATA_2 + DATA_3 + DATA_4; } //=============== void SETENG ===== END ==============================// //============ Timer0 =========== InitTimer0 ========================// //Timer0 //Prescaler 1:8; TMR0 Preload = 6; Actual Interrupt Time : 1 ms //Place/Copy this part in declaration section void InitTimer0(){ OPTION_REG = 0x82; TMR0 = 6; INTCON = 0xA0; } //======================== END ===============================// //======================== Interrupt ===============================// void Interrupt(){ if (TMR0IF_bit){ TMR0IF_bit = 0; TMR0 = 6; //Enter your code here AA4++; AA5++; if( AA4==1000 ) { AA4=0; } if(STOP==0) { if(AA5==1) { a1 = tlong / 1000; PORTA=1; PORTB=mask(a1); a1=0; } if(AA5==2) { a1 = (tlong % 1000)/100; PORTA=2; PORTB=mask(a1); a1=0; } if(AA5==3) { a1 = (tlong % 1000)%100/10; PORTA=4; PORTB=mask(a1); a1=0; } if(AA5==5) { a1 = (tlong % 1000)%100%10; PORTA=8; PORTB=mask(a1); a1=0; } if(AA5==6){ AA5=0;} if(tlong>9999){ tlong=9999; PORTD.F0=0; } } if(PORTD.F5==1){ BUZ BUZ STOP=1; SETENG();} } } //=================== Interrupt == END ===============================// //======================== void main ==========================// void main() { TRISB=0; PORTB=0; TRISD=240; PORTD=0; TRISC=128; PORTC=0; TRISE=7; PORTE=0; TRISA=0; PORTA=0; CMCON=0; ADCON0=0x00; InitTimer0(); DATA_1 = EEPROM_Read(0); delay_ms(10); DATA_1 = DATA_1 *1000; DATA_2 = EEPROM_Read(1); delay_ms(10); DATA_2 = DATA_2 *100; DATA_3 = EEPROM_Read(2); delay_ms(10); DATA_3 = DATA_3 *10; DATA_4 = EEPROM_Read(3); delay_ms(10); delay_ms(1000); BUZ BUZ loop: PORTD.F3=1; PORTC.F0=0; Brakes=0; MOTOR_Brakes=0; PORTC.F1=0; tlong = DATA_1 + DATA_2 + DATA_3 + DATA_4; DATA_CC = tlong ; while(1){ if(PORTD.F4==1) { delay_ms(250); MOTOR=1; MOTOR_Brakes=0;PORTC.F1=1; The_engine_stops=0; tlong =0; while(Brakes==0){ if(PORTC.F7==1 && START==0) { while(PORTC.F7==1){ }tlong ++; } if(tlong >= DATA_CC ) { MOTOR=0; MOTOR_Brakes=1; The_engine_stops=1; PORTC.F0=1; Brakes=1; BUZ_count_is_over START=0; goto loop; } if(PORTD.F4==1) { MOTOR=0; MOTOR_Brakes=1; delay_ms(250); START++; } if(START==1 ) { The_engine_stops=1; MOTOR=0; } if(START==2 ) { MOTOR_Brakes=0; The_engine_stops=0; MOTOR=1; START=0; } } } } } //====================== void main === END ==========================// //======================== switch (num) ==========================// unsigned short mask(unsigned short num){ switch (num){ case 0 : return 0xC0; case 1 : return 0xF9; case 2 : return 0xA4; case 3 : return 0xB0; case 4 : return 0x99; case 5 : return 0x92; case 6 : return 0x82; case 7 : return 0xF8; case 8 : return 0x80; case 9 : return 0x90; } } //======================== END ==========================//



رابط تحميل المشروع / مخطط / محكاة / كود البرنامج
https://drive.google.com/drive/folde...oz?usp=sharing


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 18-06-2020 الساعة 08:35 AM

الصورة الرمزية مسلم11
مسلم11
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2009
الدولة: بلاد الشام
المشاركات: 3,679
نشاط [ مسلم11 ]
قوة السمعة:
قديم 18-06-2020, 06:01 PM المشاركة 16   
افتراضي


ما شاء الله
حييييييييييياك الله وسلم يداك
مميز بل حريف بل فنان
شكرا لك اخي المهندس عبد الله حجازي المحترم



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