-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: brauche dringend hilfe aplausometer

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    04.08.2007
    Ort
    Bregenz
    Alter
    41
    Beiträge
    72

    brauche dringend hilfe aplausometer

    Anzeige

    Hallo, ich hoffe ihr können mich helfen
    Ich hab ein ein aplausometer gebaut für die weihnachtsfeier von meine firma und die is morgen , es handelt sich um ein led bargraph mit 48 spalten und 10 reihen leds , 3 led spalten sind eine stufe also 30 leds , benutze ein atmega 32 und benutze 2 ports (portd c und d ) , also hab ich ins gesamt 16 stufen. zum messen der lautstärke benutze ich ein elekret mikrophon , dazu hab ich ein verstärker gebaut am adc 0, zum einstellen der empfindlichkeit verwende ich ein poti am adc 1
    Mein problem ist das ich erst heute fertig geworden bin mit dem bau , wegen lieferverzug von den leds , hab ein program geschrieben aber es ist nicht so wie ich es will .
    ich möchte das die leds ruhiger werden , und das der maximal wert länger angezeigt wird , ich hatte schon der tip bekommen das ich es mit ein kondensator versuchen soll oder mit ein wait in mein program mit beiden verlöschen die leds zu schnell , hatt jemand vieleicht eine idee wie ich das machen kann ? oder bin ich falsch vom einsatz her das ich das messen kann mit ein lautsprecher ?

    da ist mein code
    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    
    Config Portc = Output
    Config Portd = Output
    
    
    
    Config Adc = Single , Prescaler = Auto , Reference = Internal
    Dim Micro As Word
    Dim Poti As Word
    Dim Miceing As Word
    Dim Zeit As Word
    Dim A As Word
    Dim B As Word
    Dim C As Word
    Dim D As Word
    Dim E As Word
    Dim F As Word
    Dim G As Word
    Dim H As Word
    Dim I As Word
    Dim J As Word
    Dim K As Word
    Dim L As Word
    Dim M As Word
    Dim N As Word
    Dim O As Word
    Dim P As Word
    
    
    
    
    
    
    
    
    
    
    
    
    Start Adc
    
    
    
    
    
     Do
    
      Waitms 20
    Poti = Getadc(1) - 130
    
    Micro = Getadc(0) * 4
    
    A = Poti + 700
    B = Poti + 750
    C = Poti + 850
    D = Poti + 950
    E = Poti + 1050
    F = Poti + 1200
    G = Poti + 1400
    H = Poti + 1600
    I = Poti + 1800
    J = Poti + 2000
    K = Poti + 2200
    L = Poti + 2400
    M = Poti + 2600
    N = Poti + 2800
    O = Poti + 3000
    P = Poti + 3200
    
    
    If Micro > A Then
    Portc.1 = 0
    
    Else
    
    Portc.1 = 1
    
    End If
    If Micro > B Then
    Portc.0 = 0
    
    Else
    
    Portc.0 = 1
    End If
    If Micro > C Then
    Portc.3 = 0
    
    Else
    
    Portc.3 = 1
    End If
    If Micro > D Then
    Portc.2 = 0
    
    Else
    Portc.2 = 1
    End If
    If Micro > E Then
    Portc.5 = 0
    Else
    
    Portc.5 = 1
    End If
    
     If Micro > F Then
    Portc.4 = 0
    
    Else
    
    Portc.4 = 1
    End If
    If Micro > G Then
    Portc.7 = 0
    
    Else
    Portc.7 = 1
    End If
    If Micro > H Then
    Portc.6 = 0
    
    Else
    Portc.6 = 1
    End If
      If Micro > I Then
    Portd.1 = 0
    
    
    Else
    
    Portd.1 = 1
    End If
    If Micro > J Then
    Portd.0 = 0
    
    
    Else
    
    Portd.0 = 1
    End If
    If Micro > K Then
    Portd.3 = 0
    
    
    Else
    
    Portd.3 = 1
    End If
    If Micro > L Then
    Portd.2 = 0
    
    Else
    Portd.2 = 1
    End If
    If Micro > M Then
    Portd.5 = 0
    
    
    Else
    
    Portd.5 = 1
    End If
    
     If Micro > N Then
    Portd.4 = 0
    
    
    Else
    
    Portd.4 = 1
    End If
    If Micro > O Then
    Portd.7 = 0
    
    Else
    Portd.7 = 1
    End If
    If Micro > P Then
    Portd.6 = 0
    
    Else
    Portd.6 = 1
    End If
    
    
    Loop

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.556

    Re: brauche dringend hilfe aplausometer

    Hi Carlos31,

    Zitat Zitat von Carlos31
    ... aplausometer ... für die weihnachtsfeier von ... und die is morgen ...
    Ich fürchte, nun hast Du ja wirklich ein Problem, leider. Nachdem Du hier schon mehrfach zu diesem Thema gefragt hast
    mit dem applausometer fings an
    die Probleme mit der Verschaltung der LED´s
    und möglicherweise noch ein Softwareproblem
    fürchte ich, dass der verbleibende Zeitraum für die Inbetriebnahme nicht mehr reicht. Mit dem Code kann ich Dir leider nicht helfen, da ich nur C kann - und das schlecht.

    Trotz alledem - viel Glück und Erfolg
    Ciao sagt der JoeamBerg

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    04.08.2007
    Ort
    Bregenz
    Alter
    41
    Beiträge
    72
    ja da hast du recht leider
    hab diese vorwiederstände alle schon brav reingelötet 480 genau gesagt , nur mit mein program hänge ich im moment , und find niergends im internet ein ähnliches beispiel in Bascom , und ob es mit ein mikrofon am adc so was realisieren kann , mit music klappt es wunderbar , aber aplausse sind was anders .
    danke trotzdem

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    hallo,
    ich kann kein Bascom und versuche nur zu helfen, weil es sich ja scheinbar um einen notfall handelt

    zum einen, aber das wird dein problem nicht lösen, würde ich mehrere ADC werte aufsummieren und durch die anzahl der wandlungen teilen. also quasi den mittelwert bilden.

    dann hast du einen wert für "micro" den du mit einer (neu einzufügenden) variable "max" vergleichst. ist micro > max wird max = micro. andernfalls wird nichts getan. max wird auf dem display dargestellt und voila hast du eine anzeige, die den "lautesten applaus" lange anzeigt. sogar zu lange, denn max kann ja nicht mehr kleiner werden. also müsste man max "langsam" wieder klein werden lassen (alle sekunde oder so), evtl mit einem max=max/2 (auf die art geht der applaus schneller wieder richtung 0 als mit einem max=max-1).

    vielleicht hilfts ja. gruesse von der katz

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    04.08.2007
    Ort
    Bregenz
    Alter
    41
    Beiträge
    72
    hallo
    Ich hab mein ein 2 tes program vielleicht wird es hier einfacher , ich muss nur die led anzeige ruhiger werden lassen , das die leds rauf und runter langsamer und das sie nicht plötzlich erscheinen ich hoffe das jemand eine lösung weisst , ich bin verzweifelt am probieren .
    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $hwstack = 32
    $swstack = 10
    $framesize = 40
     $sim
    Config Portc = Output
    Config Portd = Output
    
    Dim A As Word
    Dim Led_pos As Word
    Dim Bereich As Word
    Dim Bar_muster As Word
    Dim Mic As Word
    Dim Poti As Word
    Dim Maximal As Single
    Const Schritt = 16
    
    Config Adc = Single , Prescaler = Auto , Reference = Internal
    Start Adc
    Do
    
         Bar_muster = Lookup(led_pos , Bar_form)
    
      Portc.1 = Bar_muster.15
      Portc.0 = Bar_muster.14
      Portc.3 = Bar_muster.13
      Portc.2 = Bar_muster.12
      Portc.5 = Bar_muster.11
      Portc.4 = Bar_muster.10
      Portc.7 = Bar_muster.9
      Portc.6 = Bar_muster.8
      Portd.1 = Bar_muster.7
      Portd.0 = Bar_muster.6
      Portd.3 = Bar_muster.5
      Portd.2 = Bar_muster.4
      Portd.5 = Bar_muster.3
      Portd.4 = Bar_muster.2
      Portd.7 = Bar_muster.1
      Portd.6 = Bar_muster.0
    
    
    A = Getadc(0)
    Poti = Getadc(1)
    If Poti > 620 Then
    Poti = 620
    Else
    Poti = Getadc(1)
    End If
    Maximal = Poti + 204
    
    Mic = A - 140
    Bereich = Maximal / Schritt
    Led_pos = Mic / Bereich
    
    
    
    
           Loop
    Return
    
    
    Bar_form:
    Data &B1111111111111111%
    Data &B1111111111111110%
    Data &B1111111111111100%
    Data &B1111111111111000%
    Data &B1111111111110000%
    Data &B1111111111100000%
    Data &B1111111111000000%
    Data &B1111111110000000%
    Data &B1111111100000000%
    Data &B1111111000000000%
    Data &B1111110000000000%
    Data &B1111100000000000%
    Data &B1111000000000000%
    Data &B1110000000000000%
    Data &B1100000000000000%
    Data &B1000000000000000%
    Data &B0000000000000000%

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    aber da hast du doch gar nichts von meinen vorschlägen umgesetzt. warum fragst du denn dann um hilfe?

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    04.08.2007
    Ort
    Bregenz
    Alter
    41
    Beiträge
    72
    hallo robocat
    es tut mir leid du hast schon recht , aber ich bin leider nicht so erfahren in Bascom (bin anfänger), und deine idee ist gut aber kann ich sie leider nicht umstzen da mir die kenntnise fehlen wie ich die adc werte speichern kann , und danach es dividieren zu der anzahl der messungen weiss ich nicht wie aber danke trotzdem ,

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    04.08.2007
    Ort
    Bregenz
    Alter
    41
    Beiträge
    72
    hätte ich nie gedacht das es so schwer sein kann ein aplausometer zu machen , hat sonst keiner eine idee wie ich es in Bascom anstelle , sagen wir mal 10 adc messungen zu machen und danach es dur 10 zu dividieren um ein mittelwert zu erreichen ? , und zum zweiten das die leds langsamer reagieren danke in voraus ; bin am verzweifeln
    P.S hab gestern die halbe nacht im internet danach gesucht wie ich das lösen kann

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Mittelwert z.B.:
    Code:
    A = 0
    For I = 1 To 10
       A = A + Adc(0)
       Waitms 5 
    Next I
    A = A / 10
    Gruß Dirk

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    04.08.2007
    Ort
    Bregenz
    Alter
    41
    Beiträge
    72
    Dankeschön
    hab es schon in mein program implementiert , danach hab ich gesucht ,
    die spitzen sind endlich weg , das einzige was mir fehlt ist das die leds langsamer abfallen , bzw ruhiger werden , ich werde heute ein video machen von dem ding und es hier reinstellen hoffentlich muss ich mich nicht schämen . ihr alle waren eine riesen hilfe
    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    
    Config Portc = Output
    Config Portd = Output
    Dim I As Byte
    Dim A As Word
    Dim Led_pos As Word
    Dim Bereich As Word
    Dim Bar_muster As Word
    Dim Mic As Word
    Dim Poti As Word
    Dim Maximal As Word
    Const Schritt = 16
    
    Config Adc = Single , Prescaler = Auto , Reference = Internal
    Start Adc
    
    
    
    
    
    
    
    Do
    
    
         Bar_muster = Lookup(led_pos , Bar_form)
    
    
    
    
    
    
      Portc.1 = Bar_muster.15
      Portc.0 = Bar_muster.14
      Portc.3 = Bar_muster.13
      Portc.2 = Bar_muster.12
      Portc.5 = Bar_muster.11
      Portc.4 = Bar_muster.10
      Portc.7 = Bar_muster.9
      Portc.6 = Bar_muster.8
      Portd.1 = Bar_muster.7
      Portd.0 = Bar_muster.6
      Portd.3 = Bar_muster.5
      Portd.2 = Bar_muster.4
      Portd.5 = Bar_muster.3
      Portd.4 = Bar_muster.2
      Portd.7 = Bar_muster.1
      Portd.6 = Bar_muster.0
    
    
    
    
    
    
    Poti = Getadc(1)
      A = 0
    For I = 1 To 10
       A = A + Getadc(0)
       Waitms 5
    Next I
    A = A / 15
    
    
    
    
    If Poti > 620 Then
    Poti = 620
    Else
    Poti = Getadc(1)
    End If
    Maximal = Poti + 204
    
    Mic = A - 140
    Bereich = Maximal / Schritt
    Led_pos = Mic / Bereich
    
    
    
    Loop
    
    Return
    
    
    Bar_form:
    Data &B1111111111111111%
    Data &B1111111111111110%
    Data &B1111111111111100%
    Data &B1111111111111000%
    Data &B1111111111110000%
    Data &B1111111111100000%
    Data &B1111111111000000%
    Data &B1111111110000000%
    Data &B1111111100000000%
    Data &B1111111000000000%
    Data &B1111110000000000%
    Data &B1111100000000000%
    Data &B1111000000000000%
    Data &B1110000000000000%
    Data &B1100000000000000%
    Data &B1000000000000000%
    Data &B0000000000000000%

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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