สารบัญ:

ล็อคเซอร์โวปุ่มกด: 5 ขั้นตอน
ล็อคเซอร์โวปุ่มกด: 5 ขั้นตอน

วีดีโอ: ล็อคเซอร์โวปุ่มกด: 5 ขั้นตอน

วีดีโอ: ล็อคเซอร์โวปุ่มกด: 5 ขั้นตอน
วีดีโอ: การใช้งาน ควบคุม Linear actuator กับ Arduino 2024, กรกฎาคม
Anonim
ปุ่มกดเซอร์โวล็อค
ปุ่มกดเซอร์โวล็อค
ปุ่มกดเซอร์โวล็อค
ปุ่มกดเซอร์โวล็อค
ปุ่มกดเซอร์โวล็อค
ปุ่มกดเซอร์โวล็อค

สวัสดีทุกคนหวังว่าคุณจะมีวันที่ดี หากไม่หวังว่าคุณจะสามารถย้อนกลับด้วยใจที่เปิดกว้างสำหรับบทช่วยสอนนี้และเพลงบำบัด การเขียนโปรแกรมอาจเป็นเรื่องยุ่งยาก โชคดีที่บทช่วยสอนนี้ไม่ยุ่งยาก ดังนั้นคุณอาจจะสามารถทำสิ่งที่โด่งดังได้สำเร็จ (ด้วยเสียงอันทรงพลัง): THE ULTIMATE SERVO KEYPAD LOCK!!! นั่นเป็นเพียงการแนะนำของฉัน หวังว่าคุณจะชอบมัน อย่างไรก็ตาม เรามาอุ่นนิ้วของเราในการพิมพ์กันเถอะ (เพลงเด็ด: เพลงแคนแคน (เพลงคลาสสิค))

เสบียง:

-นิ้วของคุณ

-มือของคุณก็สำคัญ

-สาย USB สำหรับ Arduino

- มี Arduino ทุกประเภท (ฉันมี Arduino Mega)

-Matrix Keypad (ปุ่มกด - อีเบย์, ปุ่มกด - amazon)

-ไมโครหรือเซอร์โวมาตรฐาน (ฉันใช้ไมโครเซอร์โว)

-*ไม่บังคับ* Breadboard - ทุกประเภท

-*อุปกรณ์เสริม* แหล่งจ่ายไฟ (5V)

ขั้นตอนที่ 1: แผนผังเวลา

แผนผังเวลา!
แผนผังเวลา!
แผนผังเวลา!
แผนผังเวลา!

แล้วทำอะไรเป็นอย่างแรก? ต่อ Arduino กับคอมพิวเตอร์ เชื่อมต่อปุ่มกดต่อไป *หมายเหตุ - คุณต้องเชื่อมต่อพินจากพินสุดท้ายบนแป้นพิมพ์เป็นพินดิจิทัลตัวแรกบน Arduino และจากขวาไปซ้ายหลังจากนั้น* ปุ่มกดมีพิน 2-9 บน Arduino เซอร์โวมีพิน 10 เป็นสัญญาณดิจิตอล ผูกสายดินของ Arduino ปุ่มกดและเซอร์โวและ 5V ด้วย *หมายเหตุ - ควรใช้เซอร์โวกับแหล่งพลังงานภายนอกหรืออะแดปเตอร์ที่มีไฟ 5V (ปลั๊กติดผนัง) ได้ดีที่สุด แต่ก็ยังเป็นทางเลือกอยู่* คุณไม่จำเป็นต้องผูกกราวด์และ 5V ทางกายภาพ สิ่งที่ฉันหมายถึงคือ เพื่อต่อสายจาก Arduino เข้ากับเซอร์โว แผนผังนี้ไม่ได้ช่วยผู้เริ่มต้นใช้งาน ดังนั้นให้ฉันอธิบายในรายละเอียดสั้น ๆ โดยทั่วไป พินสุดท้ายคือ 2 และอันแรกคือ 9 สองคือ 8 สามคือ 7 และอื่นๆ จากซ้ายไปขวา 2 2

ขั้นตอนที่ 2: เวลาเข้ารหัส

เวลาเข้ารหัส!
เวลาเข้ารหัส!
เวลาเข้ารหัส!
เวลาเข้ารหัส!

ตกลง ตอนนี้เรากำลังเข้าสู่ส่วนการเข้ารหัส! นี่คือที่มาของเวทมนตร์ที่แท้จริง! จึงมีโปรแกรมทดสอบทดสอบปุ่มกดและเซอร์โวก่อน ที่นี่:

//www.elegoo.com//2016.12.9

/* @file CustomKeypad.pde

|| @เวอร์ชั่น 1.0 || @ผู้เขียน Alexander Brevig || @ติดต่อ [email protected] || || @description || | สาธิตการเปลี่ยนขนาดปุ่มกดและค่าคีย์ || # */ #รวม

ไบต์ const ROWS = 4; //สี่แถว

const ไบต์ COLS = 4; // สี่คอลัมน์ // กำหนดสัญลักษณ์บนปุ่มของปุ่มกด char hexaKeys[ROWS][COLS] = { {{'1', '2', '3', 'A'}, {'4', '5 ', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; ไบต์ rowPins[ROWS] = {9, 8, 7, 6}; //เชื่อมต่อกับ pinouts แถวของแป้นพิมพ์ไบต์ colPins[COLS] = {5, 4, 3, 2}; //เชื่อมต่อกับ pinout ของคอลัมน์ของปุ่มกด

//เริ่มต้นอินสแตนซ์ของคลาส NewKeypad

ปุ่มกด customKeypad = ปุ่มกด (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

การตั้งค่าเป็นโมฆะ (){

Serial.begin(9600); } วงเป็นโมฆะ (){ ถ่าน customKey = customKeypad.getKey(); ถ้า (customKey) { Serial.println (customKey); } }

//www.elegoo.com//2016.12.08 #include

เซอร์โว myservo; // สร้างวัตถุเซอร์โวเพื่อควบคุมเซอร์โว

// สามารถสร้างวัตถุเซอร์โวสิบสองรายการได้บนกระดานส่วนใหญ่

int pos = 0; // ตัวแปรเก็บตำแหน่งเซอร์โว

การตั้งค่าเป็นโมฆะ () {

myservo.attach(9); // ติดเซอร์โวบนพิน 9 กับวัตถุเซอร์โว }

วงเป็นโมฆะ () {

สำหรับ (pos = 0; pos = 0; pos -= 1) { // เปลี่ยนจาก 180 องศาเป็น 0 องศา myservo.write (pos); // บอกให้เซอร์โวไปที่ตำแหน่งในตัวแปร 'pos' delay(15); // รอ 15ms เพื่อให้เซอร์โวไปถึงตำแหน่ง } }

นี่คือรหัสโครงการ (ฉันจะพูดตามตรงนะ ฉันไม่ได้ทำอะไรมาก ฉันเพิ่งเพิ่มส่วนเซอร์โว ขอบคุณคนที่ทำรหัสทั้งหมด!):

#include Password.h

#รวมปุ่มกด

/*

|| ป้อนรหัสผ่านอย่างง่ายโดยใช้แป้นพิมพ์เมทริกซ์ || 4/5/2012 อัปเดต Nathan Sobieck: [email protected] || *

/* คือการตรวจสอบรหัสผ่าน

//# คือการพยายามตั้งรหัสผ่านใหม่

/////////////////////////////////////////////////////////////////

#รวม

//https://www.arduino.cc/playground/uploads/Code/Password.zip #include //https://www.arduino.cc/playground/uploads/Code/Keypad.zip

รหัสผ่าน รหัสผ่าน = รหัสผ่าน ("1234");

เซอร์โว myservo; // สร้างวัตถุเซอร์โวเพื่อควบคุมเซอร์โว

#define servoPin 10

ไบต์ const ROWS = 4; // สี่แถว

const ไบต์ COLS = 4; // คอลัมน์ // กำหนดคีย์อักขระคีย์แมป [ROWS][COLS] = { {{'1', '2', '3', 'A'}, {'4', '5', '6', ' B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} };

ไบต์ rowPins[ROWS] = { 9, 8, 7, 6 }; // เชื่อมต่อปุ่มกด ROW0, ROW1, ROW2 และ ROW3 กับพิน Arduino เหล่านี้

ไบต์ colPins[COLS] = { 5, 4, 3, 2, }; // เชื่อมต่อปุ่มกด COL0, COL1 และ COL2 กับพิน Arduino เหล่านี้

// สร้างปุ่มกด

ปุ่มกดปุ่มกด = ปุ่มกด (makeKeymap (คีย์), rowPins, colPins, ROWS, COLS);

การตั้งค่าเป็นโมฆะ () {

myservo.attach (เซอร์โวพิน); // ติดเซอร์โวบนพิน 9 กับวัตถุเซอร์โว

Serial.begin(9600);

keypad.addEventListener (keypadEvent); //เพิ่มตัวฟังเหตุการณ์สำหรับปุ่มกดนี้

myservo.write(0);

}

วงเป็นโมฆะ () {

ปุ่มกด.getKey();

}

//ดูแลกิจกรรมพิเศษบางอย่าง

เป็นโมฆะ keypadEvent (KeypadEvent eKey) { สวิตช์ (keypad.getState ()) { กรณีกด: สวิตช์ (eKey) { กรณี '*': checkPassword (); หยุดพัก; ค่าเริ่มต้น: password.append(eKey); } } }

ตรวจสอบเป็นโมฆะรหัสผ่าน () {

ถ้า (password.evaluate() == true) { Serial.println("Success"); //เพิ่มโค้ดเพื่อเรียกใช้หากใช้งานได้

myservo.write(180);

ล่าช้า (3000);

myservo.write(0);

รหัสผ่าน.รีเซ็ต();

} else if (password.evaluate() == false) {

Serial.println("ผิด");

myservo.write(0);

//เพิ่มโค้ดเพื่อรันหากใช้งานไม่ได้

}

}

ขั้นตอนที่ 3: ทั้งหมดนี้หมายความว่าอย่างไร

ทั้งหมดนี้หมายความว่าอย่างไร?
ทั้งหมดนี้หมายความว่าอย่างไร?

รหัสด้านบน (อันแรก) จะให้สัญญาณให้เซอร์โว "กวาด" หรือเพียงแค่ไปจาก 0 ถึง 180 องศา หรือเพียงแค่หมุนครึ่งวงกลมให้เสร็จจากซ้ายไปขวาหรือขวาไปซ้าย ถ้าคุณต้องการรายละเอียดเพิ่มเติมเกี่ยวกับรหัสฉันสามารถบอกคุณได้ ขอแค่ถาม. ไม่ได้เสียหายอะไร แค่คำถามง่ายๆ เอาล่ะคุณทำได้! อย่างไรก็ตาม รหัสที่อยู่ตรงกลางจะทดสอบทุกปุ่มของปุ่มกด และรหัสสุดท้ายเพียงแค่ "ปลดล็อก" ด้วยเซอร์โวเมื่อคุณพิมพ์รหัสผ่าน "1234" ลงในแป้นพิมพ์

ขั้นตอนที่ 4: การแก้ไขปัญหา

การแก้ไขปัญหา
การแก้ไขปัญหา

ถาม: ปุ่มกดของฉันไม่ทำงาน

ตอบ: จำไว้ว่าพินแรกคือ 9 ดังนั้นให้ลงไปจากที่นั่น ตรวจสอบให้แน่ใจว่าได้เชื่อมต่อ Arduino กับพอร์ต USB ของคอมพิวเตอร์และตั้งโปรแกรม Arduino

ถาม: เซอร์โวไม่ทำงาน

ตอบ: โปรดจำไว้ว่าขาเซอร์โวคือพิน 10 และคุณต้องการกราวด์ร่วม หากคุณเชื่อมต่อโดยตรงจาก Arduino โปรดจำไว้ว่าพินสีส้ม (บนไมโครเซอร์โว) คือพิน 10 พินสีแดงคือ 5V และ พินสีน้ำตาลคือพิน GND

ถาม: Arduino ไม่ทำงาน:

A: คุณเชื่อมต่อมันหรือยัง? ฟังดูเหมือนปัญหาส่วนตัว

ขั้นตอนที่ 5: หากคุณมีคำถามใด ๆ อย่าลังเลที่จะถามในส่วนความคิดเห็นและอย่าลืมสมัครสมาชิก

ลาก่อนขอบคุณสำหรับการดูบทช่วยสอนของฉัน เป็นเรื่องสนุก

แนะนำ: