Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Muziekweergave besturen met je afstandsbediening: Een simpel Arduino-project

Onderdelen en benodigdheden

  • Arduino UNO
  • Afstandsbediening (infrarood)
  • IR-ontvanger (generiek)
  • Buzzer
  • Adafruit Standard LCD - 16x2 Wit op Blauw
  • Draaipotentiometer (generiek)
  • Weerstand 221 ohm

Apps en online diensten

  • Arduino IDE

Over dit project

Hallo Hackster-community!

Ik ben Simone Adobs en dit is mijn tweede project dat ik op deze site publiceer.

De logica achter dit project

De werking is heel eenvoudig:

  • Neem je afstandsbediening en selecteer de melodie die je wilt afspelen;
  • De Arduino speelt de melodie af via de buzzer;
  • Op het LCD-scherm zie je de muzikale noot die wordt gespeeld.

Code-uitleg

Hieronder een voorbeeld van hoe een melodie in de code wordt gedefinieerd:

void melody_example() { 
  lcd.clear(); 
  lcd.setCursor(0,0); 
  lcd.print("Song title"); 
  delay(1000); 
  lcd.clear(); 
  nota_mi(duur,pauze); // muzikale noot
  nota_do(duur,pauze); // muzikale noot
  lcd.clear(); 
  delay(100); 
  Reset_AVR(); // Deze commando reset de Arduino zonder knop indrukken
}

Om de Reset_AVR()-functie te gebruiken, moet je deze code bovenaan de sketch plaatsen:

#include <avr/io.h> 
#include <avr/wdt.h> 
#define Reset_AVR() wdt_enable(WDTO_30MS); while(1) {}

De Arduino herkent welke melodie gespeeld moet worden aan de hand van de ontvangen IR-codes:

if (result==12495) { // Code voor knop 1
  melody_1(); 
} else if (result==6375) { // Code voor knop 2
  melody_2(); 
} else if (result==31365) { // Code voor knop 3
  melody_3(); 
} else if (result==4335) { // Code voor knop 4
  melody_4(); 
}

Elke noot wordt afgespeeld met een functie zoals deze:

void nota_example(int duur, int pauze) { 
  shut(); // Roept de stop-functie aan (zie hieronder)
  lcd.setCursor(0, 0); 
  lcd.print("Example "); // Print nootnaam
  NewTone(11,262,duur); // Pin 11 = buzzer, 262 = frequentie noot
  delay(pauze); // Wacht enkele milliseconden
}

Wil je de melodie stoppen terwijl hij speelt?

Geen probleem! Dankzij de shut()-functie kun je de melodie op elk moment stoppen.

void shut() { 
  if (irrecv.decode(&results)) { 
    result=results.value, HEX; 
    Serial.println(result); 
    if (result==-23971) { // -23971 is de code voor de uit-knop op mijn afstandsbediening
      Reset_AVR(); // Reset Arduino
    } 
  } 
  irrecv.resume(); // Sta toe nieuwe code te ontvangen
}

Ik hoop dat je dit project leuk vindt. Als dat zo is, bekijk dan ook mijn eerdere project.

Een fijne dag!

Simone uit Italië <3

Code

De complete code is beschikbaar in de originele projectpagina. Hier is een overzicht van de belangrijkste functies:

  • Afspelen van vier vooraf gedefinieerde melodieën: "Ode to Joy", "London Bridge", "Für Elise", "He's a Pirate"
  • IR-ontvangst en decodering
  • LCD-weergave van nootnamen
  • Buzzer-aansturing via NewTone-bibliotheek
  • Softwarematige reset via watchdog-timer

De code gebruikt de bibliotheken LiquidCrystal.h, IRremote.h, NewTone.h en AVR-specifieke headers voor de reset-functie.

Schema

Het schakelschema is beschikbaar als Fritzing-bestand (canzoni_con_tastiera_fQS3978roa.fzz) en als afbeelding.

Productieproces

  1. IR-afstandsbediening-commando's vastleggen op Raspberry Pi zonder LIRC: Een Python UART-benadering
  2. Bouw een real-time gyroscoop-spel met Arduino Nano & MPU-6050 sensor
  3. ESP32-CAM bewegingdetecterende beveiligingscamera voor Discord
  4. Arduino Digitale Dobbelsteen: Bouw Je Eigen LCD-willekeurige Getalgenerator
  5. Bouw Je Eigen 37-LED Roulette-spel met Arduino Nano
  6. Zelfgemaakte Arduino TV-afstandsbediening – Batterij, 3D-geprinte behuizing
  7. Monitor Je Huistemperatuur Overal met Arduino Cloud Integratie
  8. ATtiny85 Mini Arcade: Snake – Bouw een Handheld OLED Game Console
  9. Draagbare Afstandsdetector – Arduino Nano DIY Kit met HC-SR04, 18650 Accu en 3D-geprinte Behuizing
  10. Een Arduino LED besturen met Cortana via Bluetooth op Windows 10
  11. Geavanceerde Remote-gecontrolleerde Gripper Robot voor Precisiehantering