Oktavtongenerator

2060, 2065, 2070, 2072, 2075, 2080, 2090, 3600, 4000, 6000, 7000, ...

Moderator: suntri

Antworten
Benutzeravatar
Frankje
Stammgast
Stammgast
Beiträge: 207
Registriert: 26.04.2007, 21:42
Wohnort: Belgium
Flag: Belgium

Oktavtongenerator

Beitrag von Frankje » 31.03.2019, 18:12

Hallo alle zusammen,

An diesem Nachmittag wurde eine neue Schaltung mit einigen neuen und vorhandenen Busch-Modulen erstellt: ein Oktavtongenerator.
Wenn die Batterie angeschlossen ist, hören Sie die aufeinanderfolgenden Töne mit mehr als 2 Oktaven im Lautsprecher.
Diese Töne könnten vom Arduino perfekt reproduziert werden, aber ich mag die Volatilität der analogen Klangerzeugung mit dem SN76477-Synthesizer-Modul.
Durch ein wenig Anpassung des Programms können sogar Songs programmiert werden (wie bei der Busch Microtronic).
Das Arduino wird hier mit FAST PWM verwendet, um Interferenzen zu vermeiden.
Nach einigem Filtern und Verringern der resultierenden Spannung wird der Synthesizer damit gesteuert.
Haben Sie auch bemerkt, dass der SN76477 umgekehrt reagiert? (Je höher die Spannung, desto niedriger der Ton).
Ich habe daher die PWM auf Invers gesetzt, so dass sie jetzt logisch abläuft.

Hier ein paar Bilder:
Viel spaß
Frank

This small program uses fast PWM to play the notes from 2 octaves.
The output of the arduino controls the EXT VCO of the SN76477.
To tune the circuit, press the reset button on the arduino.
Use a guitar tuner (like the free app "Piano Tuner" available on Google play).
Tune the VCO on the SN76477 to C# or B bemol (around 2220Hz).
Release the reset switch and hear the tones climbing up

NOTES are : G#4:4 A4:21 A#4:37 B4:52 C5:67 C#5:81 D5:94 D#5:106 E5:117 F5:128 F#5:139 G5:148 G#5:158 A5:166 A#5:175 B5:182
C6:190 C#6:197 D6:204 D#6:210 E6:216 F6:221 F#6:226 G6:231 G#6:236 A6:240 A#6:244 B6:248 C7:252
*/

// Delcarations
int myOutPin = 5;
int note[15] {67,94,117,128,148,166,182,190,204,216,221,231,240,248,252};

void setup() {

pinMode(myOutPin, OUTPUT);
// Set up the 62.5 kHz output for FAST PWM
TCCR0A = _BV(COM0B0) | _BV(COM0B1) | _BV(WGM01) | _BV(WGM00);
TCCR0B = _BV(WGM02) | _BV(CS00);
OCR0A = 255;
}

void loop() {
// Ramp up the notes
for (int i = 0; i <= 14; i++) {
analogWrite (5, note);
// analogWrite(5,i);
Serial.print (i);
Serial.println();
delay(80000);

}
}//end main loop
Note_Generator_Schematic.jpg
Note_Generator_Schematic.jpg (97.89 KiB) 560 mal betrachtet
Note_Generator_Schematic.jpg
Note_Generator_Schematic.jpg (97.89 KiB) 560 mal betrachtet
Dateianhänge
Note_Generator.jpg
Note_Generator.jpg (151.78 KiB) 560 mal betrachtet
Note_Generator.jpg
Note_Generator.jpg (151.78 KiB) 560 mal betrachtet
“All the electronic devices are powered by white smoke. When smoke goes out, device is dead.”
― Milan Nikolic

Antworten

Zurück zu „Busch Elektronik“