विषयसूची:

ज्यूकबॉक्स + अरुडिनो: 5 कदम
ज्यूकबॉक्स + अरुडिनो: 5 कदम

वीडियो: ज्यूकबॉक्स + अरुडिनो: 5 कदम

वीडियो: ज्यूकबॉक्स + अरुडिनो: 5 कदम
वीडियो: [ 5 STEPS ] OLED Display NOT Working | Fixed Error | Errors Solved | 128*64 i2c 0.96" | Arduino. 2024, जुलाई
Anonim
ज्यूकबॉक्स + अरुडिनो
ज्यूकबॉक्स + अरुडिनो

एस्टे प्रोयेक्टो कंसिस्टियो एन क्रेयर उना रोकोला डिजिटल ए ट्रैवेस डी उना प्रोग्रामैसिओन डे अरुडिनो। सु समारोह एस मुय सिंपल वाई नो एस मुय डिफिसिल डे क्रेयर। ला रोकोला टिएन मोचस फंकियोन्स इंटरसेंटेस, वाई उना डे एलास एस क्यू ए ट्रैवेस डी उना पेंटाला एलसीडी से म्यूस्ट्रा एल नोम्ब्रे डे ला कैन्सियन क्यू से एस्टा रिप्रोड्यूसिएन्डो, वाई क्यू पैरा कैडा कैन्सियन से म्यूस्ट्रा अन कलर डिस्टिन्टो ए ट्रैवेस डी अन एलईडी आरजीबी। असी मिस्मो, ए ट्रैवेस डे डॉस पल्साडोरेस पुएडेस कैंबियार डी कैन्सियन (डी इज़क्विएर्डा ए डेरेचा ओ वाइसवर्सा)। एक्वी ते मोरारे पासो ए पासो एन कोमो क्रीअर उनो डे उना फॉर्मा सेन्सिला वाई क्रिएटिवा।

चरण 1: कोमो फनसिओना?

चरण 2: सर्किटो आर्मडो वाई सस मटेरियल्स

सर्किटो आर्मडो वाई सस मटेरियल्स
सर्किटो आर्मडो वाई सस मटेरियल्स

Es necesario que Tengas estos materiales para hacer que tu Rocola funcione!

- अरुडिनो यूएनओ

- पेंटाला एलसीडी 16x2 + इंटरफैज़ I2C

- प्रोटोबार्ड + मिनी प्रोटोबार्ड

- एलईडी आरजीबी

- निष्क्रिय बजर

- जंपर्स पैरा प्रोटोबार्ड

- 2 पल्साडोरेस इलेक्ट्रिकोस

- काजा पैरा एल सर्किटो

चरण 3: आरेख एस्क्वेमेटिको डेल सर्किटो इलेक्ट्रॉनिको

आरेख एस्क्वेमेटिको डेल सर्किटो इलेक्ट्रॉनिको
आरेख एस्क्वेमेटिको डेल सर्किटो इलेक्ट्रॉनिको

चरण 4: Técnicas Para La Construccion De La Lámpara

कोमो ते कॉमेंटबा, एल क्रेयर उन रोकोला नो एस टैन डिफिसिल कोमो अपरेंटा। एक्वी ते डेयर उन टैक्निकस क्यू ते सेरान स्टिल्स पैरा पोडर हैसर क्यू टू रोकोला फंकियोन।

- एस नेसेसरियो क्यू कॉन्सिगास कैडा मटेरियल क्यू से मुएस्ट्रा एन "स्टेप 2"

- एस नेसेसरियो क्यू टेंगस अन "अर्डुइनो यूएनओ", अल इगुअल क्यू ला एप्लिकेसिओन पैरा पोडर हैसर क्यू ला प्रोग्रामसियोन फंकियोन।

- Crea el circuito físico el cual te muestro en "Step 2"।

- लुएगो डे टेनर टूडू आर्मडो कॉपिया ला प्रोग्रामैसिओन एल कुअल ते मोस्ट्रारे एन एल अल्टिमो पासो।

- अल्टिमो, यूएसए टू क्रिएटिवैड और कॉन्सिग्यू एल्गो क्यू टेंगास एन टू कासा पैरा पोडर हैसर ला मेजर रोकोला डे तू विदा वाई नो ते ओलवाइड्स एन डेकोरला ए टू क्राइटेरियो।

चरण 5: कोडिगो डी ला रोकोला

// क्रेडो पोर: जॉर्ज अरागोन

// इनक्लूयर लाइब्रेरियास पैरा ला पेंटाला एलसीडी कॉन इंटरफैज़ I2C #include #include LiquidCrystal_I2C LCD (0x27, 16, 2); कॉन्स्ट इंट बजर = 11; इंट कोंटाडोर = 0; इंट आर = 6; इंट जी = 9; इंट बी = 10; इंट सुबीर; इंट बाजार; ////////////////////////////MELODIAS/////////////////// ///////////#डिफाइन नोट_बी0 31 #डिफाइन नोट_सी1 33 #डिफाइन नोट_सीएस1 35 #डिफाइन नोट_डी1 37 #डिफाइन नोट_डीएस1 39 #डिफाइन नोट_ई1 41 #डिफाइन नोट_एफ1 44 # डिफाइन नोट_एफएस1 46 #डिफाइन नोट_जी1 49 # डिफाइन नोट_जीएस1 ५२ #डिफाइन नोट_ए१ ५५ #डिफाइन नोट_एएस१ ५८ #डिफाइन नोट_बी१ ६२ #डिफाइन नोट_सी२ ६५ #डिफाइन नोट_सीएस२ ६९ #डिफाइन नोट_डी२ ७३ # डिफाइन नोट_डीएस२ ७८ # डिफाइन नोट_ई२ ८२ #डिफाइन नोट_एफ२ ८७ # डिफाइन नोट_एफएस२ ९३ # डिफाइन नोट_जी२ ९८ # डिफाइन नोट_जी२ ९८ नोट_ए2 110 को परिभाषित करें # नोट_एएस2 117 को परिभाषित करें नोट_बी2 123 को परिभाषित करें नोट_सी3 131 को परिभाषित करें नोट_सीएस3 139 को परिभाषित करें। 220 #डिफाइन नोट_एएस3 233 #डिफाइन नोट_बी3 247 #डिफाइन नोट_सी4 262 #डिफाइन नोट_सीएस4 277 #डिफाइन नोट_डी4 294 #डिफाइन नोट_डीएस4 311 # डिफाइन नोट_ई4 330 # डिफाइन नोट_एफ 4 349 # डिफाइन नोट_एफएस4 370 # डिफाइन नोट_जी 4 392 # डिफाइन नोट_जीएस4 ए4 440 #डिफाइन नोट_एएस4 466 #डिफाइन नोट_बी4 494 #डिफाइन नोट_सी5 523 #डिफाइन नोट_सीएस5 554 #डिफाइन नोट_डी5 587 #डिफाइन नोट_डीएस5 622 #डिफाइन नोट_ई5 659 #डिफाइन नोट_एफ 5 698 # डिफाइन नोट_एफएस5 740 # डिफाइन नोट_ए 5 780 # डिफाइन नोट_ए 5 780 #डिफाइन नोट_एएस5 932 #डिफाइन नोट_बी5 988 #डिफाइन नोट_सी6 1047 #डिफाइन नोट_सीएस6 1109 #डिफाइन नोट_डी6 1175 #डिफाइन नोट_डीएस6 1245 # डिफाइन नोट_ई 6 1319 # डिफाइन नोट_एफ 6 1397 # डिफाइन नोट_एफएस6 1480 # डिफाइन नोट_जी 6 1568 # डिफाइन नोट_जीएस 6 Note_AS6 1865 #define note_B6 1976 #define note_C7 2093 #define note_CS7 2217 #define note_D7 2349 #definenote_DS7 2489 #define note_E7 2637 #define note_F7 2794 #define note_FS7 2960 #define note_G7 3136 #define note_GS7 3729 #define note_GS7 3322 #define note_GS7 3322 #define note_GS7 3322 #definenote_GS7 3322 #डिफाइन नोट_बी७ ३९५१ #डिफाइन नोट_सी८ ४१८६ #डिफाइन नोट_सीएस८ ४४३५ #डिफाइन नोट_डी८ ४६९९ #डिफाइन नोट_डीएस८ ४९७८ #डिफाइन रेस्ट ० ////////////////////// विंड वेकर थीम ////////////////////////// int WindWaker_melody1 = {नोट_ए5, 4, नोट_ए5, 8, नोट_ए5, 4, नोट_डी6, 8, नोट_एफ6, 4, नोट_ई6, 8, नोट_डी6, 4, नोट_सी6, 8, नोट_डी6, 4, नोट_बी5, 8, नोट_जी5, 4, नोट_सी6, 8, नोट_ए5, 8, नोट_डी6, 8, नोट_बी5, 8, नोट_सी6, 4, नोट_ए5, 8, नोट_जी5, 4, नोट_डी6, 8, नोट_बी5, 4, नोट_सी6, 8, नोट_डी6, 4, नोट_ई6, 8, नोट_एफ6, 8, नोट_डी6, 8, नोट_ई6, 8, नोट_ए5, 4, नोट_ए5, 8, नोट_ए5, 4, नोट_डी6, 8, नोट_एफ6, 4, नोट_ई6, 8, नोट_डी6, 4, नोट_सी6, 8, नोट_डी6, 4, नोट_बी5, 8, नोट_जी5, 4, नोट_सी6, 8, नोट_ए5, 8, नोट_डी6, 8, नोट_बी5, 8, नोट_सी6, 4, नोट_डी6, 8, नोट_एफ6, 4, नोट_ए6, 8, नोट_बी6, 8, नोट_एफ6, 8, नोट_सी6, 8, नोट_डी6, 2}; ////////////////////////////////////////////////////////////////////////////// /////// const int SongOfStorms_melody2 PROGMEM = {note_D5, 12, Note_F5, 12, Note_D6, 3, Note_D5, 12, Note_F5, 12, Note_D6, 3, Note_E6, 5, Note_F6, 10, Note_E6, 12, नोट_एफ6, 12, नोट_ई6, 12, नोट_सी6, 12, नोट_ए5, 3, नोट_ए5, 6, नोट_डी5, 6, नोट_एफ5, 12, नोट_जी5, 12, नोट_ए5, 2, नोट_ए5, 6, नोट_डी5, 6, नोट_एफ5, 12, नोट_जी5, 12, नोट_ई5, 2, नोट_डी5, 12, नोट_एफ5, 12, नोट_डी6, 3, नोट_डी5, 12, नोट_एफ5, 12, नोट_डी6, 3, नोट_ई6, 5, नोट_एफ6, 10, नोट_ई6, 12, नोट_एफ6, 12, नोट_ई6, 12, नोट_सी6, 12, नोट_ए5, 3, नोट_ए5, 6, नोट_डी5, 6, नोट_एफ5, 12, नोट_जी5, 12, नोट_ए5, 2, नोट_ए5, 6, नोट_डी5, 6, नोट_एफ5, 12, नोट_जी5, 12, नोट_ई5, 2}; ///////////////////////G Petzold में Minuet ///////////////////// // int Minuet_melody3 = {note_D5, 4, Note_G4, 8, Note_A4, 8, Note_B4, 8, Note_C5, 8, Note_D5, 4, Note_G4, 4, Note_G4, 4, Note_E5, 4, Note_C5, 8, Note_D5, 8, नोट_ई5, 8, नोट_एफएस5, 8, नोट_जी5, 4, नोट_जी4, 4, नोट_जी4, 4, नोट_सी5, 4, नोट_डी5, 8, नोट_सी5, 8, नोट_बी4, 8, नोट_ए4, 8, नोट_बी4, 4, नोट_सी5, 8, नोट_बी4, 8, नोट_ए4, 8, नोट_जी4, 8, नोट_एफएस4, 4, नोट_जी4, 8, नोट_ए4, 8, नोट_बी4, 8, नोट_जी4, 8, नोट_ए4, -2, नोट_डी5, 4, नोट_जी4, 8, नोट_ए4, 8, नोट_बी4, 8, नोट_सी5, 8, नोट_डी5, 4, नोट_जी4, 4, नोट_जी4, 4, नोट_ई5, 4, नोट_सी5, 8, नोट_डी5, 8, नोट_ई5, 8, नोट_एफएस5, 8, नोट_जी5, 4, नोट_जी4, 4, नोट_जी4, 4, नोट_सी5, 4, नोट_डी5, 8, नोट_सी5, 8, नोट_बी4, 8, नोट_ए4, 8, नोट_बी4, 4, नोट_सी5, 8, नोट_बी4, 8, नोट_ए4, 8, नोट_जी4, 8, नोट_ए4, 4, नोट_बी4, 8, नोट_ए4, 8, नोट_जी4, 8, नोट_एफएस4, 8, नोट_जी4, -2, नोट_बी5, 4, नोट_जी5, 8, नोट_ए5, 8, नोट_बी5, 8, नोट_जी5, 8, नोट_ए5, 4, नोट_डी5, 8, नोट_ई5, 8, नोट_एफएस5, 8, नोट_डी5, 8, नोट_जी5, 4, नोट_ई5, 8, नोट_एफएस5, 8, नोट_जी5, 8, नोट_डी5, 8, नोट_सीएस5, 4, नोट_बी4, 8, नोट_सीएस5, 8, नोट_ए4, 4, नोट_ए4, 8, नोट_बी4, 8, नोट_सीएस5, 8, नोट_डी5, 8, नोट_ई5, 8, नोट_एफएस5, 8, नोट_जी5, 4, नोट_एफएस5, 4, नोट_ई5, 4, नोट_एफएस5, 4, नोट_ए4, 4, नोट_सीएस5, 4, नोट_डी5, -2, नोट_डी5, 4, नोट_जी4, 8, नोट_एफएस5, 8, नोट_जी4, 4, नोट_ई5, 4, नोट_जी4, 8, नोट_एफएस4, 8, नोट_जी4, 4, नोट_डी5, 4, नोट_सी5, 4, नोट_बी4, 4, नोट_ए4, 8, नोट_जी4, 8, नोट_एफएस4, 8, नोट_जी4, 8, नोट_ए4, 4, नोट_डी4, 8, नोट_ई4, 8, नोट_एफएस4, 8, नोट_जी4, 8, नोट_ए4, 8, नोट_बी4, 8, नोट_सी5, 4, नोट_बी4, 4, नोट_ए4, 4, नोट_बी4, 8, नोट_डी5, 8, नोट_जी4, 4, नोट_एफएस4, 4, नोट_जी4, -2,}; // टेम्पो डे लास कैन्सियोन्स इंट नोट्स = आकार (विंडवेकर_मेलोडी 1) / आकार (विंडवाकर_मेलोडी 1 [0]) / 2; int Notes2=sizeof(SongOfStorms_melody2)/sizeof(SongOfStorms_melody2[0])/2; int Notes3 = sizeof(Minuet_melody3) / sizeof(Minuet_melody3[0])/2; इंट टेम्पो = १२०; इंट टेम्पो २ = १६०; इंट टेम्पो३ = १४०; इंट होलनोट = (६०००० * ४) / टेम्पो; इंट होलनोट २ = (६०००० * ४) / टेम्पो २; पूर्णांक ३ = (६०००० * ४) / गति ३; इंट डिवाइडर = 0, नोटअवधि = 0; //Inicializacion del boton, pantalla LCD, y LED RGB void setup(){ Wire.begin(); LCD.begin (16, 2); एलसीडी.क्लियर (); एलसीडी प्रकाश(); पिनमोड (बजर, आउटपुट); पिनमोड (4, INPUT_PULLUP); पिनमोड (7, INPUT_PULLUP); पिनमोड (आर, आउटपुट); पिनमोड (जी, आउटपुट); पिनमोड (बी, आउटपुट); } शून्य लूप () { अगर (contador == 0) {// डेफिनिर एल कलर कॉन एल क्यू से वेरा विंड मेकर एनालॉगराइट (आर, 0); एनालॉगराइट (जी, 255); एनालॉगवाइट (बी, 255); एलसीडी.क्लियर (); LCD.setCursor(0, 0); LCD.print ("विंड मेकर"); के लिए (int thisNote = 0; thisNote 0) { NoteDuration = (संपूर्ण नोट) / डिवाइडर; } और अगर (विभक्त < 0) {// बिंदीदार नोट नकारात्मक अवधि के साथ दर्शाए जाते हैं !! नोट अवधि = (संपूर्ण नोट) / पेट (विभक्त); नोटअवधि *= १.५; // बिंदीदार नोटों के लिए अवधि को आधा कर देता है } टोन (बजर, WindWaker_melody1[thisNote], NoteDuration*0.9); // अगला नोट चलाने से पहले विशिष्ट अवधि की प्रतीक्षा करें। सुबीर = डिजिटलरेड(4); bajar = digitalRead(7); देरी (नोटअवधि); नोटोन (बजर); अगर (सुबीर == कम) {contador = 1; } अगर (बाजार == कम) {contador = 2; } अगर (contador != 0){ ब्रेक; } } } और अगर (contador == 1){// डेफिनिर एल कलर कॉन एल क्यू से वेरा सॉन्ग ऑफ स्टॉर्म्स एनालॉगराइट (आर, 255); एनालॉगराइट (जी, 0); एनालॉगवाइट (बी, 255); एलसीडी.क्लियर (); LCD.setCursor(0, 0); LCD.print ("तूफानों का गीत"); के लिए (int thisNote = 0; thisNote 0) {// नियमित नोट, बस आगे बढ़ें नोट अवधि = (संपूर्ण नोट 2) / विभक्त; } और अगर (विभक्त < 0) { नोट अवधि = (संपूर्ण नोट 2) / पेट (विभक्त); नोटअवधि *= १.५; // बिंदीदार नोटों के लिए अवधि को आधा कर देता है } टोन (बजर, pgm_read_word_near (SongOfStorms_melody2+thisNote), NoteDuration * 0.9); सुबीर = डिजिटलरेड(4); bajar = digitalRead(7); देरी (नोटअवधि); नोटोन (बजर); अगर (सुबीर == कम) {contador = 2; } अगर (बाजार == कम) {contador = 0; } अगर (contador != 1){ ब्रेक; } } } और अगर (contador == 2){//definir el color con el que se verá Minuet analogWrite(R, 255); एनालॉगराइट (जी, 255); एनालॉगराइट (बी, 0); एलसीडी.क्लियर (); LCD.setCursor(0, 0); LCD.print ("मिनट इन जी"); LCD.setCursor(0, 1); LCD.print ("पेटज़ोल्ड"); के लिए (int thisNote = 0; thisNote 0) { NoteDuration = (संपूर्ण नोट 3) / डिवाइडर; } और अगर (विभक्त < 0) { नोट अवधि = (संपूर्ण नोट 3) / पेट (विभक्त); नोटअवधि *= १.५; // बिंदीदार नोटों के लिए अवधि को आधा कर देता है } टोन (बजर, Minuet_melody3[thisNote], NoteDuration * 0.9); सुबीर = डिजिटलरेड(4); bajar = digitalRead(7); देरी (नोटअवधि); नोटोन (बजर); अगर (सुबीर == कम) {contador = 0; } सुबीर = digitalRead(4); bajar = digitalRead(7); अगर (बाजार == कम) {contador = 1; } अगर (contador != 2){ ब्रेक; } } } }

सिफारिश की: