Pinned TFT Display ILI9341 2.2" und 2.4"

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Leider muss ich nochmal nerven,

      bin gerade dabei den Touch in betrieb zu bekommen.
      Jedoch finde ich auch nach 4 Std Googlen nicht welche Pins am Display mit dem Touch-Controller verbunden sind und vor allem welche Pins des Touchcontrollers das sind.

      Ich hoffe ihr könnt mir hier weiterhelfen.

      LG René
    • Habe jetzt eine Lösung zu meinem Problem gefunden und poste es jetzt trotzdem mal falls jemand das gleiche Problem hat wie ich.

      Ich habe jetzt das Display von der Platine abgehoben und durchgemessen,
      es handelt sich um einen 4-wire-resistive touch.

      Es handelt sich um folgende Pins:
      CS = Y+
      D1 = Y-
      RS = X+
      D0 = X-

      ich habe zum auswerten ein kleines Programm geschrieben (für den Arduino UNO) welches ich mit euch teilen möchte:
      Weiterhin habe ich das das Display in Reihen und Spalten aufgeteilt, um es später visualisieren zu können.

      Fotos vom Display und ein Schema habe ich unten angehängt falls diese jemand benötigt ohne das eigene zu demontieren.

      Source Code

      1. $regfile = "m328pdef.dat"
      2. $crystal = 16000000
      3. $hwstack = 60
      4. $swstack = 100
      5. $framesize = 100
      6. $baud = 9600
      7. Dim X As Word , Y As Word
      8. Dim Row As Byte , Collumn As Byte , Field As Byte 'Collum = x, Row = y
      9. 'Const Offset_x = 204
      10. 'Const Offset_y = 204
      11. Config Adc = Single , Prescaler = Auto , Reference = Avcc
      12. Start Adc
      13. 'C.3 = Y+ ADC(3)
      14. 'B.1 = Y-
      15. 'C.2 = X+ ADC(2)
      16. 'B.0 = X-
      17. Do
      18. Xp Alias Portc.2
      19. Xm Alias Portb.0
      20. Yp Alias Portc.3
      21. Ym Alias Portb.1
      22. 'Lese X-Wert
      23. Config Yp = Output
      24. Config Ym = Output
      25. Set Yp
      26. Reset Ym
      27. Config Xp = Input
      28. Config Xm = Input
      29. Waitms 20
      30. X = Getadc(2)
      31. X = 1024 - X
      32. 'X = X - Offset_x
      33. 'X = X / 2
      34. 'Print "X-Wert: " ; X
      35. 'Lese Y-Wert
      36. Config Xp = Output
      37. Config Xm = Output
      38. Set Xp
      39. Reset Xm
      40. Config Yp = Input
      41. Config Ym = Input
      42. Waitms 20
      43. Y = Getadc(3)
      44. Y = 1024 - Y
      45. 'Y = Y - Offset_y
      46. 'Y = Y / 2.57
      47. 'Print "Y-Wert: " ; Y
      48. Select Case X
      49. Case 204 To 333 : Collumn = 1 '205
      50. Case 335 To 463 : Collumn = 2
      51. Case 465 To 593 : Collumn = 3
      52. Case 595 To 723 : Collumn = 4
      53. Case 725 To 853 : Collumn = 5
      54. Case Else : Collumn = 0
      55. End Select
      56. Select Case Y
      57. Case 190 To 367 : Row = 1 '205
      58. Case 369 To 531 : Row = 2
      59. Case 533 To 695 : Row = 3
      60. Case 697 To 859 : Row = 4
      61. Case Else : Row = 0
      62. End Select
      63. If Row = 1 And Collumn = 1 Then
      64. Field = 1
      65. Elseif Row = 1 And Collumn = 2 Then
      66. Field = 2
      67. Elseif Row = 1 And Collumn = 3 Then
      68. Field = 3
      69. Elseif Row = 1 And Collumn = 4 Then
      70. Field = 4
      71. Elseif Row = 1 And Collumn = 5 Then
      72. Field = 5
      73. Elseif Row = 2 And Collumn = 1 Then
      74. Field = 6
      75. Elseif Row = 2 And Collumn = 2 Then
      76. Field = 7
      77. Elseif Row = 2 And Collumn = 3 Then
      78. Field = 8
      79. Elseif Row = 2 And Collumn = 4 Then
      80. Field = 9
      81. Elseif Row = 2 And Collumn = 5 Then
      82. Field = 10
      83. Elseif Row = 3 And Collumn = 1 Then
      84. Field = 11
      85. Elseif Row = 3 And Collumn = 2 Then
      86. Field = 12
      87. Elseif Row = 3 And Collumn = 3 Then
      88. Field = 13
      89. Elseif Row = 3 And Collumn = 4 Then
      90. Field = 14
      91. Elseif Row = 3 And Collumn = 5 Then
      92. Field = 15
      93. Elseif Row = 4 And Collumn = 1 Then
      94. Field = 16
      95. Elseif Row = 4 And Collumn = 2 Then
      96. Field = 17
      97. Elseif Row = 4 And Collumn = 3 Then
      98. Field = 18
      99. Elseif Row = 4 And Collumn = 4 Then
      100. Field = 19
      101. Elseif Row = 4 And Collumn = 5 Then
      102. Field = 20
      103. Else
      104. Field = 0
      105. End If
      106. If Field <> 0 Then
      107. Print "Feld: " ; Field
      108. Field = 0
      109. Else
      110. End If
      111. Loop
      112. End
      Display All


      Files
    • ILI9341 lcd_bmp Function für Xmega

      Hallo hkipnik,

      Komme erst jetzt dazu dein Beispiel code ILI9341 für xmega zu testen "ILI9341 V13 Xmega128A1"
      Es funktioniert, Text
      und
      Restore Miky1
      Lcd_show_bgc 0 , 10

      Von den Sd card kann ich auch von ein Text file lesen, doch die Funktionen wie Lcd_draw_bmp "046.bmp" , 0 , 0
      funktioniert nicht, als auch nicht, die Funktion Lcd_pic_binsd "bild10.bin" , 5 , 5 , 150 , 113

      Weiss nicht ob Du auch die Funktion fü Transparent Text dafür auch fertig hast, kann es nicht in den ILI9341_routines.inc finden

      Habe es mit Xmega128A1 AU als auch mit Xmega384C3 getestet, beide das gleiche Ergebniss

      Fals Du helfen kannst, bin ich dankbar

      Mit freundlichen Grüssen
      Fsato
    • Hallo,

      Habe mich nicht genau ausgedrückt
      Lcd_draw_bmp "bild13.bmp" die Katze 150x113 wird richtig angezeigt, wenn aber Lcd_draw_bmp "044.bmp", girl vollbild 240x320, wird
      das Bild geladen aber total verschmiert mit verkehrten Farben angezeigt.
      Hat jemand Ahnung was da zu machen ist?

      Gruss
      F_sato
    • Hallo,
      ich habe den Programmcode von hkipnik in post "1" runtergeladen und getestet.
      Das Display läuft einwandfrei, nur die Touchfunktion macht Ärger.
      Wenn ich Use_touch = 1 mache bekomm ich nur einen weißen Bildschirm. (Lcd_mode = 1 und Touch_calibrate = 0 - auch mit Touch_calibrate = 1 gehts nicht weiter)

      SD-Card wird nicht verwendet. Anschlüsse sind überprüft. Touchcontroller ist XPT2046. Versuche jeztz seit einer Woche am Code Änderungen zu versuchen - ohne Erfolg.

      Display ist identisch mit dem von Post "6". IRQ vom Touchcontroller ist laut Osci auch einwandfrei - Daten werden auf der DO auch rausgegeben.
      Hat jemand ähnliche Probleme oder ne' Idee?
    • Hallo
      hkipnik

      wie lange bist du da gesessen um das zu Programmieren ?
      Wie lässt sich den Touch Screen Programmieren ?
      Danke


      Was meinst du ? Ich meine es nicht Böhse.
      Ich habe es nur in Arduino da auf der CD. Das Mußte viel Arbeit gewesen sein das auf Bascom Umzuschreiben.
    • Ich hab jetzt die Schaltung neu aufgebaut (anderes, baugleiches Display, anderes Controllerboard, Leitungen gekürzt, anderer 3,5 <> 5 V Converter - Adafruit) Jetzt hab ich bei
      Const Lcd_mode = 1
      Const Use_touch = 1

      Const Touch_calibrate = 1

      ein Bild wie im Video (Display.zip)
      Files
      • Display.zip

        (701.56 kB, downloaded 15 times, last: )
    • Verwendet wird das unveränderte Originalprogramm und ...inc's
      Verdrahtet laut Deinem Plan.
      Converter ist Adafruit mit TXB0108
      Files
      • 2.4 Circuit.jpg

        (108.85 kB, downloaded 29 times, last: )
      • 113638.jpg

        (399.81 kB, downloaded 21 times, last: )
      • 113701.jpg

        (415.36 kB, downloaded 19 times, last: )
      • 113716.jpg

        (436.83 kB, downloaded 20 times, last: )
      • Mega-2560 pro Board.jpg

        (295.59 kB, downloaded 26 times, last: )
    • Kommando zurück: wurde doch geändert.
      Die #if Sdcard = 1 Proceduren wurden der Übersichtlichkeit halber entfernt wenn kein else vorhenden.
      Die grafischen Elemente in den #if Lcd_mode = 1 Or Lcd_mode = 2 und #if Lcd_mode = 3 Or Lcd_mode = 4

      wurden nach der #if Use_touch = 1 procedure entfernt da sonnst das LCD gar keine Grafik anzeigt (nur weiß)

      An den inc-Dateien wurde nichts verändert
      Files