-         

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

Thema: ATMega32 + TouchScreen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.03.2006
    Beiträge
    134

    ATMega32 + TouchScreen

    Anzeige

    Hallo,

    ich habe einen ATMega32 (Grundschaltung) mit 16 MHZ Quarz und Stabilisierter Spannung aufgebaut und von ledsee.com ein 128 x 64 Touch Display bestellt...

    Das Display hab ich nun auch wunderbar laufen so wie es sollte... Grafiken funktionieren auch wunderbar...

    Allerdings macht mir das Touch ein paar Probleme...

    Und zwar habe ich die 4 Adern? (vom Flachkabel) jeweils auf ein 100 Ohm
    Wiederstand (Schutz vor Zerstörung) und dann direkt auf einen ADC des ATMega32 gelötet...

    Wenn ich nun die X und Y Werte auslese (Pin 1 und 3, 2 und 4 jweils high / low) dann erhalte ich bereits OHNE Berührung und auch ohne Schutzfolie einen Wert rund um 400 Schwankend...

    Sollte nicht ein wert zwischen 0 - 2 normal sein ohne Berührung?
    Weiss da jemand zufällig eine Abhilfe, denn dadurch ist es so gut wie garnicht möglich, zu erkennen wo jemand berührt hat, denn nach dem Berühren schwankt der Bereich des ADC bei dem Wert des Berührens weiter... Sprich berühre ich den Screen so dass er 220 anzeigt, dann schwankt er zwischen 200 - 300 weiter...

    Ziemlich merkwürdig halt

    Ich hoffe auf eure Hilfe!

    Vielen Dank!

    MFG

    Ratman2000

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.03.2006
    Beiträge
    134
    Hallo,

    So viele "Leser"

    Kann denn keiner Helfen?

    MFG

    Ratman2000

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235
    Also mit dem TD-Controller erhalte ich ohne Berührung immer Werte schwankend zwischen 30-70 für X bzw. Y Achse. Poste mal den Code, den du zum Auslesen verwendest
    Elektronische Bauteile funktionieren mit Rauch. Lässt man den Rauch raus, sind sie kaputt.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.03.2006
    Beiträge
    134
    Hallo,

    das sieht bei mir so aus:

    Code:
    Config Porta.0 = Output
       Config Porta.2 = Output
       Config Porta.1 = Input
       Config Porta.3 = Input
    
       Set Porta.0                                              'High
       Reset Porta.2                                            'Low
    
       Waitms 20
    
       Y = Getadc(1)
       Y = 1024 - Y
       Lcdat 3 , 20 , "Y: " ; Y
    
       Config Porta.0 = Input
       Config Porta.2 = Input
       Config Porta.1 = Output
       Config Porta.3 = Output
    
       Set Porta.1                                              'High
       Reset Porta.3                                            'Low
    
       Waitms 20
    
       X = Getadc(2)
       X = 1024 - X
       Lcdat 4 , 20 , "X: " ; X
    MFG

    Ratman2000

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.03.2006
    Ort
    WOB
    Beiträge
    630
    warum soll das komisch sein? kann doch sein dass eben genau die Touchfolie 400 hat ohne Berührung. Was hast du denn mit berührung?

    Hast du ein Datenblatt zu dem Ding? Deine 100Ohm Schutzwiderstände musst du ja auch rausrechnen, oder?
    Gruß Thomas \/

    Alles über AVR, PIC und CAN
    blog.cc-robotics.de

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.03.2006
    Beiträge
    134
    Hallo,

    nein ein Datenblatt gibts dazu leider nicht...
    Komisch ist es, weil die Folie ja als "Wiederstand" agieren soll...
    Sprich kann er mir ohne Berührung nicht so einen hohen Wert ausgeben (wenn ich das richtig verstanden habe) Denn solange die Folien sich nicht berühren, kann ja auch eigentlich kein Wert (bzw nur ein minimaler) gemessen werden...

    Das Problem ist, dass der Wert am ADC IMMER in dem Bereich schwankt, wo ich zuletzt berührt habe... Berühre ich ihn bei 400, schwankt er auch in dem Bereich weiter...

    Normal fände ich wenn er zwischen 0 - 10 läge und bei berührung z.b. auf 400 springt und beim loslassen wieder zurück auf 0 - 10...

    Das wäre nen Zustand, mit dem man arbeiten könnte...

    Aber wie soll man, wenn der "Berühren Zustand" immer anhält, auswerten ob berührt wurde oder nicht? Das erscheint nicht logisch...

    Berühre ich das Display z.b. weiter Links, dann geht der Wert auf 200 runter... weiter rechts auf 600 hoch usw... Verhält sich echt merkwürdig...

    Das ich den Wiederstand setzen sollte habe ich aus einem Schaltplan entnommen siehe hier:

    http://www.mcselec.com/index.php?opt...=189&Itemid=57

    Ich habe folgenden Touch Display gekauft:

    http://ledsee.com/index.php?page=sho...mart&Itemid=27

    Das einzige was ich nicht mache ist den Treiber Baustein zu benutzen... Den das sollte der ATMega32 schon alleine hin bekommen wie es hier beschrieben wurde:

    http://www.roboternetz.de/phpBB2/zei...ht=touchscreen

    Das einzige was bei diesem "Beispiel" anderst ist, ist das er nen anderen AVR nutzt und nen Display ne Nummer grösser...

    Aber ich bekomms einfach nicht zum laufen *heul*

    Ich bitte um eure Hilfe!

    Das Display selbst kann ich ohne Probleme ansteuern... Also liegt es wirklich nur noch an den 4 Polen des Touches...

    Danke für eure Hilfe!!!

    MFG

    Ratman2000

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235
    Probier mal folgenden Code der funktioniert bei mit 100%ig

    Code:
    Config Pina.0 = Output
    Config Pina.2 = Output
    Set Porta.0
    Reset Porta.2
    Ddra.1 = 0
    Ddra.3 = 0
    Waitms 20
    Y = Getadc(3)
    Y = 1024 - Y
    Print "VALUE Y : " ; Y
    Config Pina.1 = Output
    Config Pina.3 = Output
    Reset Porta.1
    Set Porta.3
    Ddra.0 = 0
    Ddra.2 = 0
    Waitms 20
    X = Getadc(2)
    X = 1024 - X
    Print "VALUE X : " ; X
    Die Widerstände sind egal...kannst du auch weglassen. Die sind eig. nur als Kurzschlussschutz, falls sich die Ports berühren....dann hast du wenigstens einen Widerstand dazwischen
    Elektronische Bauteile funktionieren mit Rauch. Lässt man den Rauch raus, sind sie kaputt.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.03.2006
    Beiträge
    134
    Hallo,

    habe den Snipped gerade probiert...

    Aber mein Problem bleibt...

    Ich habe nach jedem "lesen" nun mal 1 Sekunde Pause gemacht, um genau zu sehen, welche Werte er anzeigt...

    Beim einschalten ist der erste Wert irgend etwas über 500...
    Nach einer Sekunde dann bei ca 300 und pendelt sich dann bei ca 200 ein springt dann aber immer um Werte +-100

    Sprich wenn er sich bei 210 eingependelt hat, springt er mal zu 110 und mal zu 310... Ganz merkwürdig...

    Gibt es evtl irgend etwas, was solch ein Verhalten auslösen kann? Könnte das Touch defekt sein?

    Vielen Dank für eure Hilfe!!!

    MFG

    Ratman2000

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.03.2006
    Beiträge
    134
    Hallo nochmal,

    ich habe gerade auch mal den X Wert aufs Display gebracht... Was
    mir da auffällt ist, das der Wert zwischen 1 und 2 Schwankt, solange ich das Display nicht berühre...

    Sobald ich es berührt habe (z.B. bei 210) dann bleibt der X Wert auch bei der Zahl und schwankt +- 100 wie der Y Wert...

    Hab ich evtl irgend etwas falsch gemacht? Muss man vorher irgend etwas spezielles machen? Kann es z.B. am Quartz liegen oder sonst irgend eine Möglichkeit geben das was faul ist?

    Danke!!!

    MFG

    Ratman2000

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.03.2006
    Beiträge
    134
    Hallo,

    ich habe gerade mal aus lauter verzweiflung alle 4 Pins vom ATMega32 abgezogen (sind auf Sockelleisten gelötet so das ich sie Stecken kann)

    Das heist am ADC hängt nun nur noch der Wiederstand mit 100 Ohm...

    Kein GND, kein VCC garnichts... Die Pins gehen also ins Leere^^

    Der Witz: Auf dem Display bekomme ich schwankende Werte ausgegeben...

    Wie kann der Mega32 etwas "messen", wenn garnichts dran hängt?

    HILFE

    Danke!

    MFG

    Ratman2000

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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