Pages: 1 2 3 [4] 5   Go Down
Author Topic: Electronisch Jurerings Systeem  (Read 17510 times)
0 Members and 1 Guest are viewing this topic.
Belgium, Bredene
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi CrossRoads, MAS3,

@CrossRoads
Quote
Too much to translate ...
I had made a post in the international section a time ago : http://forum.arduino.cc/index.php?topic=192786.msg1424619#msg1424619
It was not called EJS at that time, sorry for pointing you in the wrong direction CrossRoads  smiley-red

But if wanted, i can post a total translation of what i'm aiming for, but I know it's like a crazy project (for sure if you're a newbie on this matter), but we have so much fun with our doggy's and all the handlers, I want this to be as good as it gets.  I know I took an enormous task on me to try to make this work, but hey all those wonderfull dogs and people are more than worth it  smiley-cool

@MAS3
(ik vraag me af of ik nu in het nederlands moet voortdoen, maar ik ga even in het engels door voor CrossRoad)

MAS3, i think I will throw the LEDDisplay overboard, and buy an appropriate LCDdisplay for now (but I will still try to get the LEDDisplay working, won't give up on that one so easy  smiley-evil )

I think if i get a LCDDisplay that shows 4 lines of 20char, I can start with that, I need to see results of timing prototyping.
I also found Rob's Library "StopWatch Library", that's a good start to get experimenting with.

I'll keep you guys posted on the progression of the LEDdisplay after the weekend, it's training time first  smiley

Thanks again for your attention on this item, I'll post some new findings later on....

Grtzzz,
Yves

Logged

The Netherlands
Offline Offline
Edison Member
*
Karma: 50
Posts: 1657
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

As we are in the Dutch language section here, i think we should stick to Dutch.

Daarom dus in het Nederlands.
Gooi dat display niet overboord, das zonde.
Leg m ergens neer om weer op te pakken als je er aan toe bent.
Een display is een perfect hulpmiddel voor debugging dus altijd een goed idee.
Ik heb destijds als eerste een LCD Keypad shield mee besteld met mijn eerste Arduino (nano), en er  geen moment spijt van gehad.
En je vind zulke displays op hetzelfde adres als waar je dit ding vandaan hebt, ook 2004 (als dan niet met I2C backpack), je moet alleen wel gemiddeld 1 week op verzenden en dan nog 2 a 3 weken op aankomst wachten.
Logged

Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

Belgium, Bredene
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey MAS3,

Quote
Gooi dat display niet overboord, das zonde.
ohhh, maar dat LEDDisplay is er nog niet vanaf hoor met mij  smiley-razz, daarvoor is de uitdaging te groot...

Ik heb inderdaad die 2004 op het oog, met die Serial IIC/I2C/TWI, alhoewel ik daar ook nog m'n bezighouding mee ga hebben, want behalve die I2C, heb ik de andere afkortingen nog niet echt uitgeplozen via internet, waartoe ze dienen, hoe je ze aanstuurt enzovoort...

Die paar weken wachten lukt wel, intussen kan ik wat verder dingen ontdekken en uitproberen, ik wil ook eens op dit forum te rade gaan bij de internationale sectie, hoe ik best de tijdsmeting opzet, ik zou zéér graag wat tijd nemen om me te verdiepen in de bibliotheek van Rob, en...ik moet ook nog eens uitzoeken of het aan te raden is om met interrupts te werken of beter niet (al was het maar om een "flag" te zetten), en dan verder in de code die handel op te vangen, ik wil (op aanraden van Rob trouwens) vermijden dat ik mezelf vastzet in nodeloze routines en delay's, en al zeker niet in de interrupts, omdat het dan kennelijk hopeloos wordt.

Anderzijds wil ik toch proberen om zo snel als mogelijk een basis-chronometertje te maken waarop ik dan voortbouwen, want zoals ik al eerder vermeldde is het waarschijnlijk een megalomaan project voor iemand met mijn beperkte kennis, maar de motivatie wordt er niet minder op.

Grtzzz,
Yves
Logged

The Netherlands
Offline Offline
Edison Member
*
Karma: 50
Posts: 1657
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

IIC en I2C betekenen exact hetzelfde (de I2 staat voor 2 keer I).
TWI staat voor Two Wire Interface.
Dat is een officieuze versie van hetzelfde protocol, met andere woorden een clone die een andere naam heeft gekregen om niet in problemen te komen met Philips / NXP die I2C heeft bedacht.

Ik raad je aan om een overzicht te maken van wat je wil doen, en daarbij de belangrijkste taak ook voorrang geven wanneer je het uiteindelijk gaat uitwerken.
Die taak is dus tijdmeting.
Tijd weergave lijkt me van minder belang, zolang het eindresultaat maar blijft kloppen.
Maar dit moet je dus zelf uitwerken.
Probeer je taken zo veel mogelijk onder te verdelen in deeltaken, dan is het eenvoudiger het overzicht te houden en die taken op te lossen.
Logged

Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

Belgium, Bredene
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey allemaal,

er begint wat schot in de zaak te komen, het chronometer gedeelte is zo goed als afgewerkt, en intussen is m'n 2004 LCD display ook binnen, het was een fluitje van een cent om die aan de praat te krijgen. goed product trouwens.

maar nu heb ik een ander probleem, via de seriële monitor kan ik gegevens uitlezen in de arduino IDE, maar ik heb moeite om tijden met drie decimalen weer te geven op het LCD display (al zal het daar wel niet aan liggen denk ik)

als ik gewone rekenkundige logica toepas, dan kloppen m'n waardes wel, maar ik krijg ze niet correct decimaal weergeven.
Code:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
.....
      if (Tijd0 == 0)
        { 
        Tijd0 = millis();
        Wissel0 = (Tijd0 - Racetijd); //bvb 6836 - 7532 = "-696" duizendsten te vroeg door de sensor
        float gewisselt = (Wissel0/1000);
        rood(); // lichtje aansteken om aan te tonen dat er iets fout liep
        lcd.setCursor(0,1);
        lcd.print("Fouttijd : ");
        lcd.print(Tijd0);
        lcd.setCursor(0,3);       
        lcd.print("Startfout : ");
        lcd.print(Wissel0);
        }
.....

en dan krijg ik bij de uitlezing "Startfout : -696" ipv van het gewenste "-0.696"
en als ik wat experimenteer met random getallen dan kan ik wel decimalen op het LCD krijgen, maar met slechts twee decimalen dan...

wat doe ik hier verkeerd? moet ik dit anders aanpakken? gebruik ik niet de juiste functies?

Grtz,
Yves
Logged

Forum Moderator
Belgium
Offline Offline
Edison Member
*****
Karma: 68
Posts: 1918
Arduino rocks; but with my plugin it can fly rocking the world ;-)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Het eerste wat me opvalt is dat je gewisselt berekend maar Wissel0 gebruikt op de lcd.

misschien is het tijd om eens naar de sprintf functie te kijken
snprintf werk exact hetzelfde als printf maar schrijft naar een buffer. Voor de format string kan je dus beter naar printf kijken http://www.cplusplus.com/reference/cstdio/printf/
wat je wilt is iets als (ongeteste code)
Code:
        char buffer[17]; //16 karakters plus een terminating 0
        snprintf(buffer,sizeof(buffer),"Fouttijd :  %lu Startfout : %f.3",Tijd0,gewisselt);
        lcd.setCursor(0,1);
        lcd.print(buffer);
merk op dat ik veronderstel dat Tijd0 een unsigned long is en gewisselt een float en dat je lcd maar 16 characters breed is.

met de gcc compiler werkt ul niet maar lu wel. Ik denk dat het %f.3 moet zijn maar het kan ook zijn dat je %.3f moet gebruiken.

Met vriendelijke groet
Jantje
Logged

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Belgium, Bredene
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey Jantje,

alvast bedankt voor je reply.

heb deze namiddag wat zitten experimenteren, met het naslagwerkje omtrent printf bij de hand, maar ik krijg alleen "-1" op m'n display (wss de foutmelding vanuit de functie printf)

ik heb tientallen combinaties uitgeprobeert, ook zonder met tijden te werken enzo.

tekst kan ik mooi weergeven, maar de %f.3 aanroepen geven ofwel niets terug of -1


Code:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <stdio.h>
.....
      if (Tijd0 == 0)
        {
        Tijd0 = millis();
        int Wissel = (Tijd0 - (Starttijd+3000));
        float gewisselt = Wissel/1000;
        rood(); // fout lamp aanzetten
        lcd.clear();
        char buffer[21]; //20 karakters plus een terminating 0
        snprintf(buffer,sizeof(buffer),"Fouttijd : %f.3 ",gewisselt);
        lcd.setCursor(0,1);
        lcd.print(buffer);       
        }
      }

als ik bovenstaande laat lopen dan krijg ik enkel : "Fouttijd :"
met %.3f => "Fouttijd : ?"
met %.f3 => "Fouttijd : ?3"
met %lu.3 =>"Fouttijd : 0.3"
enzovoort,

ik heb quasi alle combinaties uitgeprobeerd uit de printf handleiding, maar heb nog geen resultaat kunnen boeken...
ik vermoed dat, door het ontbreken van een FPU, er een probleem is dat ik niet kan aanduiden met mijn beperkte kennis.

iemand een idee, work-around?

Grtz,
Yves
Logged

Forum Moderator
Belgium
Offline Offline
Edison Member
*****
Karma: 68
Posts: 1918
Arduino rocks; but with my plugin it can fly rocking the world ;-)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Inderdaad dat wekt niet.  smiley-eek
Na wat opzoekwerk vond ik dit
Quote
Also note that by default the Arduino IDE does not set the AVR linker options to support floating point in the xxprintf() routines. So while that saves quite a bit of code space on the AVR builds, it means that printf() functions cannot be used for floating point output on the AVR. Floating support is included by default for the other processors.
hier http://playground.arduino.cc/Main/Printf#.UxC1PvFl7PE

De workaround is hier omschreven: http://www.coocox.org/forum/topic.php?id=346 maar ik snap het niet echt.

Een andere workaround is rekenen
Quote
  float gewisselt = 12.54321;

  char buffer[21]; //20 karakters plus een terminating 0
  int voorkomma=gewisselt;
  int nakomma=(gewisselt-voorkomma)*1000;
  snprintf(buffer,sizeof(buffer),"Fouttijd : %i.%i",voorkomma,nakomma);

  Serial.println(buffer);

Logged

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Forum Moderator
Belgium
Offline Offline
Edison Member
*****
Karma: 68
Posts: 1918
Arduino rocks; but with my plugin it can fly rocking the world ;-)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

rofl
Arduino heeft net deze issue gesloten.
https://github.com/arduino/Arduino/issues/1719
als alternatief wordt dtostrf gemeld die iets gelijk aardig doet aan sfprintf %f http://www.atmel.no/webdoc/AVRLibcReferenceManual/group__avr__stdlib_1ga060c998e77fb5fc0d3168b3ce8771d42.html
Je kan er ook de compile opties vinden om het wel te doen werken.
Met vriendelijke groet
Jantje
Logged

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Belgium, Bredene
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey Jantje,

dit is alvast prachtig opgelost door dtostrf()

Code:
       {
       Tijd0 = millis();
        Wissel0 = (Tijd0 - (Starttijd+3000));
        float gewisselt = Wissel0/1000.0;
        rood();
        char buf[6]; //20 karakters plus een terminating 0
        dtostrf(gewisselt,5,3,buf);
        lcd.clear();       
        lcd.setCursor(0,0);
        lcd.print("FOUTIEVE START !!");
        lcd.setCursor(0,2);
        lcd.print("Startfout : ");
        lcd.print(buf);
        }

ik kan weer even verder (tot ik weer ergens tegenaan loop dat niet lukt)  smiley

Alvast héél erg bedankt voor het opzoek- en ondersteuningswerk ....

Hopelijk kan ik ooit mensen vooruit helpen op deze wijze

Thanks!!,

Grtz,
Yves
Logged

Belgium, Bredene
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey allemaal,

ik heb nog een beginnersvraagje.

mijn LCD 2004 is nu aangesloten op de pinnen 20&21 (SDA -SCL), maar op de pinnen nabij de USB jack staan ook nog eens een SDA-SCL vermelding volgens de Rev.3 pin layout. Ik veronderstel dat deze intern in verbinding staan met deze die ik nu gebruik.

maar is er een mogelijkheid om een tweede, identieke LCD 2004 aan te sluiten om m'n MEGA (via die andere 2 pinnen, en een ander adres ipv 0x27?
dit gebruik ik nu
Code:
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

kan ik bijvoorbeeld een twee aanroep doen als volgt:
Code:
LiquidCrystal_I2C lcd(0x20, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

want dat zou het natuurlijk helemaal te gek maken, op die manier kan ik twee banen van data voorzien natuurlijk...
of ben ik nu aan het freewheelen?

Grtz,
Yves

edit 1/3/2014 : 20:55
euhm, werkt niet natuurlijk, net eens getest, m'n 2004'tje heeft die 0x27 nodig, jammer, jammer...
« Last Edit: March 01, 2014, 02:46:30 pm by YvesD » Logged

Forum Moderator
Belgium
Offline Offline
Edison Member
*****
Karma: 68
Posts: 1918
Arduino rocks; but with my plugin it can fly rocking the world ;-)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

dat kan werken als je je lcd kan wijs maken dat hij op 0x20, moet luisteren
Logged

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

The Netherlands
Offline Offline
Edison Member
*
Karma: 50
Posts: 1657
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote from: YvesD
euhm, werkt niet natuurlijk, net eens getest, m'n 2004'tje heeft die 0x27 nodig, jammer, jammer...

Weet je dat zeker ?
Die 0x27 is waar ie nu op is ingesteld, maar meestal kun je dat wel instellen.
Dat is dan niet altijd even eenvoudig, maar als ik jou was zou ik het niet zo eenvoudig opgeven.
Daarom, heb je een link naar het exacte product, of een duidelijke foto van je display (of het adapterprintje dat er vermoedelijk op zit) ?
Logged

Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

Belgium, Bredene
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey MAS3,
thanks voor het voorstel
nu staat hij op 0x20 (heb ik via een eerdere klant, op de pagina van de dealer kunnen uitvissen), in tegenstelling tot de 0x27 die de dealer zelf aangeeft.

ik heb er wel geen datasheet voor gekregen, maar mogelijks heeft iemand hier iets aan
http://www.aliexpress.com/snapshot/6010197527.html

het is echt een zalig, mooi helder display, top stukje hardware
(ook voor iemand die nieuw is in dit alles, zoals ik, is het een eitje om het aan de praat te krijgen)

ik heb eens op het bordje gekeken op de achterzijde (die LM1602-IIC-TWI) maar ik vind daar nergens iets op wat er op zou wijzen dat je een adres kan instellen...

maar wie ben ik om daar al zo snel een oordeel over te vellen natuurlijk  smiley-kiss

maar als het mogelijk zou zijn, dan ga ik er echt voor gaan, dat wel.

Thanks,

Grtz,
Yves
Logged

The Netherlands
Offline Offline
Edison Member
*
Karma: 50
Posts: 1657
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dat is dus inderdaad zo'n backpack.
Die zijn er in veel uitvoeringen die er ook allemaal op het eerste gezicht hetzelfde uitzien.
De foto's laten het niet echt goed zien, maar er zijn geen soldeerverbindingen die je kunt verwijderen om het adres aan te passen.
Om daar helemaal zeker van te zijn, zou ik eigenlijk een goede close up foto moeten zien van dat kleine printje, en als je dat wil proberen is het altijd mogelijk om dat adres aan te passen door aan die chip te solderen.
Daar moet je wel een beetje voor geoefend zijn in het solderen, want das allemaal nogal klein.
Maar mogelijk is het zeker.
Logged

Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

Pages: 1 2 3 [4] 5   Go Up
Jump to: