ich möchte meinen DF Miniplayer über einen Attiny ansteuern. Das soll ja möglich sein, oder?
Ich möchte aktuell nur, dass eine MP3 abgespielt wird, wenn der Attiny Strom bekommt. Also, nichts kompliziertes. Leider bekomme ich es nicht hin.
Hat mir evtl. jemand einen BeispielSketch?
Hier im Forum habe ich folgendes gefunden:
Just set the processor in the IDE to the ATtiny and see if it compiles.
Ich weiß leider nicht, was damit gemeint ist.
Kann das Problem evtl. am Clock hängen? Habe den Attiny auf 1Mhz laufen. Habe dort noch nie etwas geändert.
Evtl. definiere ich die RX und TX Ports im Sketch auch falsch.
Hier mal mein Sketch:
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(3, 4); // RX, TX
const int Rx = 3; // this is physical pin 2
const int Tx = 4; // this is physical pin 3
DFRobotDFPlayerMini myDFPlayer;
void setup()
{
pinMode(Rx, INPUT);
pinMode(Tx, OUTPUT);
mySoftwareSerial.begin(9600);
myDFPlayer.volume(25); //Set volume value. From 0 to 30
myDFPlayer.play(1); //Play the first mp3
}
void loop()
{
static unsigned long timer = millis();
if (millis() - timer > 120000) {
timer = millis();
myDFPlayer.next(); //Play next mp3 every 3 second.
}
}
Die Library SoftwareSerial läuft nicht, wenn der Controller mit 1MHz getaktet wird.
Setze die Taktfrequenz auf 8MHz und dann sollte es kein Problem sein. Dazu muss aber der Sketch funktionieren, was ich mir noch nicht angesehen habe.
Allerdings brauchst du für dein beschriebenes Projekt keinen ATtiny, das geht auch mit einem DFplayer alleine.
Habe auch schon massive Schwierigkeiten damit gehabt.
Auch 16MHz intern helfen da nicht.
Es drehte sich allerdings nicht um so ein MP3 Dingen sondern um RS232C, aber das sollte egal sein
Der interne Takt war bei mir einfach zu ungenau, und ist zudem Temperaturabhängig.
Geholfen hat damals eine Kalibriertabelle im EEPROM.
Der Tiny hat ein OSCCAL Register und einen Thermo Sensor
Danke für eure Antworten. Leider hatte ich noch keinen Erfolg.
Dass du pinMode in // gesetzte hast ist richtig? Muss ich die Ports nicht definieren?
Kann ich denn die RX und TX Ports an einem Attiny frei definieren? Ich bin was die RX und TX Ports mittlerweile komplett verwirrt.
const int Rx = 3; // this is physical pin 2
const int Tx = 4; // this is physical pin 3
Das sind doch die Pins zwischen Reset und Ground, oder?
Aus meiner Erinnerung:
Bis ca 2,5% Abweichung ist alles ok
Wenn es auf 10% zu geht wird es zusehens schlimmer, bis zum Versagen.
Etwas liegts auch am Gegenüber, denn das ist auch nicht 100% exakt.
Die beiden Abweichungen können sich ausgleichen, aber auch addieren.
Eine 50/50 Chance