Pages: [1]   Go Down
Author Topic: Analog Pin KOmplett Reseten  (Read 509 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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
Logged

Offline Offline
God Member
*****
Karma: 4
Posts: 568
ATmega 2560
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Tschau
Doc Arduino

Wien
Offline Offline
Edison Member
*
Karma: 23
Posts: 1658
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
God Member
*****
Karma: 4
Posts: 568
ATmega 2560
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

ist ja interessant was man so lesen kann.  smiley-eek  Gut zu wissen.
Logged

Tschau
Doc Arduino

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Wien
Offline Offline
Edison Member
*
Karma: 23
Posts: 1658
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ji,

hier im deutschen. uwe war dabei...

gruß stefan
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 235
Posts: 20230
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Wien
Offline Offline
Edison Member
*
Karma: 23
Posts: 1658
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 235
Posts: 20230
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: February 24, 2013, 03:16:12 pm by uwefed » Logged

Offline Offline
God Member
*****
Karma: 4
Posts: 568
ATmega 2560
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Tschau
Doc Arduino

Pages: [1]   Go Up
Jump to: