mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Midi-Ausgabe über µC


Autor: Flo Bien (bluefoxxp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich möchte gern mit einem µC (z.B.At89C2051) Töne über einen 
Lautsprecher ausgeben.

In einem früheren Thread hatte schon jemand die entsprechenden 
Code-Segmente für BASIC genannt:
$baud = 31250
Open "com3.1:31250" For Output As #1
Put #1 , 153   'kanal
Put #1 , 45     'ton
Put #1 , 90     'lautstärke
Close #1

Eine entsprechende Verstärkerschaltung für den Lautsprecher habe ich 
schon gefunden: http://bwir.de/schaltungen/miniverstaerker

Allerdings ist mir nicht so ganz klar wie ich diese Schaltung mittels µC 
ansteuern kann:
Muss ich PWM-Signale verwenden? Oder ist es einfacher, wenn ich die Töne 
als Gleichspannung ausgebe und dann mittels VCO in oszillierende Signale 
umwandle? Ist obige Verstärkerschaltung dafür überhaupt geeignet?
Wieviel Speicher benötigt man für eine einfache MIDI-Ausgabe?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Basic-Fragment erzeugt keinen einzigen Ton. Sondern es steuert ein 
Midi-Instrument an, und das wird dann wohl einen Ton erzeugen.

Hast Du ein Midi-Instrument? Ein Keyboard, ein Soundmodul o.ä.?

Autor: Flo Bien (bluefoxxp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly wrote:
> Das Basic-Fragment erzeugt keinen einzigen Ton. Sondern es steuert ein
> Midi-Instrument an, und das wird dann wohl einen Ton erzeugen.
>
> Hast Du ein Midi-Instrument? Ein Keyboard, ein Soundmodul o.ä.?

Leider hab ich kein Soundmodul. Aber soweit ich gesehen hab, sind die ja 
verdammt teuer (100€++).
Gibts denn nicht eine günstige Variante?

Bzw. ich könnte ja einfach die Gleichspannung des µC-Ausgangs mit einem 
AC-Wandler in eine Sinusspannung (=Ton) umwandeln. Oder ist das zu 
simpel gedacht?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich kannst Du auch mit Deinem µC Töne erzeugen, nur hat das dann 
mit Midi gar nichts mehr zu tun.
Am simpelsten ist die Erzeugung eines Rechtecksignales, dazu musst Du 
nur zyklisch einen Portpin von 1 auf 0 und umgekehrt schalten. Der 
Portpin wird dann über einen Kondensator mit dem Lautsprecher bzw. einem 
Verstärker verbunden, und schon hast Du einen recht hässlichen und sehr 
lauten Ton.
Die Frequenz ist die, mit der Du am Portpin wackelst.

Alternativ kannst Du auch zyklisch die Werte einer Sinustabelle auf 
einen DAC ausgeben und den mit Lautsprecher/Verstärker verbinden (wieder 
über einen Kondensator, um den Gleichspannungsanteil zu eliminieren).

Die Ausgaberoutine sollte in beiden Fällen in einem Timerinterrupt 
ausgeführt werden, weil Du nur so eine Kontrolle über die erzeugte 
Frequenz hast und Dein µC auch noch Zeit hat, andere Dinge zu tun.

Autor: Benedikt Patt (benediktpatt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin mir fast sicher, dass es in Bascom Funktionen zum erzeugen von 
Tönen per PWM gibt. Das wird wahrscheinlich nicht vergleichbar mit MIDI 
sein, aber man sollte schon unterschiedliche Töne erzeugen können ;)

Gruß
Benedikt

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Gibts denn nicht eine günstige Variante?
Doch, sowas:
Ebay-Artikel Nr. 280315764529

Ohne Witz:
Midi In+Out, Tastatur, Tonerzeuger und Verstärker alles für den Anfang.
Und nein, ich bin nicht der Verkäufer.

> verdammt teuer (100€++).
Fang mal an zu Sparen, du wirst noch sehr viel mehr Gled liegen lassen, 
wenn du dieses Hobby weiter betreiben willst ;-)

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke mal, eine ganz einfache Lösung wird es wohl nicht geben. 
Natürlich ist es denkbar mit einem µC das Midi-Signal einzulesen, 
auszuwerten und als Ton auszugeben, aber richtig begeistern wird dich 
das Ergebnis dann erstmal nicht.

Bin mir jetzt nicht sicher ob es "AC-Wandler" für sowas gibt, aber 
normalerweise würde ich davon ausgehen, dass die eine statische Frequenz 
haben und genau die will man ja nicht haben. Die Frequenz wird der µC 
machen müssen.

Aber wenn Du ein Midi-Keyboard hast und Klang haben willst wirst Du 
wahrscheinlich ein richtiges Gerät kaufen müssen.

Autor: Flo Bien (bluefoxxp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Fang mal an zu Sparen, du wirst noch sehr viel mehr Gled liegen lassen,
wenn du dieses Hobby weiter betreiben willst ;-)

Hm. Mein Ziel war es, zunächst ein "Ding" zu bauen, das einfach immer 
nur das selbe MIDI-Lied (welches auf einem Speicher liegt) abspielt. Das 
wird so wohl nichts :-)

Wie machen es denn Spielzeughersteller? Ein sprechender Stoffbär kostet 
ja auch keine 300€. Oder eine dieser Musik-Glückwunschkarten...

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Flo Bien wrote:
> Wie machen es denn Spielzeughersteller? Ein sprechender Stoffbär kostet
> ja auch keine 300€. Oder eine dieser Musik-Glückwunschkarten...

Massenproduktion und Sound-Samples würde ich mal vermuten...

P.S. Außerdem gibt es noch Soundchips die für sowas gedacht sind.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.