-         

Seite 1 von 6 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 52

Thema: 40 Khz Frequenz erzeugen Ultraschallsender

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    28
    Beiträge
    718

    40 Khz Frequenz erzeugen Ultraschallsender

    Anzeige

    Ich versuche die ganze Zeit eine 40 Khz Frequenz zu erzeugen, bekomme es aber einfach nicht hin.

    Mit
    Code:
    Config Timer1 = Timer , Compare A = Toggle , Prescale = 1
    Pwm1a = 1023
    kommte ich leider nur auf ca. 1,7 ms, also 3,4ms Periodendauer.
    Ich weiß leider nicht so wirklich weiter.

    Der AtMega8 läuft auf 16 Mhz.

    Wichtig wäre es außerdem noch, dass der Timer nur für eine einstellbare Zeit läuft (also wärend die Kapsel sendet).
    RGB-IR-Lampe, Catwiesel Bot, PC Terminal, Schrittmotoransteuerung, Elektroschocker, Stundenplan... www.stefan-reible.de

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    37
    Beiträge
    687
    Wie Du auf den Wert kommst "Pwm1a = 1023" ???

    Soweit ich weis Toggelt der den PIN bei 1023 aber der Timer läuft ja einfach weiter oder sehe ich das falsch?


    Also ich würde es so machen ganz ohne Timer.
    Ein Toggeln erfolgt aller 200 Takte

    1 / 16MHz * 200 * 2= 25µs
    1 / 25µs = 40kHz

    Und die Zeit kannste auch einstellen halt wie oft die Schleife durchlaufen wird.

    Code:
    $regfile = "m8def.dat"                                      'ATMega8
    $crystal = 16000000                                         'Quarz: 16 MHz
    
    
    
    Dim X As Byte
    
    
    For X = 1 To 20
      Waitus 11
        nop
      nop
      nop
      nop
      nop
      Toggle Portb.0
    Next X

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    28
    Beiträge
    718
    Oky danke, ich habs jetzt mit so nem RN Tool gelöst.

    Code:
    Config Timer1 = Timer , Prescale = 1
    
    Config Pinb.1 = Output
    
    Sender Alias Portb.1
    
    
    On Timer1 Timer_irq
    
    Const Timervorgabe = 65136
    
    
    Enable Timer1
    Enable Interrupts
    
    
    Do
    
    Loop
    
    
    Timer_irq:
      Timer1 = Timervorgabe
      Toggle Sender
    Return
    RGB-IR-Lampe, Catwiesel Bot, PC Terminal, Schrittmotoransteuerung, Elektroschocker, Stundenplan... www.stefan-reible.de

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    37
    Beiträge
    687
    nur das nach deinem Programm 20 kHz rauskommen

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    28
    Beiträge
    718
    Schade, und ich dachte schon ich hab ein außergewöhnliches Gehör
    Was muss den für 40Khz dahn?
    RGB-IR-Lampe, Catwiesel Bot, PC Terminal, Schrittmotoransteuerung, Elektroschocker, Stundenplan... www.stefan-reible.de

  6. #6
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo Lenox!

    Wenn die Frequenz nicht sehr stabil seien muss, würde ich sie mit Hardware (z.B. 2 Transistoren oder Logikgätter) generieren und mit dem Mega nur an- und ausschalten.

    Wenn sie sehr stabil seien muss, würde ich ein 400kHz Piezoresonator mit 10:1 Teiler verwenden.

    MfG

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    28
    Beiträge
    718
    Hi,
    ich wollte es vorerst eig. mit dem AVR probieren, später könnte ich das immernoch nachrüsten.
    Mein Problem ist es nur zu messen wie hoch die derzeitige Frequenz ist.
    Halt wegen diesen variables Poti am Oskar.
    RGB-IR-Lampe, Catwiesel Bot, PC Terminal, Schrittmotoransteuerung, Elektroschocker, Stundenplan... www.stefan-reible.de

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Naja, ich an deiner Stelle würde einfach einmal einen Blick ins Datenblatt werfen. Speziell das Kapitel mit den Timern würde ich mir genauer ansehen.

    Anschließend würde ich einen Timermodus wählen, welcher mir eine PWM an einem der dafür vorgesehenen Pins ausgibt und dessen Timer Endwert frei definierbar wäre.

    Als Endergebnis hätte zumindest ich einen 40 kHz Rechteckgenerator der guasi so ganz nebenbei auf dem Mikrocontroller läuft.

    Naja, zumindest ich würde es so machen ...

    Grüße,
    Hanni
    Grundregeln des Forenpostings:
    1. Nutze niemals die Suchfunktion!
    2. Überprüfe niemals die Topics nach Ähnlichkeiten!
    3. Schreibe alles in hellgelb!

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    28
    Beiträge
    718
    Ja, aber das Problem ist ja das ich es nicht hinbekomme
    Ich hab schon sehr viel über Timer gelesen, so ist es nicht.

    Mich wundert aber auch das keiner einen Codeschnipsel oder so postet, anscheinend ist es doch nicht so einfach.
    RGB-IR-Lampe, Catwiesel Bot, PC Terminal, Schrittmotoransteuerung, Elektroschocker, Stundenplan... www.stefan-reible.de

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Hallo Lenox,

    Mich wundert aber auch das keiner einen Codeschnipsel oder so postet, anscheinend ist es doch nicht so einfach.
    Wieso, dein Code vom 8.7. klappt doch im Prinzip!

    Nur die Frequenz noch nicht.
    Erklärung: Wenn du 40000x pro Sekunde toggelst, bekommst du nur die Hälfte deiner gewünschten Frequenz.

    Probier 'mal: Startwert = 65389

    Gruß Dirk

Seite 1 von 6 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •