هل ما قلته في الفيديو خطأ ... سأدع الحكم لكم ؟ جرب بنفسك .
|
نعم أنت محق
اذا كان x ليس 0 ولا 1 أي ذو معيقة كبيرة فسوف يشتعل اللا دان معا
أما اذا كان x=0 فسوف يشتعل ال LED الذي في الاعلى( لا بد من وجود مقاومة)
أما اذا كان x=1 فسوف يشتعل ال LED الذي في الاسفل ( لا بد من وجود مقاومة)
كما أن ال LED الاحمر والذي بجانبه لا يمكن ربطهما بدون مقاومة لتحديد التيار
لانه لا يوجد LED يشتغل على 5v اللهم الا اذا كانت تغذية ال pic هي 3v
أستسمح الاخ سمير في قول شيء وهذا لا يقلل من شأن الاخ سمير في شيء بعد سؤال الاخ Ahmedarblog شاهدت الفيديو الذي طرح منه السؤال فلاحضت أخطاء كثيرة في اشتعال ل LEDS
أرجو منك اعادت التدقيق فيها
من الملاحظ أنها أخطاء رمظانية ( جل من لا يخطئ)
ملاحظة : ان خاصية المعيقة الكبيرة تمكننا من ربط أرجل pic ببعضها مباشرة
أو ربط عدد كبير من ال pic في نفس ال bus بدون مشاكل
أعيد وأقول هذا لا يقلل من قيمة الاخ سمير في شيء
|
السلام عليكم ورحمة الله وبركاته ..
أولا أشكرك أخي على أدبك الرائع .. واسأل الله أن يزيدك علما وتوفيقا .
ثانيا : أريد أن أنبه .. أنه لا يوجد من هو معصوم وكلنا نتعلم من بعضنا .. والخطأ لا يقلل من شأن الإنسان .. بل يتجه به إلى النجاح . . وكما قلت في الدرس الأخير الأناس الأكثر في عدد المرات من الفشل هم الأكثر نجاحا .
ثالثا : لا يقلل من شأني إن كنت أخطأت ولا يقلل أيضا من شأنكم إذا كان كلامكم غير صحيح .
رابعا : الفيصل بين كلامي وكلامكم وأيهما أصح هو التجربة والبرهان .
إليكم ملف المحاكاة التالي به نفس الرسمة والكود بنفس الطريقة التي شرحتها وستجونه أنه يعمل بشكل صحيح ولا يوجد أي خطأ . .
الرجاء تحميل الملف التالي لفهم الموضوع والتأكد من صحة ما أقول
ولمن لا يريد تحميل الملف أو لديه مشاكل بالتحميل قم بعمل نفس الرسمة الخاصة بالثلاث أطراف . واكتب الكود التالي :
كود:
void main() {
while(1)
{ // to turn the first LED( LED 1) ON .
// تشغيل الليد رقم واحد
trisb.f0=0;
trisb.f1=0;
trisb.f2=1; // B2 = x ( high impedance )
portb.f0=1;
portb.f1=0;
delay_ms(1000);
// to turn the second LED (LED2) ON.
// تشغيل الليد رقم اثنين
trisb.f0=0;
trisb.f1=0;
trisb.f2=1; // B2 = x ( high impedance )
portb.f0=0;
portb.f1=1;
delay_ms(1000);
// to turn the third LED (LED3) ON.
// تشغيل الليد رقم ثلاثة
trisb.f0=1; // B0 = x ( high impedance )
trisb.f1=0;
trisb.f2=0;
portb.f1=1;
portb.f2=0;
delay_ms(1000);
// to turn the 4th LED (LED4) ON.
// تشغيل الليد الرابع
trisb.f0=1; // B0 = x ( high impedance )
trisb.f1=0;
trisb.f2=0;
portb.f1=0;
portb.f2=1;
delay_ms(1000);
// to turn the 5th LED (LED5) ON.
//تشغيل الليد الخامس
trisb.f0=0;
trisb.f1=1; // B1 = x ( high impedance )
trisb.f2=0;
portb.f0=1;
portb.f2=0;
delay_ms(1000);
// to turn the 6th LED (LED6) ON.
//تشغيل الليد السادس
trisb.f0=0;
trisb.f1=1; // B1 = x ( high impedance )
trisb.f2=0;
portb.f0=0;
portb.f2=1;
delay_ms(1000);
}
}
أيضا فيما يخص أنه لا يوجد LED يعمل مباشرة من أطراف الميكروكنترولر بدون مقاومة ( علما أن جهد التغذية 5 فولت ) فهذا الكلام غير صحيح .
توجد أنواع كثير من الـ LEDs تعمل مباشرة دون إضافة أي مقاومات .. ربما أريكم فيديو بذلك قريبا إن شاء الله .. ومن جرب هذا من قبل أرجو أن يؤكد المعلومة .
علما أن بعض الـ LEDs يحتاج إلى مقاومة لكي لا يتلف .
أيضا في طريقتنا السابقة يمكن اضافة مقاومة لكل طرف من أطراف الميكرو . ويمكن أيضا إضافة مقاومة لكل LED ولكن أيهما أفضل ولماذا ؟؟ فكروا جميعا .
وفقني الله وإياكم لما يحب ويرضى ورزقنا وإياكم العلم النافع والعمل الصالح ..
هذا ما أريده إخوتي أن لا نتقبل أي معلومة تأتي إلينا إلا بالتأكد منها ولكن ليس بالتفكير فقط فربما نكون مخطئين بل نجرب لنتأكد ..
وفقكم الله أحبتي وجزاكم الله خيرا ... وبهذا التعاون تنهض أمتنا ..
وكل عام وأنتم إلى الله أقرب وأمتنا إلى مجدها ورقيها بكم وبأمثالكم أقرب وأقرب .
والسلام عليكم ورحمة الله وبركاته