60 nap alatt Arduino #20

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
Papus51
Újonc
Újonc
Hozzászólások: 1
Csatlakozott: 2022. augusztus 7. vasárnap, 15:35

Re: 60 nap alatt Arduino #20

Hozzászólás Szerző: Papus51 »

Sziasztok!
Nem nagy ügy, de az alábbi programban felcseréltem a digitalWrite(Speaker,LOW); és digitalWrite(Speaker,HIGH); sorrendjét.
Az eredeti:

Kód: Egész kijelölése

  temp1long = tartam / (var * 2);
  //ismeteld, amig a feltetel igaz
  while (temp1long != 0) {
    //hangszoro alacsonyra
    digitalWrite(Speaker, LOW);
    //varakozas valtas kozt
    delayMicroseconds(var);
    //hangszoro magasra
    digitalWrite(Speaker, HIGH);
    //varakozas valtas kozt
    delayMicroseconds(var);
    temp1long = temp1long - 1;
  }
  //10 sec szunet
  delay(10000);
  //utana kezdjuk ujra
}


Az oka az volt, hogy amíg a program sorokat néztem nem tűnt fel, viszont oszcilloszkópon nézve a négyszög jelet rögtön feltűnt, hogy a relatív hosszú szünetekben magas szinten van a kontroller kimenete, így tartósan DC-vel terhelt a kimenet is és a hangszóró is. Felcserélve a sorrendet legalább a szünetekben nincs egyenáramú összetevő a hangszórón.
Válasz küldése