LCD arduino na tijd rare tekens

Je kunt de datarate verlagen (in de library, waarschijnlijk), maar ik verwacht niet echt dat dat iets oplost; de rare tekens op het scherm suggereren dat het LCD een keer een clock puls heeft gemist, of, waarschijnlijker, storing op zijn clock lijn heeft aangezien voor een puls, en daardoor de synchronisatie met de Arduino kwijt is, in dat hij een nibble voor- of achterloopt.

Ik weet eigenlijk niet wat de gangbare manier is om dat opnieuw te synchroniseren, zonder reset puls of powercycle.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Aan de sketch zelf kun je weinig veranderen.
Misschien kun je een aanpassing doen in de library zelf.

Uit liquidcrystal.cpp (helemaal onderaan).

Daarin zie je dat de enable pin voor 1 uS hoog gemaakt wordt.
Je zou die waarde wat kunnen vergroten, bvb delayMicroseconds(5)

code:


void LiquidCrystal::pulseEnable(void) {
  digitalWrite(_enable_pin, LOW);
  delayMicroseconds(1);                                   //aan te passen
  digitalWrite(_enable_pin, HIGH);
  delayMicroseconds(1);    // enable pulse must be >450ns //aan te passen
  digitalWrite(_enable_pin, LOW);
  delayMicroseconds(100);   // commands need > 37us to settle
}

void LiquidCrystal::write4bits(uint8_t value) {
  for (int i = 0; i < 4; i++) {
    pinMode(_data_pins[i], OUTPUT);
    digitalWrite(_data_pins[i], (value >> i) & 0x01);
  }

  pulseEnable();
}

void LiquidCrystal::write8bits(uint8_t value) {
  for (int i = 0; i < 8; i++) {
    pinMode(_data_pins[i], OUTPUT);
    digitalWrite(_data_pins[i], (value >> i) & 0x01);
  }
  
  pulseEnable();
}

Mijn thuis is waar mijn Weller staat
Arco

Special Member

Met 10 mtr kabel ga je bij hoge frequenties dat toch al gauw merken. (gemiddelde FTP is 56pF/m, en dat hangt natuurlijk aan de bus...)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
big_fat_mama

Zie Paulinha_B

Enkel herkauwend wat reeds eerder gesteld werd, omdat het soms helpt om het in andere woorden te horen:

NIET GOED BEZIG:
* periodieke reset is niet meer dan een pleister op een houten been; strijdig met alle beroepstrots
* 10 meter is echt veel te veel voor parallele bekabeling

HOE KAN HET BETER:
* inderdaad een of ander controllertje vlakbij het display
* communicatie van het een naar het ander is te bekijken; als het mij te doen stond dan was het per Ethernet, maar daar wegen veel factoren mee. RS232 zou ook nog kunnen, mits correcte afscherming en aarding en niet al te hoge baudrate. Ik heb ooit printers aangestuurd over meer dan 20 meter met 38400 Baud, dat is al heel wat voor deze simpele niet-tijd-kritische toepassing.

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

Op 24 augustus 2019 17:32:35 schreef big_fat_mama:
...RS232 zou ook nog kunnen, mits correcte afscherming en aarding en niet al te hoge baudrate. Ik heb ooit printers aangestuurd over meer dan 20 meter met 38400 Baud, dat is al heel wat voor deze simpele niet-tijd-kritische toepassing.

20meter is peanuts. ik heb ooit discussie gehad op het werk dat ze een windsensor op het einde van de landingsbaan via RS232 naar een pc wilden verbinden die zomaar 500-800meter verder stond. RS232 gewoon doorgepatch over 2 telefoonlijnen van gebouw naar gebouw. ik was 100% overtuigt dat het niet zou werken, wel het werkte... baudrate weet ik niet meer, vermoed 2400bps.

Op 24 augustus 2019 15:23:04 schreef Arco:
Als er daar een desktop computer staat, stuur het dan daar naartoe. (Wifi of LAN)
Kan het hele display weg. (programmaatje op pc of via browser)

in de meeste bedrijven zal dit al niet meer mogen. daar moeten pc's voldoen aan bepaalde eisen, met 1 of andere goedgekeurde image OS erop. zomaar een oude pc daar zetten die iets eigen draait, zal binnen een paar jaar verboden worden. bij ons beginnen ze ons ook te nekken met onze eigen pc's en software. en veel van die software stamd nog uit de tijd van OS2 of windwos 95 die met veel gefoefel nog op winXP gekregen werd. nu moet dat op win10 en loopt overal fout. en toch moet het. pc's met ander OS mogen niet meer op het netwerk, ook al zijn dit afgescheiden Vlans

ik hou van werken ..., ik kan er uren naar kijken
Arco

Special Member

Oude PC hoeft niet, iedere pc met een browser voldoet...

Dat de zaak dichtgetimmerd is, is goed en gebeurt al veel langer.
Rond 2010 heb ik software volgens klantspecificatie gemaakt voor een overheidsinstelling. Verstuurde interne mails bij bepaalde inkomende telefoongesprekken.
Werkte uitstekend, maar is nooit gebruikt. (netwerk was dichtgetimmerd; berichten tussen pc's zenden was niet mogelijk)

Dat krijg je dus als de leiding hun wensen niet met de techneuten afstemt... (ze laten iets maken waar je niets aan hebt... ;) )

[Bericht gewijzigd door Arco op zondag 25 augustus 2019 22:19:38 (81%)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
buckfast_beekeeper

Golden Member

RS232 is vrij robusst. Als je zend aan max spec en je ontvangt aan de minimum, dan gaat het vrij goed. Ik heb vele jaren via RS232 communicatie gehad tussen (DOS) PC en een zelf gemaakt weerstation. Windsnelheid, -richting, grondtemperatuur, temperatuur op 1m en vijvertemperatuur werden zo gelogd in een Q-Basic programma, dat een cvs file aanmaakte. Communicatie was 1200Bd en de kabellengte zal wel een 30à40m geweest zijn. Pc zond een tag met op te vragen gegevens en de andere zijde beantwoordde met een gegeven. Op een week zaten er misschien 1 of 2 zichtbare fouten in. Was gewoon 4 of 5 aderige draad met afscherming niet eens twisted pair.

Van Lambiek wordt goede geuze gemaakt.
mel

Golden Member

Waarom niet een 20mA serie loop? Dat doen ze in de industrie ook.en daar zijn lengtes van wel kilometers...

u=ir betekent niet :U bent ingenieur..
big_fat_mama

Zie Paulinha_B

Beetje overkill, misschien...

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord
fatbeard

Honourable Member

Uit ervaring kan ik melden dat RS485 over zeer grote afstanden prima te doen is zonder slowmotion: 9600 baud over 4km dom 4-aderig draad (niet getwist, wel afgeschermd)...

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.