فهرست مطالب:
- مرحله 1: صورتحساب مواد
- مرحله 2: شماتیک و سیکروت
- مرحله 3: کد
- مرحله 4: تصحیح ارزشها
- مرحله 5: پروژه پس از انتقاد و مرور
- مرحله 6: بعد از چند کار لحیم کاری
- مرحله 7: لحظه حقیقت
- مرحله 8: پایان
تصویری: صفحه کلید One 4 4 × 4: 10 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
هر بار که من یک صفحه کلید می بینم ، پین های زیادی همراه آن است ، این پین های آردوینو شما هدر می رود ، بنابراین آیا می توانیم یک صفحه کلید را تنها با یک پین اجرا کنیم؟.پاسخ اینجاست
مرحله 1: صورتحساب مواد
سخت افزار:
01 آردوینو UNO
02 تخته نان
01 LCD با I2C
16 دکمه
04 مقاومت 1.5 کیلو وات
04 مقاومت 620 Ω
04 مقاومت 220 Ω
08 مقاومت 100 Ω
01 مقاومت 1 کیلو وات
07 سیم جامپر
نرم افزار:
Arduino IDE بر روی رایانه شما نصب شده است
مرحله 2: شماتیک و سیکروت
ایده این است که ما ماتریس 4*4 دکمه های فشاری داریم که به صورت عمودی با سرب راست به زمین و به صورت افقی با سربی دیگر (سربرگ دکمه) و مقاومتهای 1.5 کیلو وات ، 620Ω ، 220Ω و 100Ω متصل می شوند. همانطور که در شکل نشان داده شده است ، 4 ردیف توسط چهار مقاومت 100Ω متصل می شوند.
هربار که یک دکمه را فشار می دهید ، مدار را می بندید و جریان از مسیر متفاوت و زنجیره ای از مقاومت ها عبور می کند ، به همین دلیل است که پین A0 برای هر دکمه یک خوانش آنالوگ متفاوت دریافت می کند. تنها چیزی که در حال حاضر نیاز دارید کد نویسی است.
مرحله 3: کد
#عبارتند از
#عبارتند از
LiquidCrystal_I2C ال سی دی (0x3f ، 20 ، 4) ؛
دکمه int = A0؛
int readvalue؛
void setup ()
{
Serial.begin (9600)؛
lcd.begin ()؛
pinMode (دکمه ، ورودی) ؛
lcd.lightlight ()؛
lcd.print ("سلام جهان") ؛
تاخیر (2000) ؛
lcd.clear ()؛
lcd.print ("یک پین 4*4 صفحه کلید") ؛
تاخیر (2000) ؛ }
حلقه خالی ()
{
readvalue = analogRead (دکمه) ؛
Serial.println (readvalue)؛
if (readvalue == 852) {lcd.clear ()؛ lcd.print ("A")؛}
else {if (readvalue == 763) {lcd.clear ()؛ lcd.print ("B")؛}
else {if (readvalue == 685) {lcd.clear ()؛ lcd.print ("C")؛}
else {if (readvalue == 965) {lcd.clear ()؛ lcd.print ("D")؛}
else {if (readvalue == 565) {lcd.clear ()؛ lcd.print ("9")؛}
else {if (readvalue == 614) {lcd.clear ()؛ lcd.print ("6")؛}
else {if (readvalue == 360) {lcd.clear ()؛ lcd.print ("3")؛}
else {if (readvalue == 335) {lcd.clear ()؛ lcd.print ("#")؛}
else {if (readvalue == 396) {lcd.clear ()؛ lcd.print ("8")؛}
else {if (readvalue == 349) {lcd.clear ()؛ lcd.print ("5")؛}
else {if (readvalue == 235) {lcd.clear ()؛ lcd.print ("2")؛}
else {if (readvalue == 279) {lcd.clear ()؛ lcd.print ("0")؛}
else {if (readvalue == 452) {lcd.clear ()؛ lcd.print ("7")؛}
else {if (readvalue == 271) {lcd.clear ()؛ lcd.print ("4")؛}
else {if (readvalue == 170) {lcd.clear ()؛ lcd.print ("1")؛}
else {if (readvalue == 92) {lcd.clear ()؛ lcd.print ("*")؛} else {}}}}}}}}}}}}}}}}
مرحله 4: تصحیح ارزشها
وقتی مانیتور سریال را باز می کنید مقدار 1023 نشان داده می شود ، اگر یک دکمه را فشار دهید به شما قرائت دیگری می دهد ، باید این مقادیر را بگیرید و در کد تغییراتی ایجاد کنید.
مرحله 5: پروژه پس از انتقاد و مرور
شکی نیست که همه ما اینجا هستیم تا دانش خود را بیاموزیم و به اشتراک بگذاریم ، به لطف نظرات برخی از افراد جامعه که بسیار مفید بودند ، تصمیم گرفتم تعدادی تغییر و پیشرفت در پروژه خود ایجاد کنم:
سخت افزار:
من تصمیم گرفتم همه اجزا را در یک PCB لحیم کنم تا از مشکل اتصال بد در تخته های نان جلوگیری شود.
کد:
یکی از دوستان به من توصیه کرد که از نرم افزار حذف نرم افزار استفاده کنم و این فقط یک حلقه است (برای مثال حلقه "برای") تا برنامه زمان زیادی را برای انتخاب خوانده شود ، این بدان معناست که تعداد زیادی خوانده می شود (در امتحان من 500) اما طول می کشد فقط آخرین مورد
برای (i = 1 ؛ i <= 500 ؛ i ++) {// فقط 500 مین خواننده آنالوگ را بگیرید
value = analogRead (دکمه) ؛} // این به شما کمک می کند تا مدتی طول بکشد تا از خواندن بد جلوگیری کنید
یکی دیگر از دوستان به لطف او به من توصیه کرد که "readvalue" را با طیف وسیعی از مقادیر مقایسه نکنم ، زیرا "readvalue" مقدارهای زیادی را برای یک دکمه فشار می دهد. برای مثال "A" خواندن: 849 ، 850 ، 851 852 ، 853 ، 854 ، 855 بنابراین محدوده 7 مقدار است: یک آستانه (852) و 3 مقدار چپ و راست. آنچه ما در اینجا باید انجام دهیم این است که مقدار مطلق تفاوت بین "ارزش بازخوانی" و "852" را با "3" مقایسه کنیم.
if (abs (readvalue-852) <= 8) {lcd.clear ()؛ lcd.print ("A")؛}
مرحله 6: بعد از چند کار لحیم کاری
مرحله 7: لحظه حقیقت
همانطور که می بینید برنامه گاهی دکمه ها را اشتباه می گیرد اما همچنان کار می کند ، از لحاظ تئوری هیچ مشکلی در مدار وجود ندارد اما کد به کالیبراسیون بیشتری نیاز دارد.
مرحله 8: پایان
امیدوارم این پروژه را دوست داشته باشید و سعی کنید آن را انجام دهید ، شاید بهتر از من انجام دهید.
اگر س haveالی دارید از من بپرسید ، نظرات خود را بنویسید و اگر دوست دارید به من رای ندهید.
توصیه شده:
استفاده از 1602 صفحه کلید صفحه کلید LCD W/ Arduino [+پروژه های کاربردی]: 7 مرحله
استفاده از 1602 LCD Keypad Shield W/ Arduino [+پروژه های کاربردی]: می توانید این و سایر آموزش های شگفت انگیز را در وب سایت رسمی ElectroPeak بخوانید. مرور کلی در این آموزش ، نحوه استفاده از سپر صفحه کلید Arduino LCD با 3 پروژه کاربردی را خواهید آموخت. آنچه خواهید آموخت: نحوه تنظیم سپر و شناسایی کلیدها
رابط صفحه کلید با 8051 و نمایش شماره های صفحه کلید در 7 بخش: 4 مرحله (همراه با تصاویر)
رابط صفحه کلید با 8051 و نمایش شماره های صفحه کلید در 7 بخش: در این آموزش من به شما می گویم که چگونه می توان صفحه کلید را با 8051 و نمایش شماره های صفحه کلید در نمایش 7 بخش نمایش داد
صفحه کلید سریع و کثیف Das (صفحه کلید خالی): 3 مرحله
صفحه کلید سریع و کثیف Das (صفحه کلید خالی): صفحه کلید Das نام محبوب ترین صفحه کلید بدون کتیبه روی کلیدها (صفحه کلید خالی) است. صفحه کلید Das با قیمت 89.95 دلار به فروش می رسد. این دستورالعمل می تواند شما را راهنمایی کند هر چند خودتان با هر صفحه کلید قدیمی که در اطراف آن قرار گرفته اید یک دستگاه تهیه کنید
ایجاد یک صفحه نمایش سفارشی در استودیوی LCD (برای صفحه کلید G15 و صفحه LCD): 7 مرحله
ایجاد یک صفحه نمایش سفارشی در استودیوی LCD (برای صفحه کلید G15 و صفحه نمایش LCD): خوب اگر صفحه کلید G15 خود را به دست آورده اید و از صفحه نمایش های اولیه ای که تحت آن قرار گرفته اید بسیار تحت تأثیر قرار نگرفته اید ، اصول اولیه استفاده از LCD Studio را برای شما شرح می دهم. خودتان بسازید. این مثال ایجاد یک صفحه نمایش است که فقط پایه را نشان می دهد
تمیز کردن صفحه کلید آلومینیومی اپل یا هر صفحه کلید نرم دیگر: 5 مرحله
تمیز کردن صفحه کلید آلومینیومی Apple …. این دستورالعمل به شما کمک می کند تا آن را تمیز کنید. مراقب باشید ، زیرا اگر صفحه کلید شما هنگام انجام این کار خراب شود ، من مسئولیتی ندارم …. SUCKS F