جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
مرحبا بالجميع! هذا هو مشروعي الخاص بمنزلق كاميرا DIY ، لقد مررت بوقت عصيب معي ، لكنني متأكد من أنك إذا كنت تولي مزيدًا من الاهتمام بالتفاصيل ، فستنجح!
من الناحية النظرية ، يجب أن يعمل هذا بشكل كامل
إذا اخترت القيام بذلك ، آمل أن تستمتع به!
الخطوة 1: اجمع المواد لك
المواد الإلكترونية
- اردوينو
- اثنين من الماكينات 360
- لوح الخبز
- المقاومات
- أزرار (يفضل 3)
مواد بناء
- قطعتين من لوح الرغوة
- قطع خشبية من وتد (يمكن أن تكون معدنية)
- قطع خشبية بيضاوية الشكل (راجع الصورة التمهيدية للصورة).
الخطوة 2: الإعداد
هذه الصورة هي مخطط الدائرة
اتبع هذا وسيعمل مشروعك!
الخطوة 3: تجميع اللوح
- بادئ ذي بدء ، قم بتوصيل الموجب والأرضي باللوحة.
- ثانيًا ، قم بتوصيل المؤازرتين … ولديهما سلكان يعملان على الأرض وإيجابيًا ، وآخر بالدبوس الذي ستختاره. (لاحظ أن الكود سيحتوي على الدبابيس التي اخترتها)..
- ثم قم بتجميع الأزرار الخاصة بك … تذكر أن تتصل بالدبابيس التي تختارها ولكن الكود لن يعمل إذا لم تستخدم المسامير التي اخترتها. قم بتوصيل الأزرار بالأرض أيضًا.
- واستخدام 220 المقاوم.
- أخيرًا ، إذا كنت ترغب في استخدام شاشة LCD ، فسيتعين عليك توصيل دبابيس بمدخل تناظري وسلك واحد بالطرف الموجب.
الخطوة 4: كود اردوينو
# تضمين # تضمين # تضمين
LiquidCrystal_I2C lcd (0x27، 16، 2) ؛ // قم بتعيين عنوان LCD على 0x27 لعرض 16 حرفًا وخطين
مؤازرة اليسار ؛ // تحديد اليسار المؤازرة المؤازرة اليمنى ؛ // تحديد المؤازرة الصحيحة
const int startbut = 8 ؛ // pin for startbut (startbutton) const int forwardbut = 12 ؛ // pin for forwardbut (زر أمامي) const int reverseebut = 13 ؛ // دبوس للرجوع للخلف (زر عكسي) int tim = 500 ؛ // قيمة وقت التأخير int flag = 0 ؛ عدد صحيح = 0 ؛
char array1 = "مرحبًا" ؛ // السلسلة المراد طباعتها على شاشة LCD ("مرحبًا") char array2 = "push left = LEFT، right = RIGHT!"؛ // السلسلة المراد طباعتها على شاشة LCD ("الدفع جهة اليسار = اليسار ، اليمين = اليمين")
إعداد باطل () {servoLeft.attach (10) ؛ // قم بتعيين المؤازرة اليسرى على رقم التعريف الشخصي 10 servoRight.attach (9) ؛ // تعيين المؤازرة اليمنى على الرقم الرقمي 9 servoLeft.write (90) ؛ // ضبط الماكينات على 90 درجة servoRight.write (90) ؛ تأخير (100) ؛
// يحول الدبوس إلى مدخلات pinMode (startbut ، INPUT) ؛ // تهيئة startbut (زر البداية) كوصلة إدخال pinMode (reverseebut ، INPUT) ؛ // تهيئة العكس (زر عكسي) باعتباره إدخال pinMode (إعادة توجيه ، INPUT) ؛ // تهيئة Forwardbut (زر إعادة توجيه) كمدخل
}
الحلقة الفارغة () {// التكرار خلال اختبارات الحركة // كود شاشة LCD إذا (العلم == 1 && count == 0) {count = 1؛ lcd.init () ، // تهيئة شاشة lcd lcd.backlight () ؛ // افتح الإضاءة الخلفية
lcd.setCursor (15، 0) ؛ // اضبط المؤشر على العمود 15 ، السطر 0 لـ (int positionCounter1 = 0 ؛ positionCounter1 <26 ؛ positionCounter1 ++) {lcd.scrollDisplayLeft () ؛ // لتمرير محتويات الشاشة بمسافة واحدة إلى اليسار. lcd.print (array1 [positionCounter1]) ؛ // اطبع رسالة على شاشة LCD. تأخير (توقيت) ؛ // wait for 250 microseconds} lcd.clear () ؛ // يمسح شاشة LCD ويضع المؤشر في الزاوية العلوية اليسرى. lcd.setCursor (15 ، 1) ؛ // اضبط المؤشر على العمود 15 ، السطر 1 لـ (int positionCounter = 0 ؛ positionCounter <26 ؛ positionCounter ++) {lcd.scrollDisplayLeft () ؛ // لتمرير محتويات الشاشة بمسافة واحدة إلى اليسار. lcd.print (array2 [positionCounter]) ؛ // اطبع رسالة على شاشة LCD. تأخير (توقيت) ؛ // wait for 250 microseconds} lcd.clear () ؛ // يمسح شاشة LCD ويضع المؤشر في الزاوية العلوية اليسرى. } ///////////////////////////////////////////////////// ////////////////////////////////////////////////////// /////////////////////////////////////////
/ تحقق مما إذا كانت الأزرار مضغوطة إذا (digitalRead (startbut) == 1) {flag = 1؛ // علامة متغير لزر البدء}
if (flag == 1) {if (digitalRead (reverseebut) == HIGH) // سيتم تشغيل الضغط على reverseebut {reverse () ؛ // متغير عكسي للزر العكسي} else if (digitalRead (forwardbut) == HIGH) // forwardbut pressed سوف يؤدي إلى تشغيل المؤازرة {forward ()؛ // متغير Forwardbutton} else {stop () ؛ // إيقاف متغير لإيقاف حركة الماكينات عند عدم الضغط على الأزرار}}
}
// إجراءات الحركة للأمام والخلف والإيقاف إلى الأمام () {// forward command servoLeft.write (0)؛ // الاتجاه الذي تتحول فيه الماكينات إلى servoRight.write (180) ؛ } void stop () {// stop command servoLeft.write (90) ؛ // يوقف كلا الماكينات في نفس المكان ، وإلا فسيكون في وضعيات مختلفة servoRight.write (90) ؛ } void reverse () {// reverse command servoLeft.write (180) ؛ // تنشيط المؤازرة في الاتجاه المعاكس servoRight.write (0) ؛ }
ها هو رمز النجاح! بعد الانتهاء من إعداد اردوينو الخاص بك ، يجب أن يعمل كل شيء! و استمتع!
إذا لم تنجح ، فتأكد من إلقاء نظرة على هذه التعليمات والتحقق من كل شيء!