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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von DAVID B. (bastler-david)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Keiner eine Idee ?
dann werde ich Woll damit leben müssen.

von eProfi (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

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]
  • [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.