Turinys:

Žetonų pranešimo sistema: 5 žingsniai
Žetonų pranešimo sistema: 5 žingsniai

Video: Žetonų pranešimo sistema: 5 žingsniai

Video: Žetonų pranešimo sistema: 5 žingsniai
Video: ⚡ Купить или забить? 🤔 Ищем достоинства и показываем недостатки в Opel Insignia. 2024, Lapkritis
Anonim
Žetonų pranešimo sistema
Žetonų pranešimo sistema

Ankstesnėje instrukcijoje matėme, kaip priversti „Arduino“kalbėti. Šiandien mes panagrinėsime šiek tiek daugiau ta pačia tema. Mes visi tam tikru gyvenimo momentu turėjome susidurti su pranešimų sistema, galbūt banke ar traukinių stotyje. Ar kada susimąstėte, kaip veikia tos skelbimų sistemos? Na, jie veikia panašiu principu, kaip ir mūsų paskutinis projektas. Taigi šiandien šioje pamokoje mes sukursime žetonų paskelbimo sistemą, galinčią paskelbti žetonus nuo 1 iki 999, ty iš viso 999 žetonų (1000, jei įtraukiate 0). Taigi pereikime prie statybos proceso !!!

1 žingsnis: Surinkite reikmenis

Surinkite reikmenis
Surinkite reikmenis
Surinkite reikmenis
Surinkite reikmenis
Surinkite reikmenis
Surinkite reikmenis

Sveiki, jei ieškote internetinės parduotuvės, kur galėtumėte įsigyti komponentų, tada UTSource.net yra svetainė, kurią turite patikrinti. Jie turi daugybę elektronikos modulių ir komponentų už prieinamą kainą. Jie taip pat teikia PCB paslaugas iki 16 sluoksnių. Patikrinkite jų svetainę.

Pažvelkime į modulius, kurių mums reikia šiam projektui -

1. „Arduino Uno“lenta

2. 4 * 4 matricos klaviatūra

3. SD kortelės modulis

4. 3,5 mm garso lizdas

5. Garsiakalbis su įmontuotu stiprintuvu ir AUX laidu

6. Kai kurie antraštiniai laidai

Dauguma šių komponentų buvo naudojami ankstesniuose projektuose.

2 žingsnis: grandinės schema

Grandinės schema
Grandinės schema

Šio projekto schema yra visiškai tokia pati kaip ir „Talking Arduino“projekte. Vienintelis skirtumas yra klaviatūra. Sąsaja su klaviatūra yra gana paprasta. Tiesiog prijunkite klaviatūros eilutes prie „Arduino“kaiščių, kaip parodyta aukščiau.

(Jų klaviatūra, kurią naudoju šiame projekte, nėra tokia pati kaip grandinėje, nes neradau tinkamo Fritzingo dalių sąraše. Taigi ignoruokite pirmąjį ir paskutinį grandinės klaviatūros kaiščius.)

Prijunkite kairįjį ir dešinįjį garso lizdo kanalą prie skaitmeninio „Arduino“kaiščio 10. Ir įžeminimo kaištis prie Arduino žemės.

Sekite schemą, kad atliktumėte likusius sujungimus.

3 žingsnis: Garso failų paruošimas

Garso failų paruošimas
Garso failų paruošimas
Garso failų paruošimas
Garso failų paruošimas

Dabar turėkite tai omenyje, kad naudodami SD kortelės modulį ir TMRpcm biblioteką galite naudoti tik.wav garso formatą. Joks kitas garso formatas neveiks.

Taigi, norėdami konvertuoti savo įrašytus garso failus arba failus, kuriuos ketinate įdiegti į SD kortelę, turite naudoti šį internetinį garso keitiklį >> Spustelėkite čia

Išlaikykite konversijos nustatymus, kaip parodyta aukščiau esančiame paveikslėlyje.

Ir jei norite šaunių skaitmeninių balsų, kuriuos girdime tikrose sistemose, patikrinkite šią svetainę, kurioje parašytas tekstas paverčiamas kalba. Ir tada mes galime jį atsisiųsti mp3 formatu, kurį iš aukščiau paminėtos svetainės galima konvertuoti į.wav formatą.

Norėdami aplankyti svetainę, spustelėkite čia

Taip pat galite atsisiųsti garso failus, kuriuos naudoju iš apačios. Taigi, kai buvo padaryta laiko programuoti lentą.

4 žingsnis: kodavimas

Kodavimas
Kodavimas

Atsisiųskite.ino failą iš apačios. Sudarykite ir įkelkite programą į „Arduino“lentą. Jei įkeliant kodą kyla problemų, nedvejodami susisiekite su manimi arba palikite komentarą žemiau. Aš mielai jums padėčiau.

#include #include "SD.h" #define SD_ChipSelectPin 4 #include "TMRpcm.h" #include "SPI.h" TMRpcm tmrpcm; char myNum [4]; int i; const baitas ROWS = 4; // keturios eilutės const baitas COLS = 4; // keturių stulpelių simbolių klavišai [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; baitų rowPins [ROWS] = {A0, A1, A2, A3}; // prisijungti prie klaviatūros eilučių baitų colPins [COLS] = {9, 8, 7, 6}; // prisijungti prie klaviatūros stulpelių kontaktų Klaviatūros klaviatūra = klaviatūra (makeKeymap (klavišai), rowPins, colPins, ROWS, COLS); void setup () {tmrpcm.speakerPin = 10; Serial.begin (9600); if (! SD.begin (SD_ChipSelectPin)) {Serial.println ("SD fail"); grįžti; } /* tmrpcm.setVolume (5); tmrpcm.play ("trys.wav"); // Naudojamas bandymams (neįtraukti į galutinį kodą) uždelsimas (1000);*/} void loop () {Serial.println ("Įveskite trijų skaitmenų skaičių -"); (i = 0; i <4; ++ i) {while ((myNum = keypad.getKey ()) == NO_KEY) {delay (1); // Tiesiog laukti rakto} // Palaukite, kol raktas bus paleistas, kol (keypad.getKey ()! = NO_KEY) {delay (1); } Serijinis atspaudas (myNum ); } if (myNum [3] == 'A') {Serial.println ("Žetonas išsiųstas"); tmrpcm.setVolume (5); tmrpcm.play ("tokenno.wav"); vėlavimas (2000 m.); patikrinti(); } if (myNum [3] == 'B') {Serial.println ("Žetonas nesiųstas"); i = 0; } if (myNum [3] == '*') {Serial.println ("Reg desk"); tmrpcm.setVolume (5); tmrpcm.play ("star.wav"); i = 0; } if (myNum [3] == '#') {Serial.println ("uždarymas"); 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 ("nulis.wav"); vėlavimas (1000); } if (myNum [c] == '1') {tmrpcm.setVolume (5); tmrpcm.play ("one.wav"); vėlavimas (1000); } if (myNum [c] == '2') {tmrpcm.setVolume (5); tmrpcm.play ("du.wav"); vėlavimas (1000); } if (myNum [c] == '3') {tmrpcm.setVolume (5); tmrpcm.play ("trys.wav"); vėlavimas (1000); } if (myNum [c] == '4') {tmrpcm.setVolume (5); tmrpcm.play ("four.wav"); vėlavimas (1000); } if (myNum [c] == '5') {tmrpcm.setVolume (5); tmrpcm.play ("penki.wav"); vėlavimas (1000); } if (myNum [c] == '6') {tmrpcm.setVolume (5); tmrpcm.play ("six.wav"); vėlavimas (1000); } if (myNum [c] == '7') {tmrpcm.setVolume (5); tmrpcm.play ("septyni.wav"); vėlavimas (1000); } if (myNum [c] == '8') {tmrpcm.setVolume (5); tmrpcm.play ("aštuoni. wav"); vėlavimas (1000); } if (myNum [c] == '9') {tmrpcm.setVolume (5); tmrpcm.play ("devyni.wav"); vėlavimas (1000); }} tmrpcm.setTomas (5); tmrpcm.play ("star.wav"); }

Jei pakeisite garso failų pavadinimus, būtinai juos taip pat redaguokite kodu. Kai tai bus padaryta, jūsų projektas bus paruoštas išbandyti. Pažiūrėkime, kaip tai veikia.

5 žingsnis: Projekto darbas

Projekto veikimas
Projekto veikimas

Žemiau įkėliau projekto vaizdo įrašą. Galite tai patikrinti. Projektas atitiko mano lūkesčius. Vienintelis apribojimas, su kuriuo susidūriau, buvo tai, kad projektui nebuvo rodomas atskiras ekranas. Negalime nuolat palaikyti prijungto nešiojamojo kompiuterio. Kitas atvejis, jei visą dieną dirbate su nešiojamuoju kompiuteriu ir turite daug USB prievadų.

Taigi noriu, kad jūs, vaikinai, pridėtumėte lcd (bet kas tinka) prie šio projekto ir atsiųstumėte man to projekto nuorodą.

Šis projektas gali būti naudojamas jūsų biuruose registratūroje, jei kasdien lankosi daug žmonių.

Pridėjus atskirą maitinimo šaltinį ir LCD, šis projektas taps savarankiškas. Šią užduotį patikiu jums, vaikinai.

Jei jums patinka mano darbas, padėkite man, pasidalydami savo projektais savo socialinės žiniasklaidos rankenose. Kol kas tiek. Iki greito susitikimo su kitu projektu.

Rekomenduojamas: