- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 34

Thema: lcd display ausfahrsteuerng

  1. #21
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    Anzeige

    Praxistest und DIY Projekte
    LCDs hab ich schon angesteuert, Spannungen auch schon "gemessen"

    ich hoffe, dass der NTC/PTC mehr als 500Ohm hat, sonst würde einiges an Strom fliesen. (sry, beim ersten kommt auch ein "T" rein, das heist "Negative Temperature irgendwas" bzw. "Positive Temperature irgendwas" , ich weis nicht mehr, für was das "C" stand..)

    Ich würde nach dem Mittelwert schauen, den der Widerstand bei den zu erwartenden Temperaturen hat. Diesen Wert nimmst du etwa für den Festwiderstand. Dann hast du eine große mögliche Schwankung der Spannung und kannst genauer auswerten.


    EDIT:

    Am Display sind 6 Anschlüsse zum MC geführt, dann kann es per 4-Bit-Ansteuerung angesteuert werden (es wird immer ein halbes Byte übertragen). die Anschlüsse sind(nicht unbedingt nach der Reihenfolge):
    - DB4 (Datenbit4)
    - DB5 (Datenbit5)
    - DB6
    - DB7
    - RS (Daten oder Anweisung)
    - E (Enable)

    so kann man bei Bascom (mit diesen Kürzeln und den zugehörigen Pins) das Display angeben, initialisieren lassen und dann einfach mittels
    Code:
     lcd "Temperatur" ; temp
    anzeigen lassen (hier den Text "Temperatur" und den Wert der Variablen "temp")
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

  2. #22
    nagut dann wert ich mich mal an der Programmierung versuchen... das wird bestimmt nicht einfach.
    wert erst mal mit normalen text anfangen, und dann die werte versuchen Azeigen zulassen....
    das bereitet mir jetzt schon schlaflose Nächte

  3. #23
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    I wo.
    im RN-Wiki steht alles drin, was du brauchst, keine Sorge!

    Nur logisch denken musst du selber können, dann geht das.

    gute Idee, das mit dem "erst klein anfangen". versuch erstmal ne LED zum Blinken zu bringen, dann "Hallo Welt!" oder anderes zu schreiben, dann mal n bisschen rechnen und dann mal die Ersten ADC-Sachen machen.
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

  4. #24
    Hallo,
    so hab mir jetzt mal 2 tempsensoren besorgt einer ist ein Öl Temp Sensor(NPC) betriebszustand 1,8kohm festwiderstand für spannungsteiler 1,8kohm
    der andere für Abgas(PTC NiCr Sensor)
    zum probieren hab ich den NPC genommen.
    folgen code hab ich mir zusammen geschrieben
    Code:
    Config Adc = Single , Prescaler = Auto
    Start Adc
    Dim Temp1 As Word , Portc.5 As Byte
    Portc.5 = 0
    Do
      Temp1 = Getadc(portc.5)
      Print "ADC-Pin " ; Portc.5 ; ": Wert " ; Temp1
      Incr Portc.5
      If Portc.5 > 7 Then Portc.5 = 0
      Waitms 300
      Cls
      Locate 1 , 1
      Lcd "Temp" ; Temp1
    Loop
    End
    auf der Anzeige sieht es schon mal gut aus, nur die werte sind total verrückt mal 358. 2258,0,245,18045
    kann mir einer ein tip geben was ich ändern muß?

  5. #25
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    Du fragst ja alle ADC-Pins ab. und ADC-Pins, die mit nichs verbunden sind, spielen Antenne, sie nehmen mal dieses und mal jenes Potentieal an. frag mal NUR den ADC-Pin ab, an dem dein Temp-Sensor hängt!

    (z.B. durch "Temp1 = getadc(0) " )



    eventuell gibt es auch Probleme mit der Variablen "Portc.5".
    nenn diese Variable sicherheitshalber mal "Pinnummer" oder "ADCkanal" o.Ä. , zumindest nicht so, wie eine Standartvariable für die Porteinstellung.

    vor das erste Print würde ich auch ein "CLS" zu setzen. (zur Sicherheit)
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

  6. #26
    ja hat gut geklappt... aber mit dem CLS hinter dem Print, hat nicht funktioniert da war das dislpay leer..

    so der Wert der im LCD angezeigt wird steht so bei 632 verändert sich auch je nach temperatur unterschied...

    wie kann ich jetzt den Wert kalibrieren. da gibt es doch bestimmt mehre möglichkeiten also den spannungsteiler den ich benutze hat ein festwiderstand von 1,8k Ohm und der Temp sensor bei raumtemperatur 1,8k Ohm. dann liegen am pin so um die 2,35V an also fast genau die hälfte von der batterie spannung 4,7... die Werte schwanken natürlich....


  7. #27
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    eeeh, ja bei dem CLS war ein Denkfehler....

    Zum Spannung variieren: da hilft ein Potentiometer statt dem Festwiderstand. Du sagtest, es wäre ain NTC, also sinkt der Widerstand, wenn die Temperatur steigt.
    Kennst du die Werte von dem NTC, wenn er X Grad warm ist/ um wieviel Ohm sein Widerstand pro Grad mehr sinkt?
    Dann könnte man berechnen, was für einen Widerstand du etwa benötigst.

    Du kannst natürlich auch einfach das Poti nehmen und herumexperimentieren. Solange dein Vref gleich Vcc ist, besteht keine Gefahr.
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

  8. #28
    ja das mit dem Poti hab ich mir schon gedacht..... gibt es auch noch eine möglichkeit die man ins programm schreiben kann?

    als nächstes versuche ich den abgastemp sensor... 30 ohm und mit der temperatur nimmt widerstand zu......

    hier nochmal mein code wollte den zweiten wert anzeigen lassen. bekomm immer ein fehler "LOOP expected"
    100% hab ich den dreh mit dem schreiben noch nicht raus

    deine Hilfe ist echt super. danke echt nett

    Code:
     Config Lcd = 16 * 2
     Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
     Config Lcdbus = 4
    
    
    Deflcdchar Print , 17 , 32 , 14 , 17 , 17 , 17 , 14 , 32    ' replace ? with number (0-7)
    Cls
    
    
    
    Config Adc = Single , Prescaler = Auto
    Start Adc
    Dim Temp1 As Word , Kanal1 As Byte
    Kanal1 = 0
    Do
      Temp1 = Getadc(5)
      Print "ADC-Pin " ; Kanal1 ; ": Wert " ; Temp1
      Incr Kanal1
      If Kanal1 > 7 Then Kanal1 = 0
      Waitms 100
      Cls
      Locate 1 , 1
      Lcd Chr(0) ; "L: " ; Temp1
    
    
    
    Dim Temp2 As Word , Kanal2 As Byte
    Kanal2 = 0
    Do
      Temp2 = Getadc(4)
      Print "ADC-Pin " ; Kanal2 ; ": Wert " ; Temp2
      Incr Kanal2
      If Kanal2 > 7 Then Kanal2 = 0
      Waitms 100
      Cls
      Locate 2 , 1
      Lcd "Abgas: " ; Temp2
    
    Loop
    End
    =D>

  9. #29
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    Du hast 2X "Do" drin, aber nur einmal "loop".

    Außerdem müssen Variablen immer VOR dem eigentlichen Programm deklariert werden (zumindest afaik) (das ist das, was du mit "dim" machst)

    Code:
      ...
    Locate 1 , 1
      Lcd Chr(0) ; "L: " ; Temp1
    
    
    
    Dim Temp2 As Word , Kanal2 As Byte
    Kanal2 = 0
    Do
      Temp2 = Getadc(4)
    ...
    hier deklarierst du Temp2, nachdem schon Arbeitsanweisungen gegeben wurden.
    dein 2. "Do" ist hier übrigens zu sehen.


    warum zählst du zweimal die ADC-Pins durch???? das ist wirgendwie sinnlos.

    probiere es damit (oder etwas ähnlichem):
    Code:
    Dim Temp as Word , Kanal as Byte
    
    
     Config Lcd = 16 * 2
     Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
     Config Lcdbus = 4 
    
    Config Adc = Single , Prescaler = Auto
    Start Adc
    
    cls
    
    Kanal = 0
    
    Do
     
    Temp = getadc(Kanal)
    cls
    locate 1 , 1
    lcd "ADC-Pin: " ; Kanal ; "Wert: " ; Temp
    wait 1
    incr Kanal
    if Kanal > 7 then
      Kanal = 0
    end if
    
    loop
    End
    damit sollten alle ADC-Pins nacheinander im Sekundentakt abgefragt und die Werte angezeigt werden.

    wenn du nur die Kanäle 0 bis X abfragen möchtest (z.B. nur bis Kanal 2), dann musst du nur bei
    Code:
     if Kanal > 7 then
    die 7 durch X (also Bspw 2) ersetzen)
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

  10. #30
    Naja alle Funktionen kenne ich nocht nicht so ganz... wird aber langsam.

    so hab dein Code probiert.... also da werden die werte nacheinander Angezeigt... ich wollte sie aber Gleichzeitig auf dem Display angezeigt bekommen.... das sich nur der wert Aktualisiert....

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress