Mundarija:

Token e'lon qilish tizimi: 5 qadam
Token e'lon qilish tizimi: 5 qadam

Video: Token e'lon qilish tizimi: 5 qadam

Video: Token e'lon qilish tizimi: 5 qadam
Video: Java Tech Talk: Telegram бот на java за 1 час 2024, Iyul
Anonim
Token e'lon qilish tizimi
Token e'lon qilish tizimi

Oldingi yo'riqnomada biz Arduino -ni qanday gapirishni o'rgandik. Bugun biz xuddi shu mavzuda biroz ko'proq o'rganamiz. Hammamiz hayotning biron bir vaqtida bank yoki temir yo'l stantsiyasida e'lonlar tizimiga duch kelganmiz. Siz bu e'lon tizimlari qanday ishlashini hech o'ylab ko'rganmisiz? Xo'sh, ular bizning oxirgi loyihamizga o'xshash printsip asosida ishlaydi. Shunday qilib, bugun biz ushbu darslikda biz 1 dan 999 gacha tokenlarni, ya'ni jami 999 tokenni (agar siz 0 qo'shsangiz, 1000) e'lon qila oladigan Token E'lonlar tizimini yaratamiz. Shunday qilib, qurilish jarayoniga o'tamiz !!!

1 -qadam: materiallarni yig'ing

Ta'minotlarni yig'ing
Ta'minotlarni yig'ing
Ta'minotlarni yig'ing
Ta'minotlarni yig'ing
Ta'minotlarni yig'ing
Ta'minotlarni yig'ing

Hey, agar siz tarkibiy qismlarni sotib olish uchun onlayn -do'konni qidirmoqchi bo'lsangiz, UTSource.net saytini tekshirishingiz kerak. Ularda elektronika modullari va komponentlarining keng assortimenti arzon narxlarda mavjud. Ular, shuningdek, 16 tagacha qatlam uchun PCB xizmatlarini taqdim etadi. Ularning veb -saytini tekshiring.

Keling, ushbu loyiha uchun kerak bo'lgan modullarni ko'rib chiqaylik -

1. Arduino Uno boshqaruv paneli

2. 4 * 4 matritsali klaviatura

3. SD -karta moduli

4. 3,5 mm audio jak

5. O'rnatilgan kuchaytirgich va AUX kabeli bo'lgan dinamik

6. Ba'zi sarlavhali simlar

Bu komponentlarning aksariyati avvalgi loyihalarimizda ishlatilgan.

2 -qadam: O'chirish diagrammasi

O'chirish diagrammasi
O'chirish diagrammasi

Ushbu loyihaning elektron sxemasi Talking Arduino loyihasidagi bilan bir xil. Yagona farq - bu klaviatura. Klaviatura bilan aloqa o'rnatish juda oddiy. Yuqorida ko'rsatilganidek, klaviatura qatorlarini Arduino pinlariga ulang.

(Men bu loyihada ishlatgan klaviatura sxemadagi kabi emas, chunki men Fritzingning qismlar ro'yxatidan to'g'ri topa olmadim. Shunday qilib, elektron klaviaturaning birinchi va oxirgi pinlariga e'tibor bermang.)

Audio Jekning chap va o'ng kanalini Arduino 10 raqamli piniga ulang. Va erni Arduino erga bog'lab qo'ydi.

Qolgan ulanishlarni bajarish uchun diagramaga amal qiling.

3 -qadam: audio fayllarni tayyorlash

Audio fayllarni tayyorlash
Audio fayllarni tayyorlash
Audio fayllarni tayyorlash
Audio fayllarni tayyorlash

Endi shuni yodda tutish kerakki, SD -karta moduli va TMRpcm kutubxonasidan foydalanganda faqat.wav audio formatidan foydalanish mumkin. Boshqa audio format ishlamaydi.

Shunday qilib, yozilgan audio fayllarni yoki SD -kartaga o'rnatmoqchi bo'lgan fayllarni aylantirish uchun siz ushbu onlayn audio konvertoridan foydalanishingiz kerak >> BU YERGA BOSING.

Yuqoridagi rasmda ko'rsatilgandek konvertatsiya qilish sozlamalarini saqlang.

Agar siz haqiqiy tizimlarda biz eshitadigan ajoyib raqamli ovozlarni xohlasangiz, yozma matnni nutqqa aylantiradigan ushbu veb -saytni tekshiring. Va keyin biz uni mp3 formatida yuklab olishimiz mumkin, keyin uni yuqorida ko'rsatilgan saytdan.wav formatiga o'tkazish mumkin.

Saytga tashrif buyurish uchun shu erni bosing

Siz men ishlatgan audio fayllarni pastdan yuklab olishingiz mumkin. Shunday qilib, boshqaruv kengashini dasturlash vaqti keldi.

4 -qadam: kodlash

Kodlash
Kodlash

. Ino faylini pastdan yuklab oling. Dasturni tuzing va Arduino kartangizga yuklang. Agar siz kodni yuklashda muammoga duch kelsangiz, men bilan bog'laning yoki pastda izoh qoldiring. Men sizga yordam berishdan xursand bo'lardim.

#include #include "SD.h" #deinine SD_ChipSelectPin 4 #include "TMRpcm.h" #include "SPI.h" TMRpcm tmrpcm; char myNum [4]; int i; const bayt ROWS = 4; // to'rt qatorli const bayt COLS = 4; // to'rtta ustunli char tugmalari [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; bayt rowPins [ROWS] = {A0, A1, A2, A3}; // klaviatura baytlari colPins [COLS] = {9, 8, 7, 6}; // klaviaturaning ustunli pinoutlariga ulanish Klaviatura klaviaturasi = Klaviatura (makeKeymap (tugmalar), rowPins, colPins, ROWS, COLS); void setup () {tmrpcm.speakerPin = 10; Serial.begin (9600); agar (! SD.begin (SD_ChipSelectPin)) {Serial.println ("SD ishlamayapti"); qaytish; } /* tmrpcm.setVolume (5); tmrpcm.play ("three.wav"); // Sinov uchun ishlatiladi (Oxirgi kodga kiritmang) kechiktirish (1000);*/} void loop () {Serial.println ("Uch xonali raqamni kiriting -"); for (i = 0; i <4; ++ i) {while ((myNum = keypad.getKey ()) == NO_KEY) {kechiktirish (1); // Faqat kalitni kuting} // Kalit bo'shatilguncha kuting (keypad.getKey ()! = NO_KEY) {delay (1); } Serial.print (myNum ); } if (myNum [3] == 'A') {Serial.println ("Token yuborilgan"); tmrpcm.setVolume (5); tmrpcm.play ("tokenno.wav"); kechikish (2000); tekshirish (); } if (myNum [3] == 'B') {Serial.println ("Token yuborilmadi"); i = 0; } agar (myNum [3] == '*') {Serial.println ("Reg desk"); tmrpcm.setVolume (5); tmrpcm.play ("star.wav"); i = 0; } agar (myNum [3] == '#') {Serial.println ("yopilish"); tmrpcm.setVolume (5); tmrpcm.play ("hash.wav"); i = 0; } if (myNum [3] == 'D') {Serial.println ("Sub"); tmrpcm.setVolume (5); tmrpcm.play ("D.wav"); i = 0; }} void check () {for (int c = 0; c <3; c ++) {if (myNum [c] == '0') {tmrpcm.setVolume (5); tmrpcm.play ("zero.wav"); kechikish (1000); } agar (myNum [c] == '1') {tmrpcm.setVolume (5); tmrpcm.play ("one.wav"); kechikish (1000); } agar (myNum [c] == '2') {tmrpcm.setVolume (5); tmrpcm.play ("two.wav"); kechikish (1000); } agar (myNum [c] == '3') {tmrpcm.setVolume (5); tmrpcm.play ("three.wav"); kechikish (1000); } agar (myNum [c] == '4') {tmrpcm.setVolume (5); tmrpcm.play ("four.wav"); kechikish (1000); } agar (myNum [c] == '5') {tmrpcm.setVolume (5); tmrpcm.play ("five.wav"); kechikish (1000); } agar (myNum [c] == '6') {tmrpcm.setVolume (5); tmrpcm.play ("six.wav"); kechikish (1000); } agar (myNum [c] == '7') {tmrpcm.setVolume (5); tmrpcm.play ("seven.wav"); kechikish (1000); } agar (myNum [c] == '8') {tmrpcm.setVolume (5); tmrpcm.play ("sakkizta to'lqin"); kechikish (1000); } agar (myNum [c] == '9') {tmrpcm.setVolume (5); tmrpcm.play ("nine.wav"); kechikish (1000); }} tmrpcm.setVolume (5); tmrpcm.play ("star.wav"); }

Agar siz audio fayllarning nomlarini o'zgartirsangiz, ularni kodda tahrir qilganingizga ishonch hosil qiling. Shunday qilib, sizning loyihangiz sinovdan o'tishga tayyor. Keling, qanday ishlashini ko'rib chiqaylik.

5 -qadam: Loyihaning ishlashi

Loyihaning ishlashi
Loyihaning ishlashi

Men quyida loyihaning videosini yukladim. Buni tekshirib ko'rishingiz mumkin. Loyiha men kutganimdek ishladi. Men duch kelgan yagona cheklov - bu loyiha uchun alohida displeyning yo'qligi. Biz noutbukni doimo ulab tura olmaymiz. Boshqa holat, agar siz kun bo'yi noutbukda ishlasangiz va ko'plab USB portlar mavjud bo'lsa.

Shunday qilib, men sizlardan ushbu loyihaga lcd (har kim qiladigan) qo'shishingizni va menga ushbu loyihaning havolasini yuborishingizni xohlayman.

Agar siz har kuni tashrif buyuradigan odamlar ko'p bo'lsa, ushbu loyihani sizning ofislaringizda qabulxonalarda ishlatishingiz mumkin.

Alohida quvvat manbai va LCD ni qo'shish ushbu loyihani yakka o'zi qiladi. Bolalar, men bu vazifani sizga ishonib topshiraman.

Agar siz mening ishimni yoqtirsangiz, o'z loyihalaringizni ijtimoiy tarmoqlar orqali almashish orqali menga yordam bering. Hozircha shunday. Tez orada yana bir loyiha bilan ko'rishguncha.

Tavsiya: