-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Gleich zwei Fragen!! Ihr müsst mir weiterhelfen

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.03.2008
    Ort
    Huntlosen
    Alter
    25
    Beiträge
    391

    Gleich zwei Fragen!! Ihr müsst mir weiterhelfen

    Anzeige

    Hallo zusammen,
    ich bin fast am verzweifeln. Könnt ihr mir sagen, wie ich unter Bascom eine Uhr einbinde. ich habe mir das zwar durchgelesen, aber ihrgendwie komme ich nicht mit den befehlen klar. Ich möchte nämlich einen entfernungsmesser bauen, der auf ultraschallsensoren basiert. nun muss ich doch messen, wie viel zeit der schall doch gebraucht hat. mit der echtzeituhr komme ich nicht klar.
    Dann habe ich noch eine zweite frage. Ich möchte gerne ausgerechnete ergebnisse oder variablen gerne speichern, am besten auf einer sd karte, oder auf dem AVR selber. wie mache ich das? Ich kenne das nur so vom c64, dass man einfach seine speicheradresse angegeben hat und gut (save 8,1 zum beispiel wo 8 die geräteadresse und 1 der track auf der diskette darstellt). Geht das auch so einfach beim avr. ich möchte die daten hinterher auch noch abrufen können.

    Ich bedanke mich schon mal in voraus.
    Hunni

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    43
    Beiträge
    377

    Re: Gleich zwei Fragen!! Ihr müsst mir weiterhelfen

    Zitat Zitat von hunni
    ultraschallsensoren basiert. nun muss ich doch messen, wie viel zeit der schall doch gebraucht hat.
    [...]
    Ich möchte gerne ausgerechnete ergebnisse oder variablen gerne speichern
    Hallo Hunni!

    Die Echtzeituhr arbeitet nur im Sekundentakt. Zum Messen von Entfernungen kannst du das vergessen. Nimm lieber schnellen und genauen Quarz. Du kannst die Zeit die vergeht mit einem der eingebauten Timer stoppen.

    Viele AVRs haben einen EEPROM eingebaut. Auf diesem kannst du Daten speichern. Welchen µC setzt du ein? Mit wievielen Daten in welchem Zeitraum rechnest du?

    mfg
    Gerold
    :-)

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.03.2008
    Ort
    Huntlosen
    Alter
    25
    Beiträge
    391
    also ich wollte es mit einem atmega 8 probieren.
    das mit dem timer hört sich gut an. ich wollte das in ungefähr so machen:
    (nur das grundporgramm)

    $regfile = "m8def.dat"
    $crystal = 4000000

    Config Portb.0 = Output
    Config Portb.1 = Input

    Do
    Portb.0 = 1
    'dann soll hier der Timer das Messen
    If Portb.1 = 1 Then 'hier soll er stoppen und mir das ergebnis anzeigen

    end

    Ist meine Überlegung soweit richtig?


    Wie speicher ich das den dann ab, kannst du mir dafür den befehl sagen?

    hunni

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    43
    Beiträge
    377

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Wie lange ist denn das Signal? Vielleicht reicht ja der Pulsein Befehl.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.03.2008
    Ort
    Huntlosen
    Alter
    25
    Beiträge
    391
    also ich habe zwei ultraschallsensoren, ein sender und einen empfänger.
    um jetzt z.b. eine entfernung zu messen nehme ich mir einen gegenstand und lege genau in einer entfernung von einem meter den ultraschallmesser hin.Jetzt kommt der timer ins spiel:
    man misst ganz einfach ab den zeitpunkt, wo man eine kleine spannung am sender anlegt und hört dann auf, wenn am empfänger eine kleine spannung anliegt. soweit konnte ich mir das alleine denken, jetzt brauche ich nur den befehl für den timer.
    Aber die seite die mir python_rocks gegeben hat erklärt das ganz gut.
    nur das mit dem abspeicher n ist mir jetzt noch nicht so ganz klar.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.11.2005
    Ort
    QTH: JO43BC
    Alter
    49
    Beiträge
    112
    Hallo,

    das ganze ist ueberhaupt nicht schwer und tut auch nicht weh.
    Die Erde ist naemlich eine grosse Gooogle. Und auf dieser befindet sich z.B. diese Seite: http://www.icplan.de/seite11.htm

    Bei der Angelika gibt es dazu guenstig die Zutaten. Der Rest ist dann nur noch lesen, verstehen und das Ganze irgendwie umsetzen.

    So, und wie haekelt man die Weichware unter Bascom zurecht? Ganz einfach. Man schaue sich die Schaltung an. Dort sieht man das der US-Sender einfach mittels eines Ports aktiviert wird. Dieser bruellt nun unhoerbar los und der Empfaenger empfaengt irgendwann mal was. Das Empfangene wird in dem LM393 aufbereitet und steht am Kollektor des BC547 als Schaltsignal zur Verfuegung.

    In der Software wird zunaechst der US-Sender eingeschaltet und zugleich Timer0 gestartet. Hier inkrementiere ich mit jedem Timerdurchlauf eine Variable (voll total simpel). Sobald nun das Schaltsignal vom US-Empfaenger kommt, wird beim AVR ein Interrupt ausgeloest. In der Int0_isr wird dann sofort der Timer0 gestoppt und der US-Sender ausgeschaltet (noch simpler). Als naechstes wird der Wert der hochgezaehlten Variable entsprechend umgerechnet (man macht zuvor ein paar Probemessungen und berechnet den Faktor aufgrund einiger definierter Abstaende und der hochgezaehlten Variablenwerte).
    Die dann ausgerechnete Laengenangabe in Zentimeter wird nun auf ein LC-Display zur Anzeige gebracht. Das Ganze geschieht zyklisch alle 500ms.

    Funktioniert uebrigens wunderbar.

    Das ganze war mit googlen, zusammenbruzzeln und Software stricken innerhalb von 4 Stunden erledigt. Und das ohne tagelange Fragerei im Forum. ;)

    Ein paar Bilderchen:
    http://www.elektronik-web.de/atmel/us/

    Die Weichware:
    Code:
    $regfile = "m128def.dat"
    $crystal = 16000000
    $hwstack = 32
    $swstack = 16
    $framesize = 40
    
    Config Pinc.6 = Output
    Config Pind.1 = Output
    Config Pind.0 = Input
    Config Int0 = Falling
    Config Timer0 = Timer , Prescale = 1
    Config Graphlcd = 240 * 64 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 6
    On Timer0 Timer0_isr
    On Int0 Int0_isr
    Enable Timer0
    Enable Int0
    Enable Interrupts
    Stop Timer0
    
    Dim Us As Long
    Dim Cm As Single
    Dim Scm As String * 10
    Us_tm Alias Portd.1
    Us_tm = 1
    Bl Alias Portc.6
    Bl = 1
    Us = 0
    
    Cursor Off
    Cls
    
    Locate 1 , 1
    Lcd "Abstandsmessung mit"
    Locate 2 , 1
    Lcd "Ultraschall"
    Start Timer0
    Us_tm = 0
    
    Do
     Us_tm = 0                              'US-Transmitter An
     Start Timer0
     Waitms 500
    
     Cm = Us / 3.91
     If Cm > 500 Then Scm = "--"
     Scm = Fusing(cm , "#.#")
    
     Locate 5 , 10
     Lcd Scm ; " cm    "
     Locate 10 , 10
     Lcd Us ; "   "
     Us = 0
    
    Loop
    
    End
    
    Timer0_isr:
     Incr Us
    Return
    
    Int0_isr:
     Stop Timer0
      Us_tm = 1                             'US-Transmitter Aus
    Und btw: Wenn Du im Betreff dieses Fred's etwas gehaltvolleres wie z.B. "Problem mit Ultraschallabstandsmessung" geschrieben haettest, wuerde dieser Thread sicherlich mehr Beachtung finden. Somit erhoehen sich die Chancen auf Antworten.

    Mit freundlichen Gruessen
    Digitali

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.03.2008
    Ort
    Huntlosen
    Alter
    25
    Beiträge
    391
    ich gebs auf, jetzt versteh ich die welt nicht mehr, was war an meiner behauptung so falsch. egal ich werd mir ihrgendetwas anderes einfallen lassen müssen, da ich jetzt nix mehr verstehe.
    Bin woll doch noch zu sehr auf Commodore 64 getrimmt.
    hunni

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.03.2008
    Ort
    Huntlosen
    Alter
    25
    Beiträge
    391
    P.S. trotzeem danke für eure antworten und mühen mir das klar zu machen, aber jetzt zweifel ich an meinen Programmiererischen fähigkeiten.
    Ich glaub ds wird mir zu komliziert. Ich wollte mir eigentlich folgendes bauen:

    Ich wollte den Distanzsensor in mein Modellflugzeug einbauen und gucken, wie hoch ich komme. Diese Werte wollte ich dann speichern.

    NUR ICH VERSTEH ES NICHT!!!

    Ich komm da nicht mit, einige befehle habe ich in meiner Basic zeit noch nie benutzt.

    Trotzdem noch mal danke für eure mühen, aber ich lass es jetzt lieber bleiben.

    Aber das mit dem Epromm versteh ich jetzt.

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.03.2008
    Ort
    Huntlosen
    Alter
    25
    Beiträge
    391
    Es ist jetzt 10:00 und ich konnte einfach nicht locker lassen und jetzt habe ich es verstanden!!! Ich habe mir das alles noch 3 mal durchgelesen und am symolator aufprobiert und jetzt kann ich es!!!
    Vielen dank
    Hunni

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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