Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1
  • 2

THEMA: MCP4725

MCP4725 21 Apr 2017 18:40 #170

  • rom3
  • rom3s Avatar
  • Offline
  • New Member
  • Beiträge: 4
  • Karma: 0
Hallo,
habe am ESP12E den o.g. D/A-Wandler angeschlossen. Ich benutze unter der Arduino IDE die Adafruit-Library. Examples laufen gut, ist leider nur Sinus und eine Dreieckspannung. Finde keine Datenpakete mit Sounds. Also die reinen Spannungsdaten zum übertragen.
Des weiteren würde ich gern wissen, wie ich die gpio-Ports wechseln kann, um den Wandler am ESP01 betreiben zu können.

Ich hoffe Ihr könnt mir weiterhelfen.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

MCP4725 22 Apr 2017 15:47 #171

  • rom3
  • rom3s Avatar
  • Offline
  • New Member
  • Beiträge: 4
  • Karma: 0
Hallo nochmals,
habe ein Programm gefunden mit dem man Wav-Dateien in Memory Data wandeln kann.

github.com/olleolleolle/wav2c

Leider wandelt es nur in 8-Bit und zuviele Daten, so das ich nur jeden 8. Wert benutzen kann(i2c ist nicht so schnell). Meine Progammierkenntnisse reichen leider nicht, um den Source-Code zu ändern. Kann mir jemand dabei helfen?
Der Administrator hat öffentliche Schreibrechte deaktiviert.

MCP4725 23 Apr 2017 09:12 #172

  • StefanL38
  • StefanL38s Avatar
  • Offline
  • New Member
  • Hobby-Elektroniker, Modellflieger
  • Beiträge: 8
  • Karma: 0
rom3 schrieb:
Hallo nochmals,
habe ein Programm gefunden mit dem man Wav-Dateien in Memory Data wandeln kann.

github.com/olleolleolle/wav2c

Leider wandelt es nur in 8-Bit und zuviele Daten, so das ich nur jeden 8. Wert benutzen kann(i2c ist nicht so schnell). Meine Progammierkenntnisse reichen leider nicht, um den Source-Code zu ändern. Kann mir jemand dabei helfen?

Hallo rom3,

so wie du gefragt hast müssen User die dir helfen wollen, sich den Quellcode den du vermutlich benutzt im Internet suchen und finden. Das ist ungefähr so wie wenn ich als Antwort geben würde

"Ja ich kann helfen" Ende der Antwort.

Also es wäre eine große Arbeitserleichterung für die anderen User hier wenn du deinen Source-code hier als Datei zur Verfügung stellst.

Meistens ist es auch so, dass, - wenn man einen überblick über sein Gesamtprojekt gibt andere User auch andere leichter zu realisierende Lösungen vorschlagen können.

So macht es einen großen Unterschied ob du nun nur 3-8 Ansagen von jeweils 2-4 Sekunden Länge brauchst oder ob die Sounddaten viel länger und von hoher Qualität sein müssen. Zm MP3 abspielen gibt es kleine Platinen die ca 10 Euro kosten.

Ich möchte noch ein anschauliches Beispiel machen warum Gesamtüberblick geben Sinn macht:

User: fragt: "Wo gibt es hier eine Feile?"

Helfer: "da hinten gibt es Schleifpapier würde das auch helfen?" Was möchtest du denn machen?

User: (sagt einen Ausschnitt von dem was er vor hat
"Ich möchte das Beil hier schleifen"

Helfer: "Na in dem Fall nimmst du besser die Schleifmaschine die steht vorne links in der Werkstatt"
"Was willst du denn mit dem Beil machen?

User: (Gibt immer noch keinen Gesamtüberblick über das was er vor hat) "Ich möchte Balken in der Mitte teilen"

Helfer: Ach so! Das geht doch viel besser mit der Kreissäge die befindet sich vorne rechts in der Kiste"
"Warum willst du denn die Balken teilen?

User: (sagt ENDLICH mal was sein Gesamtziel ist)
"Ich möchte die Balken in der Mitte teilen damit ich die in dem Kellerraum hinten ohne ausräumen gedreht kriege um an die Bretter die dahinter liegen zu kommen."

Helfer: "na sag das doch GLEICH. Da gibt es eine viel einfachere Lösung! Wir gehen zu Ingo holen den Schlüssel für die andere Tür die kann man von vorne nicht sehen und dann kommst du einfach so an die Bretter ran"

viele Grüße

Stefan Ludwig
Der Administrator hat öffentliche Schreibrechte deaktiviert.

MCP4725 23 Apr 2017 10:46 #173

  • supporter
  • supporters Avatar
  • Offline
  • Premium Member
  • Beiträge: 84
  • Dank erhalten: 5
  • Karma: 0
Hallo rom3,

Stefan hat tatsächlich Recht mit seiner Kurzgeschichte :-)

Es gibt hier bestimmt auch noch weitere Lösungen? z.B. in schlechter Qualität (aber für einfache Signaltöne ausreichend?!) die PWM-Fähigkeiten des ESP zu nutzen und mittels RC-Glied einen "glatteren" Sinus bzw. Ton zu Formen?

Poste mal die Libraries und den von Dir ausprobierten Code falls Du denn den MCP weiter nutzen möchtest.

Viele Grüße

Jörg
Der Administrator hat öffentliche Schreibrechte deaktiviert.

MCP4725 23 Apr 2017 10:53 #174

  • supporter
  • supporters Avatar
  • Offline
  • Premium Member
  • Beiträge: 84
  • Dank erhalten: 5
  • Karma: 0
Ach da fällt mir nochwas ein:

"Des weiteren würde ich gern wissen, wie ich die gpio-Ports wechseln kann, um den Wandler am ESP01 betreiben zu können."

Die Pins zum Ansteuern eines I²C Devices stellst Du so ein:
Wire.begin(2, 0); // SDA an GPIO2 und SCL an GPIO0
Wire.setClock(1000); // I²C Bustakt 1MHz
Der Administrator hat öffentliche Schreibrechte deaktiviert.

MCP4725 23 Apr 2017 13:09 #175

  • rom3
  • rom3s Avatar
  • Offline
  • New Member
  • Beiträge: 4
  • Karma: 0
Hallo Commuity,

ich habe kein richtiges Projekt am Start. Ist mehr oder weniger Programmierübung. Möchte gerne so was änliches wie dieses:

www.youtube.com/watch?v=U9GFNAUKiNU

Mein Programm ist nur eine Analog-Binär-Digital-Uhr die sich die Zeit vom NTP-Server in Braunschweig holt. Als Display benutze ich ein ST7735 mit der Adafruits-Libraries

github.com/adafruit/Adafruit-ST7735-Library.git
Ich vergaß noch zu erwähnen.Habe in AdafruitST7735.h noch eine Farbe hinzugefüget. Einfach in den Hauptprogramm einfügen oder bei Color Definitions
#define ST7735_GREY 0xBDF7
hinzufügen.

github.com/adafruit/Adafruit-GFX-Library.git

und für den MCP4725 die Library

github.com/adafruit/Adafruit_MCP4725.git

Jede Sekunde soll ein Ton über den MCP4725 ausgegeben werden.

Zum Umrechnen in Data benutze ich

github.com/olleolleolle/wav2c.git

Source für Arduino-IDE im Anhang. Einfach nur entpacken und NTPAnalogClock.ino in IDE laden.
Noch Eure Network SSID und Passwort in den Code ändern.

@supporter

Wire.begin(2, 0); habe ich schon versucht, in meinen Source sowie in der Library, ohne Erfolg. Aber vielen Dank für dein Tipp. Wire.setClock(1000);.
Werde ich auf jeden Fall ausprobieren, ob ich damit mehr Daten an den D/A-Wandler schicken kann.

Vielen Dank für Eure Hilfen.
Anhang:
Letzte Änderung: 23 Apr 2017 15:50 von rom3.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
  • Seite:
  • 1
  • 2