Агуулгын хүснэгт:

Нэг зүү 4 × 4 товчлуур: 10 алхам
Нэг зүү 4 × 4 товчлуур: 10 алхам

Видео: Нэг зүү 4 × 4 товчлуур: 10 алхам

Видео: Нэг зүү 4 × 4 товчлуур: 10 алхам
Видео: Грунтовка развод маркетологов? ТОП-10 вопросов о грунтовке. 2024, Арваннэгдүгээр
Anonim
Нэг зүү 4 × 4 товчлуур
Нэг зүү 4 × 4 товчлуур

Би товчлуур харах болгондоо маш олон зүү дагалддаг, энэ нь таны Arduino -ийн зүүг маш их алддаг, тиймээс бид ганц товчлууртай товчлуур ажиллуулж болох уу?. Хариулт нь энд байна.

Алхам 1: Билл материал

Билл материал
Билл материал

Техник хангамж:

01 Arduino UNO

02 Breadboards

I2C бүхий 01 LCD дэлгэц

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 lcd (0x3f, 20, 4);

int товчлуур = A0;

int readvalue;

хүчингүй тохиргоо ()

{

Цуваа эхлэх (9600);

lcd.begin ();

pinMode (Товчлуур, оролт);

lcd.backlight ();

lcd.print ("Сайн уу ертөнц");

саатал (2000);

lcd.clear ();

lcd.print ("Нэг зүү 4*4 товчлуур");

саатал (2000); }

хоосон давталт ()

{

readvalue = analogRead (Товчлуур);

Serial.println (унших утга);

if (readvalue == 852) {lcd.clear (); lcd.print ("A");}

өөр {if (readvalue == 763) {lcd.clear (); lcd.print ("B");}

өөр {if (readvalue == 685) {lcd.clear (); lcd.print ("C");}

өөр {if (readvalue == 965) {lcd.clear (); lcd.print ("D");}

өөр {if (readvalue == 565) {lcd.clear (); lcd.print ("9");}

өөр {if (readvalue == 614) {lcd.clear (); lcd.print ("6");}

өөр {if (readvalue == 360) {lcd.clear (); lcd.print ("3");}

өөр {if (readvalue == 335) {lcd.clear (); lcd.print ("#");}

өөр {if (readvalue == 396) {lcd.clear (); lcd.print ("8");}

өөр {if (readvalue == 349) {lcd.clear (); lcd.print ("5");}

өөр {if (readvalue == 235) {lcd.clear (); lcd.print ("2");}

өөр {if (readvalue == 279) {lcd.clear (); lcd.print ("0");}

өөр {if (readvalue == 452) {lcd.clear (); lcd.print ("7");}

өөр {if (readvalue == 271) {lcd.clear (); lcd.print ("4");}

өөр {if (readvalue == 170) {lcd.clear (); lcd.print ("1");}

өөр {if (readvalue == 92) {lcd.clear (); lcd.print ("*");} өөр {}}}}}}}}}}}}}}}}

Алхам 4: Үнэт зүйлийг залруулах

Үнэт зүйлсийн залруулга
Үнэт зүйлсийн залруулга

Цуваа мониторыг нээхэд энэ нь 1023 гэсэн утгыг харуулна, хэрэв та товчлуур дарвал энэ нь танд дахин унших болно, та эдгээр утгыг аваад кодонд өөрчлөлт оруулах хэрэгтэй болно.

Алхам 5: Шүүмжлэл ба тоймын дараах төсөл

Шүүмжлэл ба тоймын дараах төсөл
Шүүмжлэл ба тоймын дараах төсөл

Бид бүгдээрээ мэдлэгээ сурч, хуваалцахаар ирсэн гэдэгт эргэлзэхгүй байна. Олон нийтийн зарим хүмүүсийн үлдээсэн зарим сэтгэгдлүүдийн ачаар би төсөлдөө зарим нэмэлт, өөрчлөлт оруулахаар шийдлээ.

Тоног төхөөрөмж:

Талхны тавцан дээр муу холболт үүсэхээс зайлсхийхийн тулд би бүх бүрэлдэхүүн хэсгүүдийг ПХБ -д гагнахаар шийдсэн.

Код:

Найз маань надад програм хангамжийг задлах програм ашиглахыг зөвлөсөн бөгөөд энэ нь програмыг уншихад хэсэг хугацаа зарцуулахын тулд зүгээр л нэг давталт (жишээ нь "for" давталт) хийх нь маш их уншсан (миний шалгалтанд 500) гэсэн үг боловч авах шаардлагатай гэсэн үг юм. зөвхөн сүүлчийнх.

for (i = 1; i <= 500; i ++) {// зөвхөн 500 дахь аналогийг авна

утга = analogRead (Button);} // энэ нь муу уншлагаас зайлсхийхийн тулд хэсэг хугацаа зарцуулахад тусална

Түүний ачаар өөр нэг найз надад "readvalue" -ийг нэг биш олон утгатай харьцуулахыг зөвлөсөн. 851 852, 853, 854, 855 тул босго (852), зүүн ба баруун гэсэн 3 утгын 7 утгын хүрээ юм. Энд бидний хийх ёстой зүйл бол "readvalue" ба "852" хоёрын зөрүүний үнэмлэхүй утгыг "3" -тай харьцуулах явдал юм.

if (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}

Алхам 6: Худалдах ажил хийсний дараа

Худалдах ажил хийсний дараа
Худалдах ажил хийсний дараа
Худалдах ажил хийсний дараа
Худалдах ажил хийсний дараа
Худалдах ажил хийсний дараа
Худалдах ажил хийсний дараа

Алхам 7: Үнэний мөч

Таны харж байгаагаар програм нь заримдаа товчлууруудыг төөрөгдүүлдэг боловч энэ нь ажилладаг хэвээр байгаа бөгөөд онолын хувьд хэлхээний хувьд ямар ч буруу зүйл байхгүй, гэхдээ кодыг илүү тохируулах шаардлагатай байна.

Алхам 8: Төгсгөл

Энэ төсөл танд таалагдсан гэж найдаж байна, та үүнийг хийхийг хичээдэг, магадгүй та надаас илүү сайн хийх болно.

Асуух зүйл байвал надаас асуугаарай, сэтгэгдлээ үлдээгээрэй, хэрэв танд таалагдаж байвал надад саналаа өгөхөө бүү мартаарай.

Зөвлөмж болгож буй: