Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

vfd aansturen, alleen error codes

Pagina: 1
Acties:

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
Heren,

Ik ben onlangs begonnen met het programeren van PICjes, om precies te zijn met de 16F628.

Nu programeer ik met JAL en gebruik ik de volgende code om een signaal te sturen naar de VFD.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
include 16F628_20
include jlib
-- include serial

pin_a0_direction = output

delay_1s(1)

var byte wachttijd = 52

forever loop

pin_a0 = on
delay_1uS(wachttijd)

pin_a0 = off
delay_1uS(wachttijd)
pin_a0 = off
delay_1uS(wachttijd)
pin_a0 = off
delay_1uS(wachttijd)
pin_a0 = off
delay_1uS(wachttijd)
pin_a0 = off
delay_1uS(wachttijd)
pin_a0 = off
delay_1uS(wachttijd)
pin_a0 = off
delay_1uS(wachttijd)
pin_a0 = off
delay_1uS(wachttijd)

pin_a0 = off
delay_1uS(wachttijd)

delay_1s(1)

end loop


Dit geeft echter alleen maar error code's op de vfd. Hij tekent iedere seconde een error code ipv een character. Ik heb geen ervaring met deze vorm van aansturing en zou dan ook niet kunnen zeggen waar het misgaat. De baudrate van de VFD staat op 19200, parity op none, hij gebruikt 1 startbit en 1 stopbit, waarvan alleen de eerste hoog is.

Ik ben bewust dat er een serial lib bestaat binnen JAL, maar deze krijg ik helaas niet aan de praat.

Wie kan me een beetje op weg helpen?

alvast bedankt!

oprecht vertrouwen wordt nooit geschaad


Verwijderd

Probeer je signaal is te inverteren.Rs-232 is volgens mij actief laag.

  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 22-11 19:33
Verwijderd schreef op woensdag 08 februari 2006 @ 21:27:
Probeer je signaal is te inverteren.Rs-232 is volgens mij actief laag.
Inderdaad, '0' is +12V en '1' is -12V. Een MAX232 is het gemakkelijkste om TTL-niveau (van je PIC, 0 en 5V) naar RS-232 niveau om te zetten.

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
Datasheet van de VFD

als ik die bestudeer, dan zou ik concluderen dat ik afwisselend 0 en 5 (heb ik voorhanden) volt moet sturen naar de VFD. Ondanks dat kom ik er niet uit.

Het gaat dus niet om het programeren van de PIC, maar om de PIC naar de VFD te laten communiceren, of begrijp ik jullie uitleg nu verkeerd?

oprecht vertrouwen wordt nooit geschaad


  • Belgar
  • Registratie: Januari 2002
  • Laatst online: 22-09 09:37

Belgar

Archmaster ranzige code..

Wat er bedoeld wordt is dat in de datasheet wordt verwezen naar RS-232 communicatie met de VFD.

uit de seriele poort van je computer komt -12 +12V, wat gebruikt kan worden door de VFD.

Echter leverd je PIC direct 0/5V wat dus moet worden omgezet naar +/-12. Het kan dus dat als je PIC 00001111 uitstuurd, je VFD dit begrijpt als 11110000

[ Voor 20% gewijzigd door Belgar op 08-02-2006 23:03 . Reden: andersom dus ]

...Als het maar werkt


  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
helder, hoofdletter A is Hex code 41
dat is binair 01000001.
met een start en eindbit wordt dat dan: 1010000010
geinverteerd is dat: 0101111101
dit leverd echter de eerste seconde 2 spaties, en vervolgens steeds een spatie en een letter 6 geinverteerd. af en toe een andere code in plaats van de geinverteerde 6, maar that's it.
Uit de character tabel betekend dat dat hij eigenlijk reageert alsof hij elke seconde een spatie + hex F6
(F6 = 11110110) krijgt. Een spatie kan veel betekenen dus daar kan ik niks over zeggen. Ik moet eerlijk zeggen dat me de logica ontgaat, maar het lijkt mij een timing probleem.

[ Voor 3% gewijzigd door Arjan op 08-02-2006 22:44 ]

oprecht vertrouwen wordt nooit geschaad


  • Belgar
  • Registratie: Januari 2002
  • Laatst online: 22-09 09:37

Belgar

Archmaster ranzige code..

Wat gebruik je voor je omzetting van 0/5 naar 12/-12 ?
Input Levels High (space/logic 0) +3 Volts to +15 Volts (Conforms to EIA-232 specification).
Low (mark/logic 1) –3 Volts to –15 Volts.
Gecontroleerd of de PIC ook op 19k2 draaid?
Voeg je zelf de start en stop bit toe?


Als ik de code zo zie, maak je geen gebruik van de interne UART van de 16f628. is daar een reden voor? maakt het wel een stuk makkelijker om de vfd aan te sturen

offtopic:
Overigens heb ik volgens mij exact dezelfde VFD, ik gebruik 'm echter direct op mijn serial port

[ Voor 28% gewijzigd door Belgar op 08-02-2006 23:14 ]

...Als het maar werkt


  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
ik merk dat ik aardig wat verkeerde aannames had gedaan :+

Ik ga eerst maar eens proberen een negatief voltage te regelen, daarna misschien maar eens opnieuw proberen dit probleem te tackelen :P

oprecht vertrouwen wordt nooit geschaad


  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 22-11 19:33
Atgast schreef op woensdag 08 februari 2006 @ 23:37:
ik merk dat ik aardig wat verkeerde aannames had gedaan :+

Ik ga eerst maar eens proberen een negatief voltage te regelen, daarna misschien maar eens opnieuw proberen dit probleem te tackelen :P
Gewoon een MAX232 en 4 condensatoren aan elkaar knopen, voeden met 5V, en die MAX zorgt zelf voor de positieve en negatieve 12V.
Om te testen: hang aan de RS232 kant de seriele poort van je PC, aan de TTL kant hang je beide draden (Rx en Tx) aan elkaar, en dan kan je in hyperterminal wat tekst intypen, die moet dubbel verschijnen (een keer als je het typt, dan wordt het ook serieel verzonden, omgezet naar TTL door de MAX, terug naar RS232 omgezet, ontvangen door de PC en nog eens op het scherm gezet). Dan weet je zeker dat dat werkt.

Je kan ook meteen je VFD aan je PC hangen om zo eens via hyperterminal handmatig iets op je VFD te proberen te typen, kan ook interessant zijn (dan ben je zeker van de juiste code's).

[ Voor 10% gewijzigd door naftebakje op 08-02-2006 23:59 ]

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.

Pagina: 1