Forum: Analoge Elektronik und Schaltungstechnik PT2322 + mega2560 steuerung gestaltet sich schwer wie gedacht.


von DAVID B. (bastler-david)


Angehängte Dateien:

Lesenswert?

Hallo
Mein Problem welches ich habe habe ich bereits in einen andren forum 
erfragt wo ich auch die library herhabe.
In der Hoffnung den Ersteller zu finden hat aber leider nicht 
hingehauten.
Also seht es mir nach das ich HIER die selbe frage noch mal stellen 
muss.

Ich habe mir einen PT2322 gekauft auf gelötet mit dem mega2560 verbunden 
und getestet und läuft so weit die library ist von hier:
http://oddwires.blogspot.de/2012/07/using-arduino-pt2322-library-for-audio.html
Reglung der Lautstärke für die Lautsprecher geht alles bass und höhe 
Verstärken geht auch.

Wo mein Problem liegt ist eher das ich bass und höhe /Mitte nicht 
reduzieren kann der wert im beispiel reicht von -14 bis + 14 und 0 bis 
+14 geht aber 0-14 ändert gar nix am Signal von bass oder höhe/Mitte wie 
kommt das ?

zuerst dachte ich es wäre mein Fehler das ich beim umbauen einen Fehler 
gemacht habe.
Darauf hin habe ich das beispiel noch mal neu geladen und nur die 
Display Pins geändert und es geht auch nicht.

als eingangs Signale habe ich 50Hz 1Khz und 10Khz verwendet.

Kurze zusammen Fassung:
bass/Mitte/höhe 0 bis +14 Verstärkung ok
Bass/Mitte/höhe 0 bis -14 abschwächen geht nicht.

VCC 8,5 Volt.
Aufbau nach plan aus Datenblatt.(viel falsch machen kann man ja nicht)
Test erfolge mit dem mitgelieferten beispiel.

jemand eine Idee ?
Vielen dank

von Dieter (Gast)


Lesenswert?

Auf Deutsch gepostet auf einem Blog, wo fast nur Englisch verstanden 
wird, dürfte nur wenig erfolgversprechend verlaufen.

Möglich wäre ein Variableinfehler (signed integer and unsigned integer) 
bei der Übergabe, kann so das negative Vorzeichen flöten gehen.
Zum Testen nicht ganz einfach. Eine Möglichkeit wäre im Programm eine 
kleine Funktion einbauen, die eine Variable prüft und je nach Vorzeichen 
einen der freien Ausgänge am atmega schaltet (mit kleiner LED zur 
Anzeige).

von DAVID B. (bastler-david)


Lesenswert?

ok danke dir.
Ich habe es auch noch mal im deutsch abteil versucht.

Wenn es ein Variablen Fehler ist wäre der wert dann nicht wieder 
positive und würde den positiven wert senden anstatt gar nix ?

wie genau könnte man das testen ?

: Bearbeitet durch User
von DAVID B. (bastler-david)


Lesenswert?

Keiner eine Idee ?
dann werde ich Woll damit leben müssen.

von eProfi (Gast)


Lesenswert?

bass, middle und treble sind unsigned int, da sind negative Werte 
kontraproduktiv. Es kann sein, dass flat response in der Mitte liegt 
(7).

von Dutch Leera (Gast)


Lesenswert?

DAVID -. schrieb:
> Aufbau nach plan aus Datenblatt.(viel falsch machen kann man ja nicht)
> Test erfolge mit dem mitgelieferten beispiel.

DAVID -. schrieb:
> dann werde ich Woll damit leben müssen.

Ich hoffe woll dass wir nicht auf Dauer mit diesem Deutsch
werden leben müssen.

von DAVID B. (bastler-david)


Lesenswert?

hallo
danke eProfi du scheinst recht zuhaben ich habe mal nachsehen können was 
gesendet wird und es ist wirklich so das ab 0 nur noch 0 gesendet wird.
Jetzt ist die frage wie ich das ändern kann ich verstehe das beispiel 
nicht so ganz.

wenn ich wüste wie ich die bytes direkt (ohne library) senden kann wäre 
es möglicherweise einfacher.

von DAVID B. (bastler-david)


Lesenswert?

ehm ok ich glaube ich muss die frage neu/besser Formulieren.

Das senden von 0 und 1 sollte ich in binär umrechnen können zumindest 
bis 15 wie ich größere zahlen um rechnen soll die über 15 sind weiß ich 
noch nicht aber senden sollte doch so aus sehen richtig ?
 Wire.beginTransmission(0x88);
  Wire.write(0x07);  (0111)   >>> das kann für bass sein aber genau so 
auch für middle
  Wire.endTransmission();

genau das ist das Problem wo her soll der ic wissen welche bits ich für 
was sende ?

den für bass middle treble sind das die selben ??
wenn ich jetzt zb bass(G) auf +2 setzten will müste es ja so hier sein:

Wire.beginTransmission(0x88);
 Wire.write(0x0E);   (1110)
 Wire.endTransmission();

sende kann das doch nicht zugeordnet werden oder doch ?
im Datenblatt finde ich zwar ein paar beispiele aber nix was MIR hilf. 
oder übersehe ich das nur immer wieder?

von Dieter (Gast)


Lesenswert?

Ob es mit unsigned char und unsigned int zu tun haben könnte, kann ich 
nicht beurteilen. Du kannst Variablen in der Form prüfen, dass. Du einen 
anderen Ausgang des Arduino schaltest.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.