جدول المحتويات:
- الخطوة 1: إذن ، ما هي سجلات التحول؟
- الخطوة 2: الأسلاك الأساسية والتشغيل
- الخطوة الثالثة: المشاريع
- الخطوة 4: المشروع 1 [نقطة 1]: "2 سلك" Bargraph LED Display Controller Hardware
- الخطوة 5: المشروع 1 [نقطة 2]: برنامج تحكم شاشة العرض LED "بسلكين"
- الخطوة 6: المشروع 2: "2 Wire" 7 Segment Display Controller
- الخطوة 7: المشروع 3 [نقطة 1]: عرض مصفوفة Led 4x4 "2 سلك"
- الخطوة 8: المشروع 3 [pt 2]: عرض مصفوفة Led 4x4 "2 سلك"
- الخطوة 9: الخاتمة
فيديو: 74HC164 Shift Register و Arduino الخاص بك: 9 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:42
تعد سجلات التحول جزءًا مهمًا جدًا من المنطق الرقمي ، فهي تعمل كغراء بين العالمين المتوازي والمتسلسل. إنها تقلل من عدد الأسلاك ، واستخدام المسامير ، بل وتساعد في تخفيف العبء عن وحدة المعالجة المركزية الخاصة بك من خلال القدرة على تخزين البيانات الخاصة بهم. تأتي بأحجام مختلفة ، مع نماذج مختلفة لاستخدامات مختلفة ، وميزات مختلفة. الشيء الذي سأناقشه اليوم هو 74HC164 8 بت ، تسلسلي بالتوازي ، غير مغلق ، سجل التحول. لماذا؟ حسنًا ، بالنسبة لشخص واحد ، فهي واحدة من أكثر سجلات التحول الأساسية الموجودة هناك ، مما يجعل التعرف عليها أسهل ، ولكن حدث أنها الوحيدة التي أمتلكها (لول!) تغطي هذه التعليمات كيفية عمل هذه الشريحة ، وكيفية توصيلها ، وتفاعلها مع اردوينو بما في ذلك بعض نماذج الرسومات ودوائر الصمام. أتمنى أن تستمتعوا جميعًا!
الخطوة 1: إذن ، ما هي سجلات التحول؟
كما ذكرنا سابقًا ، فهي تأتي في جميع النكهات المختلفة ، وقد ذكرت أيضًا أنني أستخدم مسجلات 74HC164 8 بت ، متسلسلة بالتوازي ، وغير مغلقة ، وماذا يعني ذلك كله؟!؟ أولاً ، الاسم 74 - يعني الجزء الخاص به من عائلة المنطق 74xx ، وبما أن منطقه لا يمكنه التحكم بشكل مباشر في الكثير من التيار (16-20ma للرقاقة بأكملها شائع) ، فإنه يمرر الإشارات فقط ، لكن هذا لا يعني هذه الإشارة لن تذهب إلى الترانزستور الذي يمكنه تبديل حمل تيار أعلى. HC تعني أنه جهاز CMOS عالي السرعة ، يمكنك أن تقرأ عن ذلك على الرابط أدناه ، ولكن ما تحتاج إلى معرفته حول ذلك هو أنه منخفض جهاز الطاقة وسيعمل من 2 إلى 5 فولت (لذلك إذا كنت تستخدم اردوينو 3.3 فولت ، فلا بأس) أيضًا يمكنها العمل بشكل صحيح بسرعات عالية ، هذه الشريحة المعينة لها سرعة نموذجية تبلغ 78 ميجا هرتز ، ولكن يمكنك أن تسير ببطء أو بسرعة (حتى تبدأ في التنبيه) كما تريد www.kpsec.freeuk.com/components/74series.htm164 هو رقم طراز هذه الشريحة ، يوجد مخطط كبير لها على wikipediaen.wikipedia.org/wiki/List_of_7400_series_integrated_circuits التالي ، 8 بت يتكون سجل التحول من دوائر فليب فليب ، فليب فليب هو 1 بت من الذاكرة ، هذا واحد هكتار ق 8 (أو 1 بايت من الذاكرة). نظرًا لأنه ذاكرة ، إذا لم تكن بحاجة إلى تحديث السجل ، فيمكنك فقط التوقف عن "التحدث" إليه وسيظل في أي حالة تركته ، حتى "تتحدث" إليه مرة أخرى أو تعيد تعيين الطاقة. يمكن أن تصل سجلات التحويل المنطقية 7400 الأخرى إلى تسلسلي يصل إلى 16 بت بالتوازي ، وهذا يعني أن اردوينو الخاص بك يرسل البيانات بشكل متسلسل (على إيقاف النبضات واحدة تلو الأخرى) ويضع سجل الإزاحة كل بت على دبوس الإخراج الصحيح. يتطلب هذا الطراز التحكم في سلكين فقط ، لذا يمكنك استخدام دبابيس رقمية على اردوينو ، وكسر تلك 2 إلى 8 مخرجات رقمية أخرى بعض الطرز الأخرى متوازية في التسلسل ، وهي تفعل نفس الشيء ولكن كمدخلات إلى اردوينو (على سبيل المثال ، NES gamepad) غير مغلق قد يكون هذا بمثابة سقوط لهذه الشريحة إذا كنت في حاجة إليها. عندما تدخل البيانات في سجل التحول عبر المسلسل ، فإنها تظهر على دبوس الإخراج الأول ، وعندما تدخل نبضة الساعة ، فإن البتة الأولى تنتقل إلى مكان واحد ، مما يؤدي إلى إنشاء تأثير التمرير على المخرجات ، على سبيل المثال 00000001 ستظهر على المخرجات مثل 101001000100001000001000000100000001 إذا كنت تتحدث إلى أجهزة منطقية أخرى تشترك في نفس الساعة ولا تتوقع ذلك ، فقد يتسبب ذلك في حدوث مشكلات. تحتوي سجلات الإزاحة المغلقة على مجموعة إضافية من الذاكرة ، لذلك بمجرد الانتهاء من إدخال البيانات إلى السجل ، يمكنك قلب مفتاح وإظهار المخرجات ، ولكنها تضيف سلكًا وبرنامجًا وأشياء أخرى يجب مواكبة ذلك. نحن نتحكم في شاشات LED ، ويحدث تأثير التمرير سريعًا لدرجة أنك لا تستطيع رؤيته (باستثناء عندما تقوم بتشغيل الشريحة لأول مرة) ، وبمجرد أن يكون البايت في سجل التحول ، لن يكون هناك المزيد من التمرير ، وسوف نتحكم في نوع الرسم البياني ، 7 مقاطع ، ومصفوفة نقطية 16LED 4x4 مع هذه الشريحة والبرنامج على اردوينو باستخدام دبابيس رقمية فقط (+ الطاقة والأرض)
الخطوة 2: الأسلاك الأساسية والتشغيل
الأسلاك إن 74HC164 عبارة عن شريحة من 14 سنًا ، وتحتوي على 4 دبابيس إدخال ، و 8 دبابيس إخراج ، وقوة وأرضية ، لذلك دعنا نبدأ من الأعلى. يعتبر كل من الدبابيس 1 و 2 من المدخلات التسلسلية ، ويتم إعدادهما كبوابة AND منطقية ، مما يعني ذلك كلاهما يجب أن يكون منطقيًا مرتفعًا (أي 5 فولت) لكي يُنظر إلى البتة على أنها 1 ، فإن الحالة المنخفضة (0 فولت) على أي منهما ستقرأ على أنها صفر. لسنا في حاجة إلى هذا حقًا ومن الأسهل التعامل معه في البرامج ، لذا اختر واحدًا واربطه بـ V + بحيث يكون دائمًا مرتفعًا. أختار استخدام وصلة عبور من الدبوس 1 إلى رقم 14 (V +) حيث يمكنك فقط وضع وصلة عبور على اللوح فوق الشريحة. المدخل التسلسلي الوحيد المتبقي (الدبوس 2 في المخططات الخاصة بي) سينتقل إلى رقم التعريف الشخصي 2 من اردوينو. الدبابيس 3 و 4 و 5 و 6 من 74HC164 هي أول 4 بايتات من الإخراج ، ويتصل دبوس 7 بالأرض ، قفزًا إلى اليمين ، دبوس 8 هو دبوس الساعة ، هذه هي الطريقة التي يعرف بها سجل الإزاحة أن البتة التسلسلية التالية جاهزة للقراءة ، يجب توصيلها بالرقم الرقمي 3 على اردوينو ، والدبوس 9 هو مسح السجل بالكامل مرة واحدة ، إذا كان منخفضًا ، لديك خيار استخدامه ، ولكن لا يوجد شيء في هذا الغامض ، لذا اربطه بـ V + دبابيس 10 و 11 12 و 13 هي آخر 4 بايت من الإخراج 14 هي عملية طاقة الرقائق أولاً تحتاج إلى ضبط الإدخال التسلسلي من السجل (رقم التعريف الشخصي 2 على اردوينو) مرتفعًا أو منخفضًا ، بعد ذلك تحتاج إلى قلب دبوس الساعة (الرقم الرقمي 3) من الأقل إلى الأعلى ، وسيقوم مسجل الإزاحة بقراءة البيانات الموجودة على الإدخال التسلسلي وتحويل دبابيس الإخراج بواسطة 1 ، كرر 8 مرات وقمت بتعيين جميع المخرجات الثمانية ويمكن القيام بذلك يدويًا باستخدام حلقات for والكتابة الرقمية في اردوينو IDE ، ولكن منذ ذلك الحين إنه عبارة عن اتصالات شائعة جدًا على مستوى الأجهزة (SPI) لديهم وظيفة واحدة تقوم بذلك نيابة عنك. shiftOut (dataPin ، clockPin ، bitOrder ، القيمة) فقط أخبرها بمكان توصيل دبابيس البيانات والساعة بـ arduino ، وأي طريقة لإرسال البيانات وما الذي تريد إرساله ، والعناية به من أجلك (سهل)
الخطوة الثالثة: المشاريع
حسنًا ، كافيًا من المحاضرة والنظرية ، دعنا نقوم ببعض الأشياء الممتعة باستخدام هذه الشريحة! هناك 3 مشاريع يمكن تجربتها في هذه التعليمات ، أول مشروعين سهل ويمكن إعدادهما في لحظات. تتطلب المجموعة الثالثة ، وهي مصفوفة 4x4 led ، مزيدًا من الوقت والتفكير في بنائها ، نظرًا للأسلاك التي يقودها. متوافق (5 فولت) 1 * 330 أوم 1/4 واط المقاوم 8 * خرج عادي أحمر LED 12 * أسلاك توصيل للمشروع 2: وحدة تحكم عرض '2 سلك' 7 أجزاء 1 * 74HC164 سجل التحول 1 * لوح لحام 1 * اردوينو أو متوافق مع اردوينو (5 فولت) 1 * 330 أوم 1/4 واط المقاوم 1 * عرض الكاثود المشترك بسبعة مقاطع 9 * أسلاك توصيل للمشروع 3: عرض مصفوفة LED 4x4 "2 سلك" 1 * 74HC164 سجل التحول 1 * اردوينو أو متوافق مع اردوينو (5 فولت) 4 * 150 أوم 1 1/4 واط المقاوم 8 * 1Kohm 1/8 واط المقاوم (أو أكبر) 8 * NpN الترانزستور (2n3904 أو أفضل) 16 * خرج عادي LED أحمر وسيلة لبناءه وتنظيم طاقة 5 فولت يمكنها التعامل مع 160 + مللي أمبير (يمكنك قم بتشغيل جميع مصابيح LED مرة واحدة مثل ضوء الفرامل)
الخطوة 4: المشروع 1 [نقطة 1]: "2 سلك" Bargraph LED Display Controller Hardware
قم بتوصيل اردوينو وتحويل السجل وفقًا للتخطيطي ، لدي بالفعل شاشة عرض رسم بياني من 10 مقاطع جاهزة لاستخدام اللوح وهذا ما ستراه في الصورة ، ولكن يمكنك فعل الشيء نفسه مع مصابيح LED الفردية في الصفحة الثانية ذكرت أن هذه لم تكن أجهزة سائق ، إنها أجهزة منطقية ، بكميات ضئيلة من التيار قادرة على المرور عبرها. من أجل تشغيل 8 مصابيح LED ، مع الحفاظ على الدائرة بسيطة ، وعدم طهي سجل التغيير ، يتطلب منا الحد من التيار قليلاً. يتم توصيل مصابيح LED بالتوازي وتشترك في أرضية مشتركة (كاثود مشترك) ، قبل الدخول في الطاقة أرض التزويد التي يحتاجون إليها للمرور عبر المقاوم 330 أوم ، مما يحد من المقدار الإجمالي للتيار الذي يمكن أن تستخدمه جميع مصابيح LED إلى 10 مللي أمبير (عند 5 فولت) وهذا يترك مصابيح LED في حالة مرضية ولكنها تضيء وبالتالي تعمل من أجل في هذا المثال ، من أجل تشغيل مصابيح LED في تيارها المناسب ، ستحتاج إلى إدخال ترانزستور حيث يمكن لمسجل التحول تشغيل / إيقاف تشغيل مصدر تيار أعلى (انظر المشروع 3) يحتاج دبوس البيانات الخاص بسجل الإزاحة (دبوس 2) للاتصال بدبوس اردوينو الرقمي # 2
الخطوة 5: المشروع 1 [نقطة 2]: برنامج تحكم شاشة العرض LED "بسلكين"
مثال 1: افتح الملف "_164_bas_ex.pde" داخل arduino IDE ، إنه رسم بسيط يسمح لك فقط بتعريف LED أو إيقاف تشغيله في عرض الرسم البياني يحدد أول سطرين أرقام الدبوس التي سنستخدمها للبيانات والساعة ، أنا استخدم #define over const صحيحة ، أجد أنه من الأسهل تذكرها ، ولا توجد ميزة لأحدهما أو الآخر بمجرد تجميعه #define data 2 # حدد الساعة 3 بعد ذلك هي وظيفة الإعداد الفارغة ، فهي تعمل مرة واحدة فقط ، لذلك يتحول اردوينو قيد التشغيل ، يقوم بتعيين سجل التحول وليس لديه أي شيء آخر للقيام به. داخل وظيفة الإعداد الفارغ ، قمنا بتعيين دبابيس الساعة والبيانات كدبابيس OUTPUT ، ثم باستخدام وظيفة shiftOut ، نرسل البيانات إلى إعداد باطل سجل التحول () {pinMode (clock ، OUTPUT) ؛ // اجعل دبوس الساعة بمثابة pinMode الناتج (البيانات ، الإخراج) ؛ // اجعل دبوس البيانات تحولًا في الإخراج (البيانات ، الساعة ، LSBFIRST ، B10101010) ؛ // أرسل هذه القيمة الثنائية إلى سجل الإزاحة} في وظيفة shiftOut ، يمكنك رؤية بيانات الوسيطات الخاصة بها هي دبوس البيانات ، والساعة هي دبوس الساعة. العنصر الذي يتجاوز B هو البت الأقل أهمية أولاً ، يتم تغذيته أولاً ، بحيث ينتهي به الأمر في الناتج الأخير بمجرد تغذية جميع البتات الثمانية في B10101010 هي القيمة الثنائية التي يتم إرسالها إلى سجل الإزاحة ، وسوف يتم تشغيل كل ضوء فردي ، جرب اللعب بقيم مختلفة لتشغيل أو إيقاف أنماط مختلفة ، وأخيراً حلقة فارغة فارغة (لأنك بحاجة إلى واحدة حتى لو لم تكن تستخدمها) حلقة فارغة () {} // حلقة فارغة الآن مثال 2: أول 8 أسطر هي مثل الأسطر الثمانية الأولى من المثال الأول ، في الواقع لن تتغير لأي من المشاريع الأخرى ، لذلك #define data 2 # حدد clock 3void setup () {pinMode (clock، OUTPUT)؛ // اجعل دبوس الساعة بمثابة pinMode الناتج (البيانات ، الإخراج) ؛ // جعل دبوس البيانات ناتجًا ولكن الآن في الإعداد الفارغ ، يوجد 8 عدد للحلقة ، يأخذ بايت فارغًا ويتحول 1 بت في كل مرة بدءًا من أقصى اليسار ويتحرك لليمين. هذا عكسي من المثال الأول حيث بدأنا من أقصى اليمين وعملنا على اليسار ، ولكن باستخدام MSBFIRST ترسل وظيفة shift out البيانات بالطريقة الصحيحة ، ونضيف أيضًا تأخيرًا في حلقة for بحيث تبطئ بما يكفي لتكون مرئية. لـ (int i = 0 ؛ i <8 ؛ ++ i) // لـ 0-7 فعل {shiftOut (بيانات ، ساعة ، MSBFIRST ، 1 << i) ؛ // تحويل البت لقيمة منطقية عالية (1) بواسطة تأخير i (100) ؛ // تأخير 100 مللي ثانية أو لن تتمكن من رؤيتها}} حلقة فارغة () {} // حلقة فارغة الآن قم بتحميل البرنامج النصي ويجب أن ترى الآن الرسم البياني يضيء كل ضوء واحد في كل مرة
الخطوة 6: المشروع 2: "2 Wire" 7 Segment Display Controller
انظر إلى دبوس شاشة العرض المكون من 7 أجزاء (لم يكن لدي سوى شريحة مزدوجة ولكني أستخدم النصف فقط) واستخدم الرسم أدناه لتوصيل كل جزء بالبت الصحيح في سجل التحول 1 = دبوس 3 بت 2 = دبوس 4 بت 3 = دبوس 5 بت 4 = دبوس 6 بت 5 = دبوس 10 بت 6 = دبوس 11 بت 7 = دبوس 12 بت 8 = دبوس 13 (إذا كنت تريد استخدام الفاصلة العشرية) وكاثود الشاشة من خلال المقاوم 330 أوم ولإمداد الطاقة الأرضية الآن افتح Seven_seg_demo.pde في معرف اردوينو ، سترى أولاً أين نحدد البيانات ودبابيس الساعة # تعريف البيانات 2 # حدد الساعة 3 بعد ذلك ، قمنا بتعيين جميع أنماط الأحرف في ثنائي ، هذا سهل جدًا ، انظر إلى الرسم أدناه ، إذا كنت بحاجة إلى الجزء الأوسط اكتب واحدًا ، بعد ذلك ، هل تحتاج إلى الجزء العلوي ، إذا كان الأمر كذلك ، فاكتب مقطعًا آخر ، استمر في القيام بذلك حتى تغطي جميع الأجزاء الثمانية ، ولاحظ أن الجزء الأيمن (بت 8) دائمًا هو 0 ، وذلك لأنني لم أشغل العلامة العشرية مطلقًا نقطة. بايت صفر = B01111110 ؛ بايت واحد = B00000110 ؛ بايت اثنان = B11011010 ؛ بايت ثلاثة = B11010110 ؛ بايت أربعة = B10100110 ؛ بايت خمسة = B11110100 ؛ بايت ستة = B11111100 ؛ بايت سبعة = B01000110 ؛ بايت ثمانية = B11111111 ؛ بايت تسعة = بعد ذلك ، قمنا بتعيين بياناتنا ودبابيس الساعة على مخرجات الإعداد باطل () {pinMode (clock، OUTPUT)؛ // اجعل دبوس الساعة بمثابة pinMode الناتج (البيانات ، الإخراج) ؛ // اجعل دبوس البيانات ناتجًا 3} ثم في الحلقة الفارغة نستخدم shiftOut لعرض كل نمط (رقم) ، انتظر 1/2 في الثانية وعرض التالي ، من 0 إلى 9 ، نظرًا لأنه يتم إجراؤه في وظيفة الحلقة الفارغة ، فسيتم حسابه 0-9 وكرر إلى الأبد. حلقة فارغة () {shiftOut (بيانات ، ساعة ، LSBFIRST ، صفر) ؛ تأخير (500) ؛ shiftOut (البيانات ، الساعة ، LSBFIRST ، واحد) ؛ تأخير (500) ؛ shiftOut (البيانات ، الساعة ، LSBFIRST ، اثنان) ؛ تأخير (500) ؛ shiftOut (البيانات ، الساعة ، LSBFIRST ، ثلاثة) ؛ تأخير (500) ؛ التحول (البيانات ، الساعة ، LSBFIRST ، أربعة) ؛ تأخير (500) ؛ shiftOut (البيانات ، الساعة ، LSBFIRST ، خمسة) ؛ تأخير (500) ؛ shiftOut (البيانات ، الساعة ، LSBFIRST ، ستة) ؛ تأخير (500) ؛ shiftOut (البيانات ، الساعة ، LSBFIRST ، سبعة) ؛ تأخير (500) ؛ shiftOut (البيانات ، الساعة ، LSBFIRST ، ثمانية) ؛ تأخير (500) ؛ shiftOut (البيانات ، الساعة ، LSBFIRST ، تسعة) ؛ تأخير (500) ؛}
الخطوة 7: المشروع 3 [نقطة 1]: عرض مصفوفة Led 4x4 "2 سلك"
يعتبر مشروع مصفوفة 4x4 LED أكثر تعقيدًا إلى حد ما ، ولكنه في الغالب قيد الإنشاء ، اخترت أن أجعل منجمًا ملحومًا على لوح بيرفيبورد ، ولكن يجب أن يكون من الممكن نسخه على لوح التجارب ، مع تباعد أكثر بكثير. يختلف من حيث أن سجل الإزاحة لا يقود بشكل مباشر الصمامات ، وبدلاً من ذلك يتم إرسال مخرجات سجل التحول من خلال المقاوم 1Kohm إلى قاعدة الترانزستور NpN ، عندما يكون ناتج البت مرتفعًا ، فإنه يسمح بمرور التيار والجهد الكافيين إلى الترانزستور لتبديل الاتصال بين المجمع والباعث ، يتم ربط المجمعات بـ 5 فولت "قوي" منظم. يتم توصيل بواعث الترانزستورات بمقاومات 150 أوم والمقاومات مرتبطة بحلقات 4 مصابيح متتالية و يحد الصف إلى 20ma ، على الرغم من أنه عند رسم الصور على الشاشة ، يتم تشغيل مصباح واحد فقط في كل مرة ، وبالتالي يقترب من السطوع الكامل (قريبًا لأنهم يتم تشغيلهم وإيقاف تشغيلهم بسرعة كبيرة لتكوين الصورة بأكملها) هناك 4 صفوف و 4 الأعمدة ، كل منها يحصل الصف على المقاوم والترانزستور ، وفي كل عمود يتم ربط كاثودات LED معًا ، وركض في مجمع الترانزستور ، الذي يتم التحكم في قاعدته أيضًا بواسطة سجل التحول ، وأخيراً إلى الأرض. نسخة كبيرة من التخطيطي www.instructables.com/files/orig/F7J/52X0/G1ZGOSRQ/F7J52X0G1ZGOSRQ.jpg
الخطوة 8: المشروع 3 [pt 2]: عرض مصفوفة Led 4x4 "2 سلك"
يتحكم سجل الإزاحة في كل من الأنود وكاثودات مصابيح LED بتنسيق YX ، انظر إلى البت التالي 1 = العمود 1 (أقصى اليمين) بت 2 = العمود 2 بت 3 = العمود 3 بت 4 = العمود 4 بت 5 = الصف 1 (أعلى) بت 6 = الصف 2 بت 7 = الصف 3 بت 8 = الصف 4 لعمل صورة ارسم مربعًا 4x4 على ورق الرسم البياني واملأ أي منها تريد عرضه ، قم بعد ذلك بعمل جدول YX. أدناه سترى تعيينًا للتشابه ، وأفضل ما يمكن فعله على 4x4 "بكسل" لكل قسم مملوء ، أكتب العمود (Y) الموجود فيه ، ثم في أي صف يوجد في (X) افتح الآن ملف _4x4.pde في اردوينو IDE ، سترى صديقتنا القدامى #define data 2 # حدد الساعة 3 ثم مجموعة من الأعداد الصحيحة int img = {1 ، 1 ، 4 ، 1 ، 1 ، 3 ، 4 ، 3 ، 2 ، 4 ، 3 ، 4} ؛ إذا نظرت إلى مجرد قائمة بإحداثيات YX المكتوبة ، فسيكون من الصعب للغاية تحويل هذه القيم يدويًا ، ولدينا جهاز كمبيوتر … دعه يفعل ذلك! الانتقال إلى هناك إعداد باطل حيث نجعله دبابيس الساعة والبيانات الخاصة بنا OUTPUTS void setup () {pinMode (clock، OUTPUT)؛ // اجعل دبوس الساعة بمثابة pinMode الناتج (البيانات ، الإخراج) ؛ / / make the data pin an output3} وحلقة فارغة مربكة المظهر ، لبدء الأشياء نحتاج إلى إعلان بعض المتغيرات المحلية void loop () {int Y؛ كثافة العمليات X ؛ بايت خارج ثم حلقة for ، يجب أن تكون هذه الحلقة طويلة مثل كمية الإدخالات في مصفوفة img ، بالنسبة لهذه الصورة ، لم أستخدم سوى 6 بكسل ، بحيث يكون هذا إحداثيات 12 YX. أجعله يتخطى كل رقم آخر باستخدام i + = 2 ، لأننا قرأنا إحداثيات 2 لكل حلقة لـ (int i = 0 ؛ i <12 ؛ i + = 2) // عدد النقاط في صفيف img ، هذه الحالة 12 {نقرأ الآن إدخال Y عند في المصفوفة ، ونطرح واحدًا من قيمته ، لأن البايت لا تبدأ من واحد ، فهي تبدأ من الصفر ، لكننا نحسب من 1 // احصل على الزوج الأول من حبال YX Y = (img - 1) ؛ // اطرح واحدًا لأن عدد البتات يبدأ عند 0 ثم نقرأ إدخال X عند [i + 1] في المصفوفة ، ونطرح واحدًا من قيمته ، لنفس السبب X = (img [i + 1] - 1) ؛ بعد أن نحصل على قيم YX للبكسل ، نقوم ببعض العمليات الحسابية أو الحسابية ، وننتقل إلى اليسار ، أولاً نحتاج إلى قراءة قيمة X ، ومهما كانت قيمتها ، فقم بتحويل العديد من الأماكن + 4 إلى اليسار ، لذلك إذا كانت X تساوي 4 وأضف 4 ، وهو 8 بت (MSB) ، بالنظر إلى الرسم البياني مرة أخرى … البتة 1 = العمود 1 (أقصى اليمين) البتة 2 = العمود 2 بت 3 = العمود 3 بت 4 = العمود 4 بت 5 = الصف 1 (الأعلى) البتة 6 = الصف 2 بت 7 = الصف 3 بت 8 = الصف 4 بت 8 هو الصف الأخير ، وبعد ذلك يتم إزاحة قيمة Y أيضًا إلى اليسار ، وهذه المرة فقط من تلقاء نفسها ، لا شيء مضافًا ، أخيرًا ، يتم الجمع بين الاثنين معًا في 1 بايت بدلاً من 2 نصف بايت (nibbles) ، باستخدام أحادي المعامل أو (الرمز |) يأخذ وحدتي بايت ويجمعهما معًا بشكل أساسي ، لنفترض أن X = 10000000Y = 00000001 -------------------- OR = 10000001 ، عدد 4 عمود 1 خارج = 1 << (X + 4) | 1 << ص ؛ وأخيرًا shiftOut لعرض الصورة الحالية ، واستمر في فعل ذلك حتى لا يكون لدينا المزيد من البيانات في المصفوفة … تأخير لحظة وحلقة إلى الأبد ، نظرًا لأننا كنا نحول البيانات إلى اليسار ونحتاج إلى أن يكون MSB على آخر طرف إخراج من سجل الوردية أرسلها أولاً. shiftOut (بيانات ، ساعة ، MSBFIRST ، خارج) ؛ // تحويل البايت إلى تأخير السجل لدينا (1) ؛ // تأخيره قليلاً حتى يكون لديه فرصة لترك بقعة من الضوء في عينيك. وأخيراً صانع شرارة عشوائي
الخطوة 9: الخاتمة
فوق كل هذا ، هناك شريحة صغيرة سهلة الاستخدام ، ويسعدني أنني ألغيت قطعة إلكترونية قديمة متوجهة إلى سلة المهملات ، ويمكن استخدامها لأشياء أخرى إلى جانب أنظمة العرض ، لكن الجميع يحب الأضواء والاستجابة الفورية للرؤية. ما يحدث مفيد للغاية للمفكرين البصريين مثل I. كما يرجى مسامحة الكود الخاص بي ، لم يكن لدي سوى اردوينو منذ نوبة الأسبوع الثالث من أكتوبر ، وكانت دورة مكثفة جدًا.ولكن هذا هو الشيء الرائع في النظام ، إذا جلست وعملت معه ، فهو مليء بالميزات الأنيقة التي تجعل التحكم في العالم باستخدام متحكم 8 بت سهل للغاية. كما هو الحال دائمًا ، نرحب بالأسئلة والتعليقات ، وشكراً على القراءة ، أتمنى أن تكون قد تعلمت الكثير
موصى به:
Steam Punk الخاص بك UPS للحصول على ساعات من وقت تشغيل موجه Wi-fi الخاص بك: 4 خطوات (بالصور)
Steam Punk UPS الخاص بك للحصول على ساعات من وقت تشغيل موجه Wi-fi الخاص بك: هناك شيء غير مقبول بشكل أساسي حول تحويل UPS الخاص بك لطاقة بطارية 12V DC إلى طاقة 220V AC بحيث يمكن للمحولات التي تشغل جهاز التوجيه والألياف ONT تحويلها مرة أخرى إلى 12V العاصمة! أنت أيضًا ضد [عادةً
التحكم في عرض الأجزاء السبعة باستخدام Arduino و 74HC595 Shift Register: 6 خطوات
التحكم في عرض الأجزاء السبعة باستخدام Arduino و 74HC595 Shift Register: مرحبًا ، ما الأمر ، يا رفاق! Akarsh هنا من CETech. من الجيد النظر إلى عرض سبعة قطاعات وهي دائمًا أداة مفيدة لعرض البيانات في شكل أرقام ولكن هناك عيبًا فيها وهو أنه عندما نتحكم في عرض سبعة أجزاء في الواقع
تحكم في تخطيط نموذج القطار الخاص بك باستخدام جهاز التحكم عن بُعد الخاص بالتلفاز: 7 خطوات (بالصور)
تحكم في تخطيط نموذج القطار الخاص بك باستخدام جهاز التحكم عن بُعد الخاص بالتلفزيون!: في هذا الدليل ، سأوضح لك كيفية إنشاء نظام تحكم عن بعد بالأشعة تحت الحمراء لقطار نموذجي. ستتمكن بعد ذلك من التحكم في قطاراتك أثناء الاسترخاء على الأريكة. لذلك دعونا نبدأ
استخدم نظام التشغيل Mac OSX الخاص بك كمحول Wirelss لجهاز XBOX 360 الخاص بك: 6 خطوات
استخدم Mac OSX كمحول Wirelss لجهاز XBOX 360 الخاص بك: لقد رأيت دليلًا آخر حول كيفية القيام بذلك هنا ولكنه كان خاطئًا بشكل فظيع وتركت الكثير من الأشياء ، لذلك قررت أن أصنعها
استخدام Dot Matrix LED مع Arduino و Shift Register: 5 خطوات
استخدام Dot Matrix LED مع Arduino و Shift Register: يعد مصباح مصفوفة نقطي DLO7135 من سيمنز قطعة رائعة من الإلكترونيات الضوئية. وصفت بأنها شاشة 5x7 Dot Matrix Intelligent Display (r) مع ذاكرة / وحدة فك ترميز / برنامج تشغيل. إلى جانب هذه الذاكرة ، تحتوي على شاشة ASCII مكونة من 96 حرفًا مع مجموعة علوية وسفلية