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?
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.
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.
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:

[Bericht gewijzigd door Henry S. op (25%)]
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 (11%)]
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...
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.
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 (12%)]
Ganzz
-
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 
[Bericht gewijzigd door Ganzz op (18%)]
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.
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.
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 (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.
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 (11%)]
teunhaperen
Bij vlagen ben ik geniaal, helaas is het hier altijd windstil
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 (35%)]
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?).
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
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.
zoiets hoopte ik al. Ik ga het gelijk proberen. Het blijft nu nog steeds dubbel. Misschien ligt het aan de software:
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
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?
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:
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?
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