glcd picbasic

Best Co'ers,

ik ben net als bartiebami voor de bijl gegaan voor een lcd. Ik heb een andere, de: hdm64gs12l-5. Hij is 128*64.
datasheet: http://www.lcdfriends.com/picture/200541903640764.pdf

Is er in picbasic een commando om zo'n display aan te sturen? Net als PRINT? Of moet ik dit helemaal zelf doen?

klein vraagke: klopt het dat het dipslay zelf op 9 volt loopt?

Henry S.

Moderator

5V! En het LCD van Rosmalen is geen hdm64gs12l-5 maar een JE-AN 1286404. Er is veel verwarring over het aansluiten van deze dingen. De controller is een KS108 welke Proton+ ondersteunt.

Zie http://www.picbasic.org/forum/showthread.php?t=5859 voor een voorbeeld en aansluitingen. Let op de laatste post want de TS daar vergat een END waardoor het niet goed werkte.

En in de manual staat een KS108 voorbeeld.

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.

die datasheet lag er naast :)

Ik heb net mijn pic16f877a's binnen van niels. ALs mn progarmmer het weer doet ga ik wat proberen. Dank!

in de helpfile van proton vind je een schemaatje van een PIC16F877A aan een display met een KS108 controller.

Poorten defineren en gaan met die banaan. Je kunt de printinstructie gebruiken en line commando kan je mooie hokjes maken.

circle zal ook wel lukken maar heb ik niet getest.

succes.

Henry S.

Moderator

Op 18 maart 2009 15:44:51 schreef pientertje:
die datasheet lag er naast :)

Heb ik gezien, ligt er altijd bij, maar klopt dus niet.

Als KS108 aangesloten volgens manual:

http://www.uploadarchief.net/files/download/128x64%20glcd%20random.jpg

[Bericht gewijzigd door Henry S. op woensdag 18 maart 2009 18:58:39 (25%)

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.

ik heb dat zelfde scherm gekocht en ik had hem na een middagje zoeken toch de juiste pin-out gevonden. op
http://www.lcdstudio.com/forum/viewtopic.php?t=10727
en op
http://www.lcdstudio.com/forum/viewtopic.php?t=10751&highlight=jea…
maar bij mij waren de 5 v en de 0v niet omgerolen

@Henry S. wat is er mis met dat scherm. of begrijp ik het niet goed

[Bericht gewijzigd door robojan op woensdag 18 maart 2009 19:41:07 (11%)

Henry S.

Moderator

Op 18 maart 2009 19:40:28 schreef robojan:
http://www.lcdstudio.com/forum/viewtopic.php?t=10751&highlight=jea…
maar bij mij waren de 5 v en de 0v niet omgerolen

Die opmerking had betrekking op de DisplayTech ;)

@Henry S. wat is er mis met dat scherm. of begrijp ik het niet goed

Is niks mee, draait een random demo, sluiter van het fototoestel valt net in de refresh...

pic basic code:


DEVICE 16F877
XTAL 20
CONFIG CP_OFF, DEBUG_OFF, WRT_ENABLE_OFF, CPD_OFF, LVP_OFF, BODEN_OFF, PWRTE_OFF, WDT_OFF, HS_OSC

ALL_DIGITAL = TRUE
LCD_DTPORT = PORTD
LCD_ENPIN = PORTE.0
LCD_CS1PIN = PORTE.1
LCD_CS2PIN = PORTE.2
LCD_RSPIN = PORTC.2
LCD_RWPIN = PORTC.5
LCD_TYPE = GRAPHIC
INTERNAL_FONT = ON
FONT_ADDR = 0
CLS

DIM x AS BYTE
DIM y AS BYTE
WHILE 1=1
  FOR x=0 TO 127
    y= RANDOM /1000
    PRINT AT 0,0,"  "
    PRINT AT 0,18,"   "
    LINE 1,x,63,x,63-y
    PRINT AT 0,0,DEC2 y
    PRINT AT 0,18,DEC3 x
    DELAYMS 50
  NEXT
  DELAYMS 100
  CLS
WEND
END
INCLUDE "FONT.INC"

En het display lekt verikaal een beetje door, tja low cost.

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.

Ik heb nu mijn pic16f877A aan de praat met knipperledje, nu het beeldscherm. Ik zie nu in de datasheet bij contrast. Spanningsdeler van 0 to -5 volt. Bedoelen ze hiermee van 5 to 0 volt?

edit: lees net dat die -5 weer uit pin 18 komt

[Bericht gewijzigd door pientertje op zondag 22 maart 2009 21:49:31 (12%)

Nee, pot voor contrast aansluiten tussen +5 en -Vee (pin van lcd; uitgang)

Als er -5V staat zullen ze wel -5V bedoelen. Meestal heeft zon LCD wel ergens een uitgang met die spanning :)

[edit]We zijn weer actief met zijn allen :P

[Bericht gewijzigd door Ganzz op zondag 22 maart 2009 21:51:21 (18%)

-

@smoerijf In de datasheet staat van 0 tot -5

Dat maakt niet veel uit, spanning die de contrast pin graag heeft verschilt toch per lcd(-type). Bij de jouwe zal het contrast blijkbaar altijd ergens negatief moeten zijn.

-Vee was bij mijn glcd (ander type) -10v.

Henry S.

Moderator

Op 22 maart 2009 21:52:00 schreef pientertje:
@smoerijf In de datasheet staat van 0 tot -5

Dat is de contrastingang, daar komt een potmeter aan die regelt tussen 0V en -5V (welke uit Vee komt).

En je zit toch niet nog steeds naar de Hantronix datasheet te kijken? JE-AN 1286404 aansluitingen heb ik gepost.

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.

ik niet, ik heb gister wat geprobeerd. Maar er komt alleen brol op het beeldscherm. Ga vanmiddag alles opnieuw aansluiten. Er komen wel halve karakters op.

[Bericht gewijzigd door pientertje op maandag 23 maart 2009 09:19:14 (12%)

heb deze vakantie het allemaal opnieuw aangesloten en het werkt:)

Ik ben nu wat met bitmaps aan klooien, maar hoe kan ik mijn eigen bitmap maken? En dan bedoel ik niet door alles met de hand in te vullen. Zoiets als paint, maar waar dan de LDATA {....enz uitkomt.

Ben nog weer wat aan het stoeien. Het programma(voltage van een accu op een grafiekje zetten) werkt, ware het niet dat alles oppeens dubbel op het glcd verschijnt zelfs in de simulator!. Wat doe ik fout, het is vast heel simpel.

pic basic code:


Device 16F877
XTAL 20
Config CP_OFF, DEBUG_OFF, CPD_OFF, LVP_OFF, BODEN_OFF, PWRTE_OFF, WDT_OFF, HS_OSC
LCD_DTPORT = PORTD
LCD_ENPIN = PORTE.0
LCD_CS1PIN = PORTE.1
LCD_CS2PIN = PORTE.2
LCD_RSPIN = PORTC.1
LCD_RWPIN = PORTC.0
LCD_TYPE = SAMSUNG
INTERNAL_FONT = On
FONT_ADDR = 0
DelayMS 500
Cls
Print At 1,1, "test"
End
Include "FONT.INC"

edit: all_digital = true lost het probleem op. Maar dat kan natuurlijk niet omdat ik een ad gebruik. Hoe kan ik dan zorgen dat dit toch gaat werken?

[Bericht gewijzigd door pientertje op woensdag 26 augustus 2009 14:29:11 (11%)

Volgens mij kun je "Include" nooit achter "end" zetten. Hier komt het programma namelijk nooit langs

Je edit niet gelezen. Misschien ergens een pull-up of pull-down. als er nu ergens een pin hangt te zweven

[Bericht gewijzigd door teunhaperen op woensdag 26 augustus 2009 14:31:41 (35%)

Bij vlagen ben ik geniaal, helaas is het hier altijd windstil

de font include moet juist wel altijd achter de end.
En een pin die staat te zweven komt volgens mij niet in de simulator voor. Het is echt een probleem in de software(bug?).

Op 26 augustus 2009 14:26:52 schreef pientertje:
all_digital = true lost het probleem op. Maar dat kan natuurlijk niet omdat ik een ad gebruik. Hoe kan ik dan zorgen dat dit toch gaat werken?

Je kunt gerust ALL_DIGITAL = TRUE plaatsen en toch een ADC gebruiken.
Door ALL_DIGITAL = TRUE wordt als default alle analoge delen (zoals ADC, comparatoren) uitgeschakeld, die standaard aan (zouden) kunnen zijn als default.
Als je daarna zelf een ADC weer inschakelt, kun je dat gerust doen, met de zekerheid dat alleen het analoge dat JIJ weer inschakelt, is ingeschakeld en alle overige analoge onderdelen van de PIC uit staan.

Ohm sweet Ohm | www.picbasic.nl

zoiets hoopte ik al. Ik ga het gelijk proberen. Het blijft nu nog steeds dubbel. Misschien ligt het aan de software:

pic basic code:


 adin1 = ADIn 0    ;ad inlezen

  adin2 = adin1 / 68    ;naar 0 tot 15 volt omrekenen
  waardebuffer = (waardebuffer + adin2) / 2     ;een iets stabielere waarde


 For x = 0 To 127    ;nieuw -> oud
       oud[x] = nieuw[x]
    Next x   
    For x = 1 To 127    ;nieuw plaats naar links shiften
       nieuw[x-1] = nieuw[x]
    Next x              ;nieuwe waarde in laatste plaats van nieuw zetten
    nieuw[127] = (waardebuffer - 10) * 13   ;op het display een bereik van 10 tot 15V
    nieuw[127] = 64 - nieuw[127]    ;omdraaien
    For x = 0 To 127    ;vorige weghalen
        UnPlot oud[x], x
    Next x
    For x = 0 To 127    ;nieuwe tekenen
       Plot nieuw[x], x
    Next x 
  End If  
Henry S.

Moderator

Op 26 augustus 2009 14:30:36 schreef teunhaperen:
Volgens mij kun je "Include" nooit achter "end" zetten. Hier komt het programma namelijk nooit langs

Lees het topic en de geposte links nog eens, je wil je programma toch niet in data door laten lopen?

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.

weet iemand nog raad? Want ik wou graag dit project afronden, en dan is het zo vervelend als alles op het laatst misloopt. Het ligt niet aan het programma, want als ik aan het begin een print zet werkt het wel goed, dus voor de declaraties voor de ad.

ehel programma nu:

pic basic code:


Device 16F877A
XTAL 20
Config CP_OFF, DEBUG_OFF, CPD_OFF, LVP_OFF, BODEN_OFF, PWRTE_OFF, WDT_OFF, HS_OSC
ALL_DIGITAL  = true
LCD_DTPORT = PORTD
LCD_ENPIN = PORTE.0
LCD_CS1PIN = PORTE.1
LCD_CS2PIN = PORTE.2
LCD_RSPIN = PORTC.1
LCD_RWPIN = PORTC.0
LCD_TYPE = SAMSUNG
INTERNAL_FONT = On
FONT_ADDR = 0
DelayMS 500
Cls
Print "test"
DelayMS 5000
ADIN_RES = 10 ;ADC resolutie
ADIN_TAD = FRC ;de clock voor de adc extern / intern
ADIN_STIME = 500;De conversie tijd
;===========================
        ;76543210
TRISA = %00000001
ADCON1= %10000000 ;adc instellen op de goede poorten RTFM
;============================
Dim adin1 As Word ;variabelen
Dim nieuw[128] As Byte
Dim x As Byte
Dim teller As Byte
Dim waardebuffer As Float
Dim adin2 As Float
;============================
TRISB = 0
Clear   ;wissen en stabilisatie

;=============================
While 1=1
  adin1 = ADIn 0    ;ad inlezen

  adin2 = adin1 / 68    ;naar 0 tot 15 volt omrekenen
  waardebuffer = (waardebuffer + adin2) / 2     ;een iets stabielere waarde
   If waardebuffer > 8 Then 
    PORTB.0 = 1  
  Else 
     PORTB.0 = 0
  End If
  If waardebuffer > 10 Then 
    PORTB.1 = 1  
  Else 
    PORTB.1 = 0
  End If
  If waardebuffer > 12 Then 
    PORTB.2 = 1  
  Else 
    PORTB.2 = 0
  End If
  If waardebuffer > 14 Then 
    PORTB.3 = 1  
  Else 
    PORTB.3 = 0
  End If
  teller = teller + 1
  If teller = 5 Then
    teller = 0
    For x = 0 To 127    ;vorige weghalen
        UnPlot nieuw[x], x
    Next x   
    For x = 1 To 127    ;nieuw plaats naar links shiften
       nieuw[x-1] = nieuw[x]
    Next x              ;nieuwe waarde in laatste plaats van nieuw zetten
    nieuw[127] = ((waardebuffer - 10) * 13)   ;op het display een bereik van 10 tot 15V
    nieuw[127] = 64 - nieuw[127]    ;omdraaien
    
    For x = 0 To 127    ;nieuwe tekenen
       Plot nieuw[x], x
    Next x
   
  End If  
 
  DelayMS 100
Wend



End
Include "font.inc"

zou het zo wel werken?

pic basic code:


If teller = 5 Then
ALL_DIGITAL  = true
    teller = 0
    For x = 0 To 127    ;vorige weghalen
        UnPlot nieuw[x], x
    Next x   
    For x = 1 To 127    ;nieuw plaats naar links shiften
       nieuw[x-1] = nieuw[x]
    Next x              ;nieuwe waarde in laatste plaats van nieuw zetten
    nieuw[127] = ((waardebuffer - 10) * 13)   ;op het display een bereik van 10 tot 15V
    nieuw[127] = 64 - nieuw[127]    ;omdraaien
 
    For x = 0 To 127    ;nieuwe tekenen
       Plot nieuw[x], x
   ADIN_RES = 10 ;ADC resolutie
ADIN_TAD = FRC ;de clock voor de adc extern / intern
ADIN_STIME = 500;De conversie tijd
;===========================
        ;76543210
TRISA = %00000001
ADCON1= %10000000 ;adc instellen op de goede poorten RTFM Next x
 
  End If