Мазмұны:
- 1 -қадам: материалдар туралы есеп
- 2 -қадам: схемалық және циклит
- 3 -қадам: Кодекс
- 4 -қадам: Құндылықтарды түзету
- 5 -қадам: Сын мен шолудан кейінгі жоба
- 6 -қадам: Сатудан кейін
- 7 -қадам: Ақиқат сәті
- 8 -қадам: Соңы
Бейне: Бір түйреуіш 4 × 4 пернетақта: 10 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Мен пернетақтаны көрген сайын, ол көптеген түйреуіштермен бірге келеді, бұл сіздің Arduino түйреуіштеріңіздің үлкен шығыны, сондықтан біз бір ғана түйреуішпен пернетақтаны басқара аламыз ба?. Жауабы осында.
1 -қадам: материалдар туралы есеп
Жабдық:
01 Arduino UNO
02 Науалар тақтасы
01 СК I2C бар
16 Түймешіктерді басыңыз
04 резисторы 1,5 кОм
04 резисторлары 620 Ω
04 резисторлары 220 Ω
08 резисторы 100 Ω
01 резистор 1 кОм
07 Өтпелі сымдар
Бағдарламалық қамтамасыз ету:
Сіздің компьютеріңізге Arduino IDE орнатылған
2 -қадам: схемалық және циклит
Барлық идея бізде Жерге тігінен оң сыммен және көлденеңінен басқа сыммен (түйме сымы) және 1,5 кОм, 620Ω, 220Ω және 100Ω резисторлармен бекітілген 4*4 түймешіктерінің матрицасы бар. 4 жол схемада көрсетілгендей 100Ω төрт резистормен қосылады.
Сіз түймені басқан сайын тізбекті жабасыз және ток басқа жолдан және резисторлардың басқа тізбегінен өтеді, сондықтан A0 түйреуіші әр түйме үшін басқа аналогты оқиды. Сізге қажет нәрсе - кодтау.
3 -қадам: Кодекс
#қосу
#қосу
LiquidCrystal_I2C LCD (0x3f, 20, 4);
int батырмасы = A0;
int readvalue;
жарамсыз орнату ()
{
Serial.begin (9600);
lcd.begin ();
pinMode (Түйме, INPUT);
lcd.backlight ();
lcd.print («Сәлем әлемі»);
кешіктіру (2000);
lcd.clear ();
lcd.print («Бір істікшелі 4*4 пернетақта»);
кешіктіру (2000); }
бос цикл ()
{
readvalue = analogRead (Түйме);
Serial.println (оқу мәні);
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 -қадам: Сын мен шолудан кейінгі жоба
Біз барлығымыз өз білімімізді үйренуге және бөлісуге келгенімізге күмән жоқ, қоғамдастықтың кейбір адамдарының өте пайдалы пікірлерінің арқасында мен өз жобама кейбір түзетулер мен жетілдірулер енгізуді шештім:
Аппараттық құралдар:
Нан тақтасындағы нашар байланыс мәселесін болдырмау үшін мен барлық компоненттерді ПХД -да дәнекерлеуді шештім.
Код:
Менің досым маған бағдарламалық жасақтаманы жоюды қолдануға кеңес берді және бұл бағдарламаны оқуға біраз уақыт кетіру үшін цикл (мысалы, «for» циклы), бұл көп оқылымды білдіреді (менің емтиханымда 500), бірақ қажет тек соңғысы.
for (i = 1; i <= 500; i ++) {// тек 500 -ші аналогты оқуды алыңыз
value = analogRead (Button);} // бұл нашар оқудан аулақ болуға уақыт бөлуге көмектеседі
Оның арқасында басқа дос маған «оқу мәнін» мәндер диапазонымен салыстыруға кеңес берді, себебі «оқу мәні» бір батырманы басу үшін көп мәнді алады. «А» мысалы: 849, 850, 851 852, 853, 854, 855 сондықтан бұл 7 мәндер диапазоны: шекті мән (852) және 3 мән солға және оңға. мұнда біз не істеуіміз керек - «readvalue» мен «852» арасындағы айырмашылықтың абсолюттік мәнін «3» -ке салыстыру.
if (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print («A»);}
6 -қадам: Сатудан кейін
7 -қадам: Ақиқат сәті
Көріп отырғаныңыздай, бағдарлама кейде түймелерді шатастырады, бірақ ол әлі де жұмыс істейді, теориялық тұрғыда схемада қате жоқ, бірақ кодты калибрлеу қажет.
8 -қадам: Соңы
Сізге бұл жоба ұнады деп үміттенемін және сіз оны жасауға тырысасыз, мүмкін сіз маған қарағанда жақсы жасай аласыз.
Сұрақтарыңыз болса, сұраңыз, түсініктеме қалдырыңыз, егер сізге ұнаса, маған дауыс беруді ұмытпаңыз.
Ұсынылған:
Бір аналогты түйреуіш арқылы бірнеше аналогтық мәндерді қалай оқуға болады: 6 қадам (суреттермен)
Бір аналогтық түйреуіш арқылы бірнеше аналогтық мәндерді қалай оқу керек: Бұл оқулықта мен сізге тек бір аналогтық кіріс түйреуіші арқылы бірнеше аналогтық мәндерді қалай оқу керектігін көрсетемін
ETextile мультиметрлік түйреуіш зонд: 10 қадам (суреттермен)
ETextile мультиметрлік түйреуіш зонд: PIN зонд eTextile Swatchbook 2017 -де жарияланғандай, Pin Probe - мультиметр мен өткізгіш мата немесе жіп арасындағы байланыс үшін сынақ. Зонд тоқымалық материалдармен уақытша, бірақ қатты байланыс жасайтын түйреуіштен тұрады
UC бар өшіру ілмегінің тізбегі. Бір басу түймесі. Бір түйреуіш. Дискретті компонент: 5 қадам
UC бар өшіру ілмегінің тізбегі. Бір басу түймесі. Бір түйреуіш. Дискретті компонент. Барлығына сәлем, желіде қосу/өшіру схемасын іздедім. Мен тапқандардың бәрі мен іздегендей болмады. Мен өзіммен сөйлестім, бұған міндетті түрде жол бар. Бұл маған қажет болды. Қосу және өшіру үшін тек бір түйме.-Тек пайдалану керек
Анимациялық демалыстағы түйреуіш: 9 қадам (суреттермен)
Жарықтандырылған демалыс түйреуіші: Мен бұл жобаны бірінші рет жасаған кезде оны ашық түрде жариялаймын деп ойламадым. Мен бұл керемет идея деп ойладым және қолөнер көрмесінде сатуға болатын тауар ретінде коммерциялық әлеуетке ие болдым. Мүмкін, бұл тәжірибенің жетіспеушілігінен бе, мүмкін
Пернетақта интерфейсі 8051 және пернетақта нөмірлерін 7 сегментте көрсетеді: 4 қадам (суреттермен)
8051 бар пернетақта интерфейсі және 7 сегменттегі пернетақта нөмірлері: Бұл оқулықта мен 8051 пернетақтасын қалай интерфейске қосуға болатынын және 7 сегментті дисплейде пернетақта нөмірлерін көрсету туралы айтатын боламын