فهرست مطالب:

سرويس گذاری با یک صفحه کلید: 3 مرحله
سرويس گذاری با یک صفحه کلید: 3 مرحله

تصویری: سرويس گذاری با یک صفحه کلید: 3 مرحله

تصویری: سرويس گذاری با یک صفحه کلید: 3 مرحله
تصویری: هر کلید کیبورد دقیقا چه کاری انجام میده؟ 2024, جولای
Anonim
سرويس گذاری با یک صفحه کلید
سرويس گذاری با یک صفحه کلید

در این دستورالعمل ما پروژه ای ایجاد خواهیم کرد که میکرو سروو را با صفحه کلیدی که با Arduino Uno اجرا می شود کنترل می کند.

مواد استفاده شده:

آردوینو اونو

تخته نان

صفحه کلید 4x4

میکرو سروو

مرحله 1: صفحه کلید را سیم کشی کنید

صفحه کلید را سیم کشی کنید
صفحه کلید را سیم کشی کنید
صفحه کلید را سیم کشی کنید
صفحه کلید را سیم کشی کنید

اولین تصوری که باید انجام دهید این است که از آردوینو ریل برق و ریل زمین را روی تخته نورد خود سیم کشی کنید

  1. پین 5 ولت را به ریل برق متصل کنید (قرمز)
  2. یک پایه زمین (GND) را به ریل زمین وصل کنید (آبی)

اکنون که تخته نان قدرت دارد و زمین خورده است ، می توانیم سیم کشی قطعات خود را شروع کنیم.

سیم کشی صفحه کلید آسان است ، اما باید به پین های صفحه کلید و آردوینو توجه داشته باشید. وقتی توجه خود را به کد خود معطوف کنیم ، مفید خواهد بود.

به یاد داشته باشید که هنگام استفاده از سیم های خود از سمت چپ شروع کنید!

  • پین اول به عدد 13 می رسد
  • پین دوم به 12 می رسد
  • پین سوم به 11 می رسد
  • پین چهارم به 10 می رسد
  • پین پنجم تا 9
  • پین ششم به 8
  • سنجاق هفتم به 7
  • هشتم پین تا 6

هنگام سیم کشی صفحه کلید ، به یاد داشته باشید که یک پین pwm دیجیتال را باز نگه دارید. ما برای میکرو سروو به آن نیاز داریم

قبل از رسیدن به کد ، مطمئن شوید که کتابخانه صفحه کلید را نصب کرده اید. این را می توان در طرح خود یافت ، سپس برگه طرح ، شامل کتابخانه. بدون آن نمی توانید از صفحه کلید استفاده کنید.

اکنون اجازه دهید به کد برویم و مطمئن شویم که صفحه کلید کار می کند و مقادیر موردنظر را نشان می دهد

یادداشت های سریع: مطمئن شوید که دستور if را برای بررسی صفحه کلید دارید ، در غیر این صورت کار نمی کند. همچنین مراقب تاخیرها باشید ، آنها با دکمه های ثبت شده از صفحه کلید خراب می شوند

#عبارتند از

سطرهای const byte = 4 ؛ // چهار ردیف از زمانی که صفحه کلید پر است

ستون const byte = 4 ؛ // چهار ستون ، همانند بالا

دکمه های char [ردیف] [ستون] = {

{1 "،" 2 "،" 3 "،" A "} ، {" 4 "،" 5 "،" 6 "،" B "} ، {" 7 "،" 8 "،" 9 "،" C '} ، {'*'،' 0 '،'#'،' D '}} ؛

بایت rowP [ردیف] = {13 ، 12 ، 11 ، 10} ؛ // پین های ردیف صفحه کلید

بایت ستون P [ستون] = {9 ، 8 ، 7 ، 6} ؛ // ستون های صفحه کلید

صفحه کلید = صفحه کلید (makeKeymap (دکمه ها) ، rowP ، ستون P ، سطر ، ستون) ؛ // ایجاد صفحه کلید

void setup () {

Serial.begin (9600)؛ }

حلقه خالی () {

char buttonPressed = pad.getKey ()؛ // دریافت char از صفحه کلید if (buttonPressed) // نشان دهید چه دکمه ای روی صفحه کلید فشار داده شده است {Serial.println (buttonPressed)؛ }}

مرحله 2: Micro Servo را اضافه کنید

Micro Servo را اضافه کنید
Micro Servo را اضافه کنید
Micro Servo را اضافه کنید
Micro Servo را اضافه کنید

حالا اجازه دهید سرو موتور را اضافه کنیم. این یکی واقعاً آسان است که به پروژه فعلی ما اضافه شود زیرا میکرو سرور فقط سه سیم دارد.

  • سیم قهوه ای به نرده زمین روی تخته نان می رود
  • قرمز به ریل برق می رود
  • نارنجی به پین 3 در آردوینو می رود. به یاد داشته باشید که میکرو سرور باید دارای پین PWM در آردوینو باشد. این به دلیل سروو با استفاده از TIMER2 است

حالا اجازه دهید فقط مطمئن شویم که میکرو سروو را درست سیم کشی کرده ایم و حرکت می کند

#شامل #شامل "Servo.h"

سطرهای const byte = 4 ؛ // چهار ردیف از زمانی که صفحه کلید پر است

ستون const byte = 4 ؛ // چهار ستون ، همانند بالا

دکمه های char [ردیف] [ستون] = {

{1 "،" 2 "،" 3 "،" A "} ، {" 4 "،" 5 "،" 6 "،" B "} ، {" 7 "،" 8 "،" 9 "،" C '} ، {'*'،' 0 '،'#'،' D '}} ؛

بایت rowP [ردیف] = {13 ، 12 ، 11 ، 10} ؛ // پین های ردیف صفحه کلید

بایت ستون P [ستون] = {9 ، 8 ، 7 ، 6} ؛ // ستون های صفحه کلید

صفحه کلید = صفحه کلید (makeKeymap (دکمه ها) ، rowP ، ستون P ، سطر ، ستون) ؛ // ایجاد صفحه کلید

سروو جریان سروو ؛ // ایجاد شیء سروو برای کنترل سروو

// دوازده شیء سروو را می توان در اکثر تخته ها ایجاد کرد

int pos = 0؛ // متغیر برای ذخیره موقعیت سروو

void setup () {

Serial.begin (9600)؛ currentServo.attach (3) ؛ // سروو روی پین 9 را به شیء سروو متصل می کند

}

حلقه خالی () {

char buttonPressed = pad.getKey ()؛ // دریافت char از صفحه کلید if (buttonPressed) // نشان دهید چه دکمه ای روی صفحه کلید فشار داده شده است {Serial.println (buttonPressed)؛ }

currentServo.write (95)؛

}

مرحله 3: کد را تغییر دهید تا از صفحه کلید روی سروو استفاده کنید

بدانید که ما قصد داریم کد خود را طوری تغییر دهیم که وقتی دکمه خاصی را روی صفحه کلید فشار می دهیم ، سروو به موقعیت خاصی منتقل شود. یک چیز مهم اول موقعیت سروو برای 0 عجیب بود. از آنجا که من یک سروو چرخشی پیوسته داشتم ، هر زمان که به 0 نزدیک می شد ، سروو به تازگی شروع به چرخش می کند. شماره ای که در کد وارد کردم تا آنجا که می توانستم بدون این اتفاق رخ می دهد کم بود. به هر حال ، کد نهایی من این است:

#شامل #شامل شود

سطرهای const byte = 4 ؛ // چهار ردیف از زمانی که صفحه کلید پر است

ستون const byte = 4 ؛ // چهار ستون ، همانند بالا

دکمه های char [ردیف] [ستون] = {

{1 "،" 2 "،" 3 "،" A "} ، {" 4 "،" 5 "،" 6 "،" B "} ، {" 7 "،" 8 "،" 9 "،" C '} ، {'*'،' 0 '،'#'،' D '}} ؛

بایت rowP [ردیف] = {13 ، 12 ، 11 ، 10} ؛ // پین های ردیف صفحه کلید

بایت ستون P [ستون] = {9 ، 8 ، 7 ، 6} ؛ // ستون های صفحه کلید

صفحه کلید = صفحه کلید (makeKeymap (دکمه ها) ، rowP ، ستون P ، سطر ، ستون) ؛ // ایجاد صفحه کلید

Servo myServo؛ //

void setup () {

Serial.begin (9600)؛ myServo.attach (5) ؛ // سروو را روی پین 9 به شیء سروو متصل می کند}

حلقه خالی () {

کلید char = pad.getKey ()؛ // char را از صفحه کلید if (key == '0') {myServo.write (11) دریافت کنید؛ Serial.println ("0") ؛ تأخیر (15) ؛ } if (key == '1') {myServo.write (12)؛ Serial.println ("1") ؛ تأخیر (15) ؛ } if (key == '2') {myServo.write (24)؛ Serial.println ("2") ؛ تأخیر (15) ؛ } if (key == '3') {myServo.write (36)؛ Serial.println ("3") ؛ تأخیر (15) ؛ }

if (کلید == '4')

{myServo.write (48)؛ Serial.println ("4") ؛ تأخیر (15) ؛ }

if (کلید == '5')

{myServo.write (60) ؛ Serial.println ("5") ؛ تأخیر (15) ؛ }

if (کلید == '6')

{myServo.write (72) ؛ Serial.println ("6") ؛ تأخیر (15) ؛ }

if (کلید == '7')

{myServo.write (84)؛ Serial.println ("7") ؛ تأخیر (15) ؛ }

if (کلید == '8')

{myServo.write (96)؛ Serial.println ("8") ؛ تأخیر (15) ؛ }

if (کلید == '9')

{myServo.write (108) ؛ Serial.println ("9") ؛ تأخیر (15) ؛ }

if (کلید == '*')

{myServo.write (120) ؛ Serial.println ("*") ؛ تأخیر (15) ؛ }

if (key == '#')

{myServo.write (132) ؛ Serial.println ("#")؛ تأخیر (15) ؛ }

if (کلید == 'A')

{myServo.write (146) ؛ Serial.println ("A") ؛ تأخیر (15) ؛ }

if (کلید == 'B')

{myServo.write (158) ؛ Serial.println ("B") ؛ تأخیر (15) ؛ }

if (کلید == 'C')

{myServo.write (170) ؛ Serial.println ("C") ؛ تأخیر (15) ؛ }

if (کلید == 'D')

{myServo.write (180) ؛ Serial.println ("D") ؛ تأخیر (15) ؛ }}

توصیه شده: