Analog Pin KOmplett Reseten

Guten Abend,

ich arbeite im Moment an einem Wecker (eigentlich bin ich fertig, bis auf dieses Detail), wenn der Sound einmal abgespielt worden ist(über eine Box + geringem Widerstand (um die Lautstärke etwas zu reduzieren)) höhre ich noch so ein leises pippen was extrem nervig ist wenn man noch mal 5 min schlafen möchte, ich benutze folgenden Code für den Sound

void sound(){                                                                                              //sound (play sound)
 
 for (int thisNote = 0; thisNote < 8; thisNote++) {

    // to calculate the note duration, take one second
    // divided by the note type.
    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
    int noteDuration = 1000/noteDurations[thisNote];
    tone(12, melody[thisNote],noteDuration);

    // to distinguish the notes, set a minimum time between them.
    // the note's duration + 30% seems to work well:
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
    // stop the tone playing:
    noTone(12);
       
     if (weckermode==0){  
        if(digitalRead(btnMode)==HIGH){
    snoozeval = snoozemax; 
    delay(100);
  }}
  
  }}

Jeedenfalaa funktioniert auch das auf Null setzen durch analogwrite nicht, da bekomm ich auch sofort ein leises Interferenc pippen

Vilen dank Fèr eure Hilfe bei Fragen einfach melden

Hallo,

das analoge PWM Signal arbeitet doch im kHz Bereich? Vielleicht hilft da nur am Ausgang vorm Lautsprecher oder Deiner Verstärkerschaltung einen Tiefpaßfilter einzubauen. Kannst Du mit einem Oszi am Analogausgang messen ob dort bei Wert 0 wirklich noch ein PWM Takt rauskommt? Wenn ja mußte das bestimmt rausfiltern.

hi,

vielleicht lieg' ich ja komplett falsch, aber ich glaube mich an einen anderen thread zu erinnern, da gings genau darum, daß PWM 0 nicht völlig abschaltet.
hab' grad das in der referenz gefunden:

Notes and Known Issues
The PWM outputs generated on pins 5 and 6 will have higher-than-expected duty cycles. This is because of interactions with the millis() and delay() functions, which share the same internal timer used to generate those PWM outputs. This will be noticed mostly on low duty-cycle settings (e.g 0 - 10) and may result in a value of 0 not fully turning off the output on pins 5 and 6.

gruß stefan

Hallo,

ist ja interessant was man so lesen kann. :astonished: Gut zu wissen.

Okay erst mal vielen Dank für die Antworten das mit den Pins die nicht ganz abschalten find ich interessant weisst du zufällig von welchem Board der thread war?? Ich benutze den MEga Shield ich schue jetzt mal gleich dort die Pin besonderheiten nach

ji,

hier im deutschen. uwe war dabei...

gruß stefan

Eisebaer:
ji,

hier im deutschen. uwe war dabei...

gruß stefan

ups, ich leide definitiv an Altersvergeßlichkeit oder doch nur an Wochenendvergeßlichkeit infolge val di Fiemme? Oder gibt es noch einen anderen uwe und ich bin aus dem Schneider?
Grüße Uwe

hi,

super, wir strudeln uns hier ab und Du gehst schifahren oder rodeln...
war da nicht mal was, daß PWM0 nicht wirklich auf 0 setzt?
glaubte mich zu erinnern. naja, dann war's definitiv MEINE altersvergeßlichkeit...

gruß stefan

Doc_Arduino:
Hallo,

das analoge PWM Signal arbeitet doch im kHz Bereich? Vielleicht hilft da nur am Ausgang vorm Lautsprecher oder Deiner Verstärkerschaltung einen Tiefpaßfilter einzubauen. Kannst Du mit einem Oszi am Analogausgang messen ob dort bei Wert 0 wirklich noch ein PWM Takt rauskommt? Wenn ja mußte das bestimmt rausfiltern.

Hallo Doc_Arduino
PWM Signale sind definitiv nicht analoge Signale sondern rein digitale Signale dessen Mittelwert für träge Verbraucher oder für LEDs mit einem "trägen" Betrachter einer analogen Spannung entsprechen kann.
Die Standart PWM-Frequenz ist 488Hz bzw für pin 5 und 6 beim Arduino UNO 976Hz. Für den MEGA kann ich jetzt sofort nichts sagen. Müßte das Datenblatt konsultieren.
http://playground.arduino.cc/Main/TimerPWMCheatsheet

Grüße Uwe

Hallo,

ja stimmt schon. Ich hatte leider beim Thema Soundausgabe gleich das Beispiel von meinen Buch im Kopf. elektor Arduino von Günther Spanner. Der erzeugt eine PWM Frequenz von 62,5kHz mit TCCR1A = 0b10000001 und TCCR1B = 0b00001001 um irgendwelche sonst hörbaren Oberwellen rauszubekommen. Am Ausgang hängt eine Tiefpass Eingangsfilterschaltung für den verwendeten LM386. Damit erzeugt er laut Buch neben Sound auch Sinus und Sägezahnverläufe.