Мазмұны:
Бейне: Arduino басқатырғыштар қорабы: 7 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Бұл жоба үшін біз музыкамен жұмыс істейтін басқатырғыштар қорабын жасаймыз. Оның негізгі мәні - түймені басқанда, ол әуен шығарады, ал Arduino қай батырманың дұрыс, ненің бұрыс екенін білу үшін басылғанын есептейді.
Жабдықтар
1 x Arduino Uno
1 x 1k Ом резисторы
5х220 Ом резисторлар
1 xPiezo Buzzer
5 x 6x6 мм түймесі
1 x өтпелі сымдар
1 x перфорация/жолақ тақтасы
1 x дәнекерлеу жиынтығы
1 х ілмек
1 x қысқыш
1 x шағын жәшіктер/ағаш
1x ыстық желім пистолеті + желім таяқшалары
1 х 9в батарея + ұстағыш
аздап ворбла
бояу
1 -қадам:
Бастау үшін түйреуіштерді тақтаға басу керек. Енді 2 -аналогты тақтаның бұрышына сыммен қосыңыз. Біз оған екі резисторды желіге қосамыз. Біріншісі - 10 кОм резистор. Бұл резистордың екінші шетіне аналогты жерге сым қосамыз. Екінші резистор - біз бірінші түймені қосатын 220 Ом резистор. Түйменің екінші ашық жағын екінші түймені қосу үшін сол мәндегі басқа резисторды қолданыңыз. Бұл түймелерді соңғысына дейін жалғастыра беріңіз. Соңғысында сіз сымды алып, түйменің тиісті жабық жағына жалғап, келесіге кезекке қосасыз. Сіз резисторлармен жасаған процесті тек қарапайым сымдармен қайталайсыз. Бірінші түймені Arduino -дегі аналогтық 3, 3В портына қосыңыз. Тұтастай алғанда, сіз төменде көрсетілгендей кросс -атаны аласыз.
2 -қадам:
Келесі дыбыстық сигналды тақтаға қосыңыз және бір жағын цифрлық жерге, екінші жағын 12 портқа бекітіңіз. Келесі кодты Arduino -ға жүктеу өте ақылды, сондықтан сіз бәрі дұрыс жұмыс істейтінін тексере аласыз. Егер солай болса, сіз компоненттерді бірге дәнекерлеуге кірісе аласыз. Мұны оларды тақтадан шығарып, сымдар мен қосылыстарды тікелей дәнекерлеу арқылы жасаңыз. Егер сіз түймелер арасында көбірек ұзындық қажет деп ойласаңыз, резисторлардың арасына қосымша сым қосуға болады. Бұл кезде нан тақтасы қажет емес.
3 -қадам:
Барлығы дәнекерленгеннен кейін қораптың өзін жасау уақыты келді. Мен өзім үшін негіз ретінде арзан жәшіктер жиынтығын қолдандым. Мен жай ғана жартысын кесіп, артқы жағы мен кесілген жағын алып тастадым. Енді сізде с тәрізді екі бөлік болуы керек. Қақпақ ретінде пайдалану үшін олардың бір жағын кесіңіз. Енді қалған бөліктердің бірін қақпақсыз қорап сияқты бір -біріне сәйкес келетін етіп айналдырыңыз және оларды бір -біріне жабыстырыңыз. Желім дұрыс орнатылғаннан кейін, қораптың әр жағында түймелер үшін кішкене тесік бұраңыз, ал қақпақтағы дыбыстық сигнал үшін үлкенірек.
4 -қадам:
Енді сіз қорапты бояуға кірісе аласыз. Мен өзімді BOTW негізіндегі гүл дизайнымен жасадым, бірақ сіз қалаған дизайнды таңдай аласыз. Осыдан кейін сіз түймелерді тесіктердің ішіне қойып, түйменің артқы жағына және айналасындағы ағашқа глобус қоюға болады. Дәл сол қағидат дыбыстық сигналға қатысты, бірақ менікі тесікке өте жақсы сәйкес келеді, бұл оны қажетсіз етеді. Содан кейін сіз кішкене түймелер жасау үшін ворбланы алып, қыздырыңыз және кесіңіз. Оларды түймелерге мұқият жабыстырыңыз, бірақ көп желім қолданбаңыз, себебі кездейсоқ түймелер жабысып қалуы мүмкін. Енді оларды қораппен көбірек араластыру үшін бояуға болады.
5 -қадам:
Ақырында сіз екеуін байланыстыратын қорап пен қақпақтың қысқыштары мен ілмектерін желімдеңіз немесе бұраңыз.
6 -қадам:
Енді сіздің қорабыңыз аяқталғаннан кейін Arduino мен батареяны ішіне салып, қақпағын жабу жеткілікті.
7 -қадам: код
// Бұл Zelda тақырыптық басқатырғыш/музыка қорапшасының коды.
// бұл сіздің кодты басқа қойындыдағы жазбалар тізіміне қосады
#«қадамдар.h» қосыңыз
// бұл айнымалы мән Arduino түймені ұзақ басуды бір рет басу ретінде көретініне кепілдік береді
int same = 0;
// осы жерден ол сіздің кірісті оқиды
int k = 2;
// бұл сіздің шығыс түйреуішіңіз
int динамигі = 12;
// төменде соңғы әуендер
int Zelda = {NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A5, NOTE_G5, NOTE_D5, NOTE_C5, NOTE_B4, NOTE_A4;
int ZeldaTime = {2, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2};
int Epona = {NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_B4, NOTE_A4};
int EponaTime = {4, 4, 1.5, 4, 4, 1.5, 4, 4, 2, 2, 1};
int Saria = {NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_E5, NOTE_D5, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_E4;
int SariaTime = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};
// нотаның қалыпты ұзақтығы
int BEATTIME = 300;
// біз шешетін болсақ, бақылауға болатын есептегіш
int teller = 0;
жарамсыз орнату () {
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (1, INPUT);
}
void loop () {
// түйреуіштерден кірісті оқиды
k = analogRead (2);
int p = analogRead (1);
// егер қандай да бір түйме басылмаса, дыбыс болмауы керек
егер (хабаршы == 0) {
noTone (12);
}
// егер оқылатын деректер параметрлерге сәйкес келсе, кодтың сипатталған битін іске қосады
егер (k> 320 && k <350) {
rechts ();
}
//""
егер басқа (k 290) {
сілтемелер ();
}
//""
әйтпесе (k> 260 && k <280) {
boven ();
}
//""
әйтпесе (k> 240 && k <260) {
onder ();
}
//""
әйтпесе (k> 220 && k <240) {
а ();
}
// егер ол орындалмаса (ешқандай түйме басылмаса), осы кодты іске қосыңыз
басқа {
// бастапқы қалпына келтіру, сондықтан оны келесі түйме басылғанда қолдануға болады
бірдей = 0;
// егер есептегіш белгілі бір санға дейін болса, кодтың сипатталған битін іске қосыңыз
егер (хабаршы == 166) {
зельда ();
}
//""
әйтпесе (теллер == 386) {
сария ();
}
//""
әйтпесе (теллер == 266) {
эпона ();
}
//""
әйтпесе (теллер == 999) {
// қатені белгілеу үшін осы тонды ойнаңыз
үн (динамик, NOTE_C3, BEATTIME);
// есептегішті 0 қалпына келтіріңіз
кассир = 0;
}
}
// кіріс пен шығыс арасындағы кідіріс
кешіктіру (100);
// сериялық монитордағы енгізу мәндерін басып шығарады
Serial.println (k);
}
// бұл бірінші әуен
жарамсыз zelda () {
// бұл әуенді ойнату кезінде өзін жаңартатын есептегішті орнатады, ол оны оқи алады және қажет болғанда тоқтайды
for (int i = 0; i <sizeof (Zelda); i ++) {
// нота қанша уақытқа созылуы керектігін айтады
int ZTime = 1000 / ZeldaTime ;
// үндерді шығарады
тон (спикер, Zelda , ZTime);
// дұрыс кідірісті жасайды
int pause = ZTime * 1.30;
кідіріс (үзіліс);
// есептегішті қалпына келтіреді
кассир = 0;
// сериялық монитордағы енгізу мәндерін басып шығарады
Serial.println (теллер);
}
}
//""
жарамсыз эпона () {
for (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
үн (динамик, Epona , ETime);
int pause = ETime * 1.30;
кідіріс (үзіліс);
кассир = 0;
Serial.println (теллер);
}
}
//""
жарамсыз сария () {
for (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
тон (спикер, Сариа , STime);
int pause = STime * 1.30;
кідіріс (үзіліс);
кассир = 0;
Serial.println (теллер);
}
}
жарамсыз рек
hts () {
// егер бұл әлі басылмаған болса
егер (бірдей == 0) {
// егер санауышта осы мәндердің біреуі болса, оны қосыңыз
егер (кассир == 0 || айтушы == 132 || айтушы == 165 || айтушы == 232 || айтушы == 265 || телбер == 331 || телбер == 374) {
кассир = кассир + 1;
}
// әйтпесе оны 999 етіп орнатыңыз, сонда сіз қате шу естисіз
басқа {
кассир = 999;
}
// біреуін бірдей етіп орнатыңыз, сондықтан Arduino ұзақ басуды бірнеше басу ретінде оқымайды
бірдей = 1;
}
// тонды ойнаңыз
басқа {
үн (динамик, NOTE_A4, BEATTIME);
}
// сериялық монитордағы енгізу мәндерін басып шығарады
Serial.println (теллер); }
//""
бос сілтемелер () {
егер (бірдей == 0) {
егер (баяндамашы == 133 || айтушы == 254 || айтушы == 244 || айтушы == 332 || айтушы == 375 || теллер == 221) {
кассир = кассир + 11;
}
әйтпесе (хабаршы == 0) {
кассир = 111;
}
басқа {
кассир = 999;
}
бірдей = 1;
} басқа {
үн (динамик, NOTE_B4, BEATTIME);
} Serial.println (теллер);
}
//""
void boven () {
if (бірдей == 0) {if (айтушы == 111 || айтушы == 144 || айтушы == 233) {
кассир = кассир + 21;
}
әйтпесе (хабаршы == 0) {
кассир = 221;
}
басқа {
кассир = 999;
}
бірдей = 1;
}
басқа {
үн (динамик, NOTE_D5, BEATTIME);
Serial.println (теллер);
}
}
//""
жарамсыз () {
егер (бірдей == 0) {
егер (хабаршы == 343) {
кассир = кассир + 31;
}
әйтпесе (хабаршы == 0) {
кассир = 331;
} басқа {
кассир = 999;
} бірдей = 1;
} басқа {
үн (динамик, NOTE_F4, BEATTIME);
Serial.println (теллер);
}
}
//""
жарамсыз a () {
егер (бірдей == 0) {
егер (хабаршы == 0) {
кассир = 461;
}
басқа {
кассир = 999;
}
бірдей = 1;
}
үн (динамик, NOTE_D4, BEATTIME);
Serial.println (теллер);
}
Ұсынылған:
Код ойынын бұзу, Arduino негізіндегі басқатырғыштар қорабы: 4 қадам (суреттермен)
Код ойынын бұзу, Arduino негізіндегі жұмбақ қорабы: Бұл нұсқаулықта мен сізге сейфке кездейсоқ жасалған кодты табу үшін айналмалы кодтағышты қолданатын код ойынын қалай құруға болатынын көрсетемін. Сейфтің алдыңғы жағында 8 жарықдиодты шамдар бар, олар сізге қанша
Arduino бар ұсыныс қорабы: 6 қадам
Ардуиноның ұсыныс қорабы: Бұл нұсқаулықта мен сізге Arduino Uno -мен үйлену туралы қарапайым жәшікті қалай жасау керектігін көрсетемін. Бұл электроника/Arduino жобаларына қызығушылық танытатын адамға ұсыныс жасаудың тамаша тәсілі болады. Бұл жоба Youtube бейнеден алынған
Баланс қорабы ойыны - Arduino Powered: 4 қадам (суреттермен)
Баланс қорапшасы ойыны - Arduino Powered: Таразылық ойын қиындықтар үшін жасалды, ол қиындықты жеңу үшін кедергілер арқылы немесе белгіленген қашықтықта өтуі керек. орнатыңыз және орнатылған бұрыштан кейін дабылды іске қосыңыз
Arduino Blooming сыйлықтар қорабы: 4 қадам
Arduino Blooming сыйлық қорабы: Авторы: 9B J05118 Shayna Faul 傅思萱 Бұл Arduino жобасы сізге гүлденетін сыйлық қорапшасын қалай жасау керектігін көрсетеді. Қораптағы гүл жапырақтары түйме басылған кезде сыйлықты ашу үшін ашылады. және RGB светодиоды міндетті түрде жанады
Барби қорабы: Mp3 ойнатқышы үшін камуфляждалған қап/ бум қорабы: 4 қадам (суреттермен)
Барби қорабы: Mp3 ойнатқышы үшін камуфляждалған қап/ бум қорабы: Бұл сіздің mp3 ойнатқышқа арналған қапталған қорғаныш қапшық, ол құлаққап ұясын ширек дюймге түрлендіреді, коммутатордың бумында қорап ретінде әрекет ете алады. сіздің mp3 ойнатқышты тоқсаныншы жылдардың басындағы таспа ойнатқышы немесе соған ұқсас төмен ұрлық ретінде жасырады