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

   

sskk77
:: مهندس متميز ::
تاريخ التسجيل: Jan 2005
المشاركات: 711
نشاط [ sskk77 ]
قوة السمعة:
قديم 17-09-2014, 09:12 AM المشاركة 9   
افتراضي



جيد يا أخي sskk77 فعلاً القراءة مضطربة! افهم من كلامك انك لديك معلومات بهذا الخصوص
voltmeter بواسطة البك
فهل ترشدني الى طريق الصواب دون استخدام أي محول كهربي... لان في مشروعي استخدم متسعة السيراميك وجزيت خيراً
أخي ببساطة انا استخدم طريقة برمجية للقضاء على هذا الاضطراب
وهي القراءة عدد من المرات تحدده انت حسب الدقة المطلوبة
فانا اقوم بالقراءة 200 مرة واجمعها ثم اقسمها على 200 فبذلك تتشتت الاضطرابات بهذا التقسيم
كلما كان عدد القراءات اكثر كانت الدقة افضل لكن ضمن نبضة واحدة من تردد الشبكة لان الزيادة غير مجدية ( يعني اكبر عدد من القراءات ضمن 20 ملي ثانية )
تبدأ القراءة عندما تكون صفر وتنتهي عندما ترجع صفر او قبل ذلك
من هذا تستدل على ان التردد للمعالج كلما كان اعلى النتيجة افضل لان القراءات ستكون اكثر

اعلانات

الصورة الرمزية assed
assed
:: عضو فضي ::
تاريخ التسجيل: Jul 2014
الدولة: العراق - بغداد
المشاركات: 1,034
نشاط [ assed ]
قوة السمعة:
قديم 17-09-2014, 10:38 AM المشاركة 10   
افتراضي


أخي ببساطة انا استخدم طريقة برمجية للقضاء على هذا الاضطراب
وهي القراءة عدد من المرات تحدده انت حسب الدقة المطلوبة
فانا اقوم بالقراءة 200 مرة واجمعها ثم اقسمها على 200 فبذلك تتشتت الاضطرابات بهذا التقسيم
كلما كان عدد القراءات اكثر كانت الدقة افضل لكن ضمن نبضة واحدة من تردد الشبكة لان الزيادة غير مجدية ( يعني اكبر عدد من القراءات ضمن 20 ملي ثانية )
تبدأ القراءة عندما تكون صفر وتنتهي عندما ترجع صفر او قبل ذلك
من هذا تستدل على ان التردد للمعالج كلما كان اعلى النتيجة افضل لان القراءات ستكون اكثر
جيد أخ sskk77 أرجعتلي النبض للمشروع وهذا معروفك لن انساه ...انا كتبت الكود بهذه الطريقة
كود:
ADCIN 0, V
V = ((V*20) */ 500) /20 
 
For i = 0 To 2
 
n = v Dig i
Segments = %1111111
 
If I = 0 Then PORTB = %00010000 
 
If I = 1 Then PORTB = %00100000 
 
If I = 2 Then PORTB = %01000000 
 
 
LookUp n, [%1000000, %1111001, %0100100, %0110000, %0011001, %0010010, %0000010, %1111000, %0000000, %0010000, %01111111], Segments
DelayUS 800
Next i 
هل هذا صحيح اذا امكن تكمل معروفك بتعدلي على هذا الكود هوة مكتوب بلغة Protonbasic
انا اعتذر تعبتك معاي واشكرك شكراً جزيلاً


التعديل الأخير تم بواسطة : assed بتاريخ 17-09-2014 الساعة 10:41 AM السبب: اضافة
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

sskk77
:: مهندس متميز ::
تاريخ التسجيل: Jan 2005
المشاركات: 711
نشاط [ sskk77 ]
قوة السمعة:
قديم 17-09-2014, 11:34 PM المشاركة 11   
افتراضي


جيد أخ sskk77 أرجعتلي النبض للمشروع وهذا معروفك لن انساه ...انا كتبت الكود بهذه الطريقة
كود:
ADCIN 0, V
V = ((V*20) */ 500) /20 
 
For i = 0 To 2
 
n = v Dig i
Segments = %1111111
 
If I = 0 Then PORTB = %00010000 
 
If I = 1 Then PORTB = %00100000 
 
If I = 2 Then PORTB = %01000000 
 
 
LookUp n, [%1000000, %1111001, %0100100, %0110000, %0011001, %0010010, %0000010, %1111000, %0000000, %0010000, %01111111], Segments
DelayUS 800
Next i 
هل هذا صحيح اذا امكن تكمل معروفك بتعدلي على هذا الكود هوة مكتوب بلغة Protonbasic
انا اعتذر تعبتك معاي واشكرك شكراً جزيلاً
أخي العزيز
لا اعرف لغة البرمجة هذه
لكن سأشرح لك الخطوات بالكلام
متغير يمكنه ان يحتوي على 4 بايت او 8 بايت حسب حاجتك
تضع حلقة تكرار بعدد تحدده انت
الأن تقرأ القيمة من المحول وتجمعها الى المتغير
تعود الى بداية الحلقة
وهكذا حتى تنتهي
الآن قسم هذه القيمة على عدد مرات التكرار
اذا كانت 200 مرة تقسم على 200


الصورة الرمزية assed
assed
:: عضو فضي ::
تاريخ التسجيل: Jul 2014
الدولة: العراق - بغداد
المشاركات: 1,034
نشاط [ assed ]
قوة السمعة:
قديم 18-09-2014, 12:52 AM المشاركة 12   
افتراضي


أخي العزيز
لا اعرف لغة البرمجة هذه
لكن سأشرح لك الخطوات بالكلام
متغير يمكنه ان يحتوي على 4 بايت او 8 بايت حسب حاجتك
تضع حلقة تكرار بعدد تحدده انت
الأن تقرأ القيمة من المحول وتجمعها الى المتغير
تعود الى بداية الحلقة
وهكذا حتى تنتهي
الآن قسم هذه القيمة على عدد مرات التكرار
اذا كانت 200 مرة تقسم على 200
وصلت الفكرة sskk77 سوف اطبق الشرح تبعك . والله الموفق .. شكراً


الصورة الرمزية assed
assed
:: عضو فضي ::
تاريخ التسجيل: Jul 2014
الدولة: العراق - بغداد
المشاركات: 1,034
نشاط [ assed ]
قوة السمعة:
قديم 18-09-2014, 07:02 PM المشاركة 13   
افتراضي


أخي العزيز
لا اعرف لغة البرمجة هذه
لكن سأشرح لك الخطوات بالكلام
متغير يمكنه ان يحتوي على 4 بايت او 8 بايت حسب حاجتك
تضع حلقة تكرار بعدد تحدده انت
الأن تقرأ القيمة من المحول وتجمعها الى المتغير
تعود الى بداية الحلقة
وهكذا حتى تنتهي
الآن قسم هذه القيمة على عدد مرات التكرار
اذا كانت 200 مرة تقسم على 200
اخي SSKK77 بوركت اتممت الكود وشتغل عندي بصورة جيدة عملياً ..
ولاكن يقرب الى اقرب عشرة مثل اذا كانت القراءة 204 يقرءها 200
واذا كانت 206 يقرءها 210
هل هذا عادي ام هناك مشكلة بالكود


sskk77
:: مهندس متميز ::
تاريخ التسجيل: Jan 2005
المشاركات: 711
نشاط [ sskk77 ]
قوة السمعة:
قديم 18-09-2014, 09:31 PM المشاركة 14   
افتراضي


لا اخي لا مشكلة
كل ما في الأمر عملية ضبط فقط
بمقاومة متغيرة


الصورة الرمزية assed
assed
:: عضو فضي ::
تاريخ التسجيل: Jul 2014
الدولة: العراق - بغداد
المشاركات: 1,034
نشاط [ assed ]
قوة السمعة:
قديم 18-09-2014, 11:47 PM المشاركة 15   
افتراضي


لا اخي لا مشكلة
كل ما في الأمر عملية ضبط فقط
بمقاومة متغيرة
اخي انا واضع مقاومة متغيرة في البورد وهي مضبوطة 10 ك كلما في الامر
ان الاوفو ميتر يقراء الارقام المنتهية ب 10 بشكل مضبوط مثل 110 و 120 و220
ولاكن اذا كان الجهد من 206 الى 219 يقرءها 220
من 201 الى 205 يقراءها 205
على العموم انا متشكر منك و وفقك الله
سوف اراجع حساباتي بالكود


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 14-03-2015, 06:10 PM المشاركة 16   
ha


أخي العزيز
لا اعرف لغة البرمجة هذه
لكن سأشرح لك الخطوات بالكلام
متغير يمكنه ان يحتوي على 4 بايت او 8 بايت حسب حاجتك
تضع حلقة تكرار بعدد تحدده انت
الأن تقرأ القيمة من المحول وتجمعها الى المتغير
تعود الى بداية الحلقة
وهكذا حتى تنتهي
الآن قسم هذه القيمة على عدد مرات التكرار
اذا كانت 200 مرة تقسم على 200
السلام عليكم
اخي كريم ماذا تقصد
متغير يمكنه ان يحتوي على 4 بايت او 8 بايت

هذا هو كود لحساب الجهد
كود:
void read_voltage(char channel)
{
  read_volt=ADC_Read(channel);
  read_volt =(read_volt*5000 )/1023;
  read_volt= (read_volt * facter)/100000;
}
هل تقصد أخي اقرأ الجهد من
كود:
read_volt=ADC_Read(channel
لاكثر من 200 قراءه ثم اخذ average

ايضا ماذا تقصد بقولك من مشاركه 8
تبدأ القراءة عندما تكون صفر وتنتهي عندما ترجع صفر او قبل ذلك
فأذا اعتبرنا زمن كلي للموجه هو 20ms وتردد كرستاله 32mhz فكم عدد قراءه ممكنه
تحياتي



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