Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Analog/Digital Wandler Kategorie: CC-Pro Unit & Appl.Board (von NOOBIE - 23.05.2014 18:07)
Als Antwort auf Re: Analog/Digital Wandler von Max - 14.05.2014 21:44
Ich nutze:
CC-Pro 128 Application Board
> > > > > > > > > > Dim wert1, wert2 As Single
> > > > > > > > > > Dim zeile1(10) As Char
> > > > > > > > > > Dim zeile2(10) As Char
> > > > > > > > > >
> > > > > > > > > > Sub main()
> > > > > > > > > >   LCD_Init()
> > > > > > > > > >   LCD_ClearLCD()
> > > > > > > > > >   LCD_CursorOff()
> > > > > > > > > >
> > > > > > > > > >   zeile1=" 0.00"
> > > > > > > > > >   zeile2=" 0.00"
> > > > > > > > > >   Do While (True)
> > > > > > > > > >     ADC_Set(ADC_VREF_VCC,0)
> > > > > > > > > >     wert1 = ADC_Read()*5.0/1024.0
> > > > > > > > > >     ADC_Set(ADC_VREF_VCC,1)
> > > > > > > > > >     wert2 = ADC_Read()*5.0/1024.0
> > > > > > > > > >     Ausgabe()
> > > > > > > > > >
> > > > > > > > > >     AbsDelay(500)
> > > > > > > > > >   End While
> > > > > > > > > > End Sub
> > > > > > > > > >
> > > > > > > > > > Sub Ausgabe()
> > > > > > > > > > Dim einheit(3) As Char
> > > > > > > > > >   einheit = " V"
> > > > > > > > > >     If wert1>4.99 Then
> > > > > > > > > >             zeile1=" HHHH"
> > > > > > > > > >     Else
> > > > > > > > > >             Str_WriteFloat(wert1,2,zeile2,1)   !!!!Du hast zwei Mal zeile2!!!
> > > > > > > > > >     End If
> > > > > > > > > >
> > > > > > > > > >    If wert2>4.99 Then
> > > > > > > > > >             zeile2=" HHHH"
> > > > > > > > > >     Else
> > > > > > > > > >             Str_WriteFloat(wert2,2,zeile2,1)
> > > > > > > > > >     End If
> > > > > > > > > >
> > > > > > > > > >     LCD_CursorPos(0x00)
> > > > > > > > > >     LCD_WriteText(zeile1)
> > > > > > > > > >     LCD_WriteText(einheit)
> > > > > > > > > >     LCD_CursorPos(0x40)
> > > > > > > > > >     LCD_WriteText(zeile2)
> > > > > > > > > >     LCD_WriteText(einheit)
> > > > > > > > > > End Sub
> > > > > > > > > >
> > > > > > > > > > hi ich bin totaler neuling im programmieren und entschuldige mich schon mal für die fragen!
> > > > > > > > > > also ich brauche für ein schulprojekt den C-Control pro mega128 CAN damit will ich eine spannung
> > > > > > > > > > messen und auf dem display anzeigen lassen!
> > > > > > > > > > nun mein problem: an adc0 liegen ständig 4,6V an und an adc1 schwankt die spannuing zwischen 1.4V
> > > > > > > > > > und 1.7V obwohl ich da nichts angeschlossen habe! adc0 funktioniert überhaupt nicht und wenn
> > > > > > > > > > an adc1 gegen gnd eine 1.5V batterie messe zeigt das display 0.00 an. ich weiÃ? absolut nicht mehr
> > > > > > > > > > weiter und hoffe ihr könnt mir helfen.
> > > > > > > > > > schonmal danke im vorraus
> > > > > > > > > > mfg NOOBIE
> > > > > > > > >
> > > > > > > > > Hallo,
> > > > > > > > > offene Ports haben immer einen undefinierten zustand, weil sie wie eine Antenne
> > > > > > > > > wirken. Du solltest bei der Fehlersuche auch immer mit einem
> > > > > > > > > Msg_Befehl arbeiten. Mit Msg kannst du zB sofort erkenne ob
> > > > > > > > > du was misst oder ob du Schmarrn in der Ausgabe programmiert hast,
> > > > > > > > > wie in deinem Fall.
> > > > > > > > > Komma null ist auch unnötig.
> > > > > > > > > GruÃ? Max
> > > > > > > > >
> > > > > > > > > Dim wert1, wert2 As Single
> > > > > > > > > Dim zeile1(10) As Char
> > > > > > > > > Dim zeile2(10) As Char
> > > > > > > > >
> > > > > > > > > Sub main()
> > > > > > > > >    LCD_Init()
> > > > > > > > >    LCD_ClearLCD()
> > > > > > > > >    LCD_CursorOff()
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >    Do While (True)
> > > > > > > > >       ADC_Set(ADC_VREF_VCC,0)
> > > > > > > > >       wert1 = ADC_Read()
> > > > > > > > >       wert1 = wert1 *5/1024
> > > > > > > > >       Msg_WriteFloat(wert1)
> > > > > > > > >       Msg_WriteText("  wert1")
> > > > > > > > >       Msg_WriteChar(13)
> > > > > > > > >       ADC_Set(ADC_VREF_VCC,1)
> > > > > > > > >       wert2 = ADC_Read()
> > > > > > > > >       wert2 = wert2 *5/1024
> > > > > > > > >       Msg_WriteFloat(wert2)
> > > > > > > > >       Msg_WriteText("  wert2")
> > > > > > > > >       Msg_WriteChar(13)
> > > > > > > > >       Ausgabe()
> > > > > > > > >       AbsDelay(500)
> > > > > > > > >    End While
> > > > > > > > > End Sub
> > > > > > > > >
> > > > > > > > > Sub Ausgabe()
> > > > > > > > > Dim einheit(3) As Char
> > > > > > > > >     zeile1=""
> > > > > > > > >     zeile2=""
> > > > > > > > >     einheit = " V"
> > > > > > > > >     If wert1>4.99 Then
> > > > > > > > >        zeile1=" HHHH"
> > > > > > > > >     Else
> > > > > > > > >        Str_WriteFloat(wert1,2,zeile1,0)
> > > > > > > > >     End If
> > > > > > > > >
> > > > > > > > >     If wert2>4.99 Then
> > > > > > > > >        zeile2=" HHHH"
> > > > > > > > >     Else
> > > > > > > > >        Str_WriteFloat(wert2,2,zeile2,0)
> > > > > > > > >     End If
> > > > > > > > >
> > > > > > > > >     LCD_CursorPos(0x00)
> > > > > > > > >     LCD_WriteText(zeile1)
> > > > > > > > >     LCD_WriteText(einheit)
> > > > > > > > >     LCD_CursorPos(0x40)
> > > > > > > > >     LCD_WriteText(zeile2)
> > > > > > > > >     LCD_WriteText(einheit)
> > > > > > > > > End Sub
> > > > > > > >
> > > > > > > > >> danke für die antwort Max!
> > > > > > > > >> ich habe das programm so geändert wie du es geschrieben hast aber jetzt schwanken die messwerte
> > > > > > > > >> beider eingänge zwischen ca. 1.5V und 2,5V ohne dass ich etwas messe! wie kann ich es hinbekommen
> > > > > > > > >> , dass wenn ich nichts messe auch 0,0V angezeigt wird? oder messe ich falsch?
> > > > > > > > >> mfg NOOBIE
> > > > > > >
> > > > > > > Hallo NOOBIE,
> > > > > > > wenn du 0,0V haben willst, dann musst du deinen Eingang mit Masse verbinden bzw eine
> > > > > > > Spannungsquelle mit 0,0V anschlieÃ?e.
> > > > > > > Offene Eingänge zeigen immer dieses Verhalten, weil die Eingänge sehr hochohmig sind.
> > > > > > > Was ist wenn du deine Batterie an die Eingänge hältst?
> > > > > > >
> > > > > > > GruÃ? Max
> > > > > >
> > > > > > > Hallo ich bins nochmal NOOBIE,
> > > > > > > ich habe jetzte einen widerstand ein poti und eine z-diode vor den eingang des Controlers
> > > > > > > geschaltet um höhere Spannungen bis 15V messen zu können (Poti 0-50kOhm, Widerstand 10kOHM und die
> > > > > > > Z-diode(Schwellspannung 4,7V) Um den Controler vor zu hohen Spannungen zu schützen!
> > > > > > > jetzt zu meiner Frage:
> > > > > > > ich möchte jetzt über eine Darlington Transistorschaltung ein Strom schalten nur kann ich in der
> > > > > > > des Controlers oder im Netz nichts dazu finden wie ich einen ausgang schalte um die transistoren
> > > > > > > anzusteuern? dabei sollte im Bereich 13 -14V der stom durchgeschaltet weden!
> > > > > > > Schon mal ein Gro�es Dankeschön ihr konntet mir bis jetzt sehr gut weiterhelfen
> > > > > > > GruÃ? NOOBIE
> > > > >
> > > > > Hallo,
> > > > > schau mal da http://www.c-control-pro.de/documentation/index.html
> > > > >
> > > > >  Hadware > AVR32Bit > Applicationboard > Schaltplan
> > > > >
> > > > > und da schaust du dir Output 1&2 oder Relais an.
> > > > >
> > > > > Oder
> > > > >
> > > > > http://www.b-l-w.de/serialrelay.php
> > > > >
> > > > > GruÃ? Max
> > > > >
> > > > >> Danke für die Antwort Max,
> > > > >> aber leider ich kann da nichts finden! Ich möchte das bestehende Programm so weit erweitern,
> > > > >> dass wenn meine gemessene Spannung 13V erreicht soll ein Transistor angesteuert werden nur weiÃ?
> > > > >> leider nicht wie ich einen Ausgang dazu definieren soll oder welche Befehle ich dazu brauche!
> > > > >> danke schonmal im vorraus!!!
> > > > >> gruÃ? NOOBIE
> > >
> > > Hallo NOOBIE,
> > > öffne deine IDE dann Hilfe > Demoprogramme > Basic > Port > Ports_Simple > Ports.cprj
> > > in disem Beispiel wird eine LED geschaltet - ist aber von der Ansteuerung her das gleiche wie bei
> > > einem Relais.
> > >
> > > Die Hardware hast du verstanden???
> > >
> > > GruÃ? Max
> > >
> > > > Was soll ich an der Hardware nicht verstanden haben? Laut der Anleitung des C-Control
> > > > kann man die 8 AD Eingänge auch als ausgänge schalten, oder?!?!?
> >
>
> Hallo,
> du schreibst hald nichts, ob du von 0 bis 15V am Eingang inzwischen auswertbare Werte bekommst.
>
> GruÃ? Max
>
>
> > Hallo,
> > also mein Programm geht jetzt aber ich habe noch ein Problem mit der Spannungsmessung!
> > ich habe ein Potentiometer (0-50KOhm) und einen 10KOhm Widerstand in Reihe geschaltet als
> > Spannungsteiler nur bekomme ich keine auswertbaren Werte. den Den Eingeng des AD-Wandlers habe
> > ich zwischen das Poti und den Widerstand gelegt!an die drei Anschlüsse des Potis habe ich einmal
> > die Eingangsspannung, an den anderen GND und an den anderen die die Eingansleitung und den Widerstand
> > gegen GND, parallel zum Widerstand habe ich noch eine Z-Doide zum Schutz des Controlers angeschlossen!
> > Nur bekomme ich keine plausiblen Werte bei einer Eingangsspannung von 0- 15V angezeigt???!!!
> > habe ich da irgendwas falsch angeschlossen oder den falschen Faktor?
> > den Faktor habe ich mit wert1= wert1*5/1023*3 genommen bei einem Poti Widerstand von 20kOhm!?!
> > danke schonmal für die Hilfe Gru� NOOBIE


    Antwort schreiben


Antworten:

Re: Analog/Digital Wandler (von NOOBIE - 25.05.2014 18:35)