Re: Analog/Digital Wandler Kategorie: CC-Pro Unit & Appl.Board (von Max - 13.05.2014 18:18) | |
Als Antwort auf Re: Analog/Digital Wandler von NOOBIE - 13.05.2014 15:40
| |
> > > > > > > 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 | |
Antwort schreiben Antworten: Re: Analog/Digital Wandler (von NOOBIE - 14.05.2014 15:51) Re: Analog/Digital Wandler (von Max - 14.05.2014 21:44) Re: Analog/Digital Wandler (von NOOBIE - 23.05.2014 18:07) Re: Analog/Digital Wandler (von NOOBIE - 25.05.2014 18:35) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum