Go Down

Topic: Analog Pin KOmplett Reseten (Read 706 times) previous topic - next topic

Techno7

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
Code: [Select]
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

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.
Tschau
Doc Arduino

Eisebaer

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:
Quote
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
nimm abblockkondensatoren!  100nF.  glaub mir, nimm abblockkondensatoren!

Doc_Arduino

Hallo,

ist ja interessant was man so lesen kann.  :smiley-eek:  Gut zu wissen.
Tschau
Doc Arduino

Techno7

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

Eisebaer

ji,

hier im deutschen. uwe war dabei...

gruß stefan
nimm abblockkondensatoren!  100nF.  glaub mir, nimm abblockkondensatoren!

uwefed


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

Eisebaer

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
nimm abblockkondensatoren!  100nF.  glaub mir, nimm abblockkondensatoren!

uwefed

#8
Feb 24, 2013, 09:05 pm Last Edit: Feb 24, 2013, 09:16 pm by uwefed Reason: 1

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

Doc_Arduino

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.
Tschau
Doc Arduino

Go Up