- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Wasserstandsanzeige f. Brunnen

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    13.08.2004
    Ort
    Esting
    Alter
    44
    Beiträge
    37
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    sorry das ich jetzt erst Antworte.

    Also die Ü Eier Variante habe ich jetzt mangels geeigneter Materialien aufgegeben.

    Ich habe hier im Forum einen Elektor Artikel gefunden, welcher nach der Variante wie sie Tido geschrieben hat, funktionier.

    Kurzfassung:
    ---------------

    Es wird eine Umlenkrolle mit Schwimmer und Gegengewicht an dem Brunnen Rand angebracht. An die Welle der Rolle kommt ein 10Gang Wendelpoti dann kann man den Strom messen und die Höhe umrechnen.

    Problem bei der Sache ist das bei einer Umlenkrolle mit 50cm Durchmesser und bei den 10 Umdrehungen des Potis nur 157cm höhe überwunden werden können.

    Also muss eine andere Lösung her.
    Ich habe nun meinen Versuchsaufbau wie folgt gemacht:

    ich habe eine Umlenkrolle mit Umfang 22 cm genommen und dort zwei Magnete versetzt angebracht.
    An die Halterung der Rolle habe ich nun 2 Reed Kontakte angebracht.
    Dadurch das die Magnete versetzt an der Rolle sind kann ich die Richtung der Rolle erkennen und kann praktisch unbegrenzt viele Umdrehungen registrieren.
    Ich habe das ganze mit meiner alten C-Control Micro getestet und funktioniert wunderbar.
    Ich kann nun die Brunnentiefe in 22cm Schritten registrieren.

    Ein kleines Problem gibt es aber noch, die Reed Kontakte schalten beim vorbeifahren der Magnete manchmal 2 mal und damit kommt die MicroControl durcheinander. Wenn ich den Durchmesser des Magnetpoles verkleinere geht es besser.
    Ich werde das ganze jetzt nochmal mit Lichtschranke oder LDR testen, damit sollte es Störunanfälliger sein.

    Ich mache am WE mal eine Zeichnung und stell sie hier ein.

    Hier das Programm der C-Control:
    Code:
    define drehl port[5]  'erster ReedKontakt
    define drehr port[6]  'zweiter Reedkontakt
    define rot port[4]    'LED ROT
    define gruen port[2]  'LED Gruen
    define x byte         'Variable für die höhenwerte
    
    baud 9600: pause 20
    
    x=0 'Variable auf Null setzen
    
    #start
    put x  'Wert senden
    if drehl = on then goto linksw  'ersten Reed abfragen
    if drehr = on then goto rechtsw 'zweiten Reed abfragen
    if x < 23 then goto rot      'Ampel ROT schalten bei zu geringen Stand
    if x >= 23 then goto gruen   'Ampel Gruen schalten bei guten Stand
    goto start
    
    #linksw
    if drehl = off then goto links  'warten Kontakt aus
    put x  'daten senden
    goto linksw
    
    #links
    if drehr = on then goto plus
    if drehl = on then goto start
    put x
    goto links
    
    #rechtsw
    if drehr = off then goto rechts
    put x
    goto rechtsw
    
    #rechts
    if drehl = on then goto minus
    if drehr = on then goto startre
    put x
    goto rechts
    
    #startre
    if drehr = off then goto start
    put x
    goto startre
    
    #startli
    if drehl = off then goto start
    put x
    goto startli
    
    #plus
    put x
    if drehr = off then x = x+1 else goto plus
    put x
    goto start
    
    #minus
    put x
    if drehl = off then x = x - 1 else goto minus
    put x
    goto start
    
    #gruen
    rot = off
    gruen = on
    goto start
    
    #rot
    rot = on
    gruen = off
    goto start
    Damit man nicht immer PC angeschaltet haben muss, gibt es noch eine Ampel, welche bei zu geringen Wassestand Rot leuchtet.

    Die gesendeten Daten werden dann mit einen Visual Basic Programm am PC ausgewertet.
    Bei Interessse kann ich den Quellcode auch Posten.

    MFG

    Ronny

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    13.08.2004
    Ort
    Esting
    Alter
    44
    Beiträge
    37
    Hi@all

    so nun hier die Zeichung und der Screenshot des VB Programms:
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken rolle_161.jpg   screenshot_147.jpg  

  3. #13
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Zitat Zitat von dr_Bal
    Bei Interessse kann ich den Quellcode auch Posten.
    Hallo,

    mich würde er interessieren, vllt. ist das der VB-Einstieg, den ich schon so lange suche...
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    13.08.2004
    Ort
    Esting
    Alter
    44
    Beiträge
    37
    Hallo Tido,


    Der Code ist echt Simpel, ist nur aus einen MSomm (Serielle Schnittstelle) beispiel und einigen basics zusammengesetzt.

    Wenn du noch fragen hast melde dich.

    anbei der Quellcode, sowie der Link zu der vbp (visualBasic 6) datei.

    Code:
    '#################################################################
    '#                                                               #
    '#  Benötigte Elemente:                                          #
    '#  -Label2 & label3                                             #
    '#  -mscomm1                                                     #
    '#  -progressbar1                                                #
    '#                                                               #
    '#################################################################
    
    
    Private Sub Form_Load()
    ' Fire Rx Event Every x Bytes
    MSComm1.RThreshold = 1
    MSComm1.SThreshold = 1
    ' When Inputting Data, Input y Bytes at a time
    MSComm1.InputLen = 1
    MSComm1.Settings = "9600,N,8,1" 'Com port einstellungen
    ' Open COM1
    MSComm1.CommPort = 1  'nummer des Com Ports
    MSComm1.PortOpen = True 'Com Port öffnen
    End Sub
    ' Kommunikationsereignis
    Private Sub MSComm1_OnComm() 'Fehlerhandling COM Schnittstelle
      Select Case MSComm1.CommEvent
        Case comOverrun
          MsgBox "Datenverlust!"
    
        Case comRxOver
          MsgBox "Datenverlust!"
    
        Case comEvReceive
        
        'jetzt gehts los
        
          xx = MSComm1.Input  'Variable "xx" mit dem Empfangen Daten füllen
          
          daten = Asc(xx) 'Empfangenen Daten in Ascii umwandeln
          If daten > 71 Then daten = 0 '71 maximale Umdrehungen der Rolle = höhe des Brunnen, wenn größer als 71 dann null als höhe anzeigen
          If daten < 12 Then Label3.ForeColor = &HFF& 'Farbe der höhenanzeige auf rot setzen
          If daten > 12 Then Label3.ForeColor = &HFFFF& 'Farbe der höhenanzeige auf gelb setzen
          If daten >= 23 Then Label3.ForeColor = &HFF00& 'Farbe der höhenanzeige auf grün setzen
    
          Label3.Caption = daten * 0.22 & " METER" 'höhe ausrechnen und im Label3 anzeigen, 22 cm hat der Umfang des Rades
          ProgressBar1.Value = daten 'Progressbar setzen
          Label2.Caption = "letzter Empfang: " & "Datum: " & Date & " um: " & Time 'Label2 zeigt den letzten Empfang an
      End Select
    End Sub
    Brunnen.zip Project Datei


    Ciao Ronny

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    23.08.2007
    Beiträge
    40
    andere Sensorlösung wäre der Druck gewesen. Wenn Du den Wasserdruck (unten abgenommen) entweder auf einen Drucksensor gibst (Wasser komprimiert die Luft in einem Rohr) oder aber eben ein Steigrohr erfasst (gut detektierbarer Schwimmer steigt in einem Rohr und wird mit Hallsensor oder optisch erfasst), hast Du kein Problem mit Verschmutzen o.ä.
    Andere Lösungen sind Ultraschall - Laufzeitmessung (Abstandswarnerprinzip) oder Kapazitive Messung (Quantum stellt da tolle Bausteine her).

    HTH
    Carsten

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad