tijd niet goed op LCD display
8 berichten
• Pagina 1 van 1
- babbelkwebbel
- Berichten: 68
- Geregistreerd: 21 Apr 2013, 22:48
- Woonplaats: Hoorn
tijd niet goed op LCD display
Beste Allemaal,
Ik ben net begonnen met de arduino, of te wel een hoop te leren , ik heb het volgende stukje software gemaakt, en loop nu tegen het probleem aan dat als de seconden onder de 10 zijn er maar 1 cijfer wordt weergeven, of te wel bij 4 seconden zie ik een 4 in plaats van 04 seconden, ik heb zitten zoeken, en kwam de float functie tegen, echter hier kom ik (nog) niet uit, heb al flink zitten te googlen, echter ik heb niets gevonden, waarschijnlijk verkeerde zoekterm gebruikt, wie kan me even op weg helpen met dit probleem?.
bij voorbaat dank.
#include <LiquidCrystal.h>
#include <Wire.h>
#include "RTClib.h"
RTC_Millis RTC;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // initialize the library with the numbers of the interface pins
void setup()
{
lcd.begin(20, 4); // set display parameters
lcd.clear(); // clear display
Serial.begin(57600);
RTC.begin(DateTime(__DATE__, __TIME__)); // following line sets the RTC to the date & time this sketch was compiled
}
void loop()
{
DateTime now = RTC.now();
lcd.setCursor(0,0);
lcd.print("NeEr LIGHTING SYSTEM");
lcd.setCursor(0,1);
lcd.print("");
lcd.setCursor(0,2);
lcd.print(now.hour(), DEC);
lcd.print(":");
lcd.print(now.minute(), DEC);
lcd.print(":");
lcd.print(now.second(), DEC);
lcd.setCursor(10,2);
lcd.print(now.day(), DEC);
lcd.print("-");
lcd.print(now.month(), DEC);
lcd.print("-");
lcd.print(now.year(), DEC);
delay(1000);
lcd.clear();
}
Ik ben net begonnen met de arduino, of te wel een hoop te leren , ik heb het volgende stukje software gemaakt, en loop nu tegen het probleem aan dat als de seconden onder de 10 zijn er maar 1 cijfer wordt weergeven, of te wel bij 4 seconden zie ik een 4 in plaats van 04 seconden, ik heb zitten zoeken, en kwam de float functie tegen, echter hier kom ik (nog) niet uit, heb al flink zitten te googlen, echter ik heb niets gevonden, waarschijnlijk verkeerde zoekterm gebruikt, wie kan me even op weg helpen met dit probleem?.
bij voorbaat dank.
#include <LiquidCrystal.h>
#include <Wire.h>
#include "RTClib.h"
RTC_Millis RTC;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // initialize the library with the numbers of the interface pins
void setup()
{
lcd.begin(20, 4); // set display parameters
lcd.clear(); // clear display
Serial.begin(57600);
RTC.begin(DateTime(__DATE__, __TIME__)); // following line sets the RTC to the date & time this sketch was compiled
}
void loop()
{
DateTime now = RTC.now();
lcd.setCursor(0,0);
lcd.print("NeEr LIGHTING SYSTEM");
lcd.setCursor(0,1);
lcd.print("");
lcd.setCursor(0,2);
lcd.print(now.hour(), DEC);
lcd.print(":");
lcd.print(now.minute(), DEC);
lcd.print(":");
lcd.print(now.second(), DEC);
lcd.setCursor(10,2);
lcd.print(now.day(), DEC);
lcd.print("-");
lcd.print(now.month(), DEC);
lcd.print("-");
lcd.print(now.year(), DEC);
delay(1000);
lcd.clear();
}
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: tijd niet goed op LCD display
sprintf() gebruiken:
Of nog gemakkelijker:
- Code: Alles selecteren
char result[3];
sprintf(result("%02d", now.hour); // bijvoorbeeld
lcd.print(hour);
Of nog gemakkelijker:
- Code: Alles selecteren
char result[9]; // 6 posities voor de cijfers + 2 voor de dubbele punt + 1 voor terminating char (= '\0')
sprintf(result, "%2d:%2d:%2d", now.hour(), now.minute(), now.second());
lcd.setCrusor(0,2);
lcd.print(result);
- babbelkwebbel
- Berichten: 68
- Geregistreerd: 21 Apr 2013, 22:48
- Woonplaats: Hoorn
Re: tijd niet goed op LCD display
Hartelijk dank voor uw reactie ik ga proberen dit te ontcijferen!.
Met vriendelijk groet
Erik,
ik heb gezocht in de arduino Language Reference, echter ik kan nergens het commando sprintf vinden ???..
Met vriendelijk groet
Erik,
ik heb gezocht in de arduino Language Reference, echter ik kan nergens het commando sprintf vinden ???..
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: tijd niet goed op LCD display
Arduino gebruikt gewoon de AVR-GCC compiler die nog wel veel meer ondersteund dan wat er in de Arduino reference staat. sprintf is onderdeel van stdio.h en wordt gewoon door de compiler verwerkt. Alleen de floats gaan niet lekker maar daar is een alternatief voor. stdio.h is een hele bak met standaard C functies die gewoon ondersteund worden
zie verder: http://www.cplusplus.com/reference/cstdio/sprintf/.
zie verder: http://www.cplusplus.com/reference/cstdio/sprintf/.
- babbelkwebbel
- Berichten: 68
- Geregistreerd: 21 Apr 2013, 22:48
- Woonplaats: Hoorn
Re: tijd niet goed op LCD display
nogmaals bedankt voor uw reactie!.
nou was ik voor mijn gevoel begonnen met een cursus chinees a la arduino, nu komt u met japans a la C, pffff dat wordt een zware dobber, eh is het trouwens ook te doen met instructies uit de arduino reference?..
Met vriendelijke groet
Erik,
nou was ik voor mijn gevoel begonnen met een cursus chinees a la arduino, nu komt u met japans a la C, pffff dat wordt een zware dobber, eh is het trouwens ook te doen met instructies uit de arduino reference?..
Met vriendelijke groet
Erik,
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: tijd niet goed op LCD display
C++ is gebouwd grotendeels op C. Jij wilt Japans leren zonder het alfabet te kennen
Mogelijk geeft String een oplossing. Maar een slechtere oplossing kun je niet kiezen.
Mogelijk geeft String een oplossing. Maar een slechtere oplossing kun je niet kiezen.
Re: tijd niet goed op LCD display
ach een mooie om te leren!
jij wilt dus een 0 zien als het cijfer onder de 10 is dus if cijfer <10 { schrijf 0}
omdat dit een leerding is hou ik het even cryptisch.
lekker puzzelen.
jij wilt dus een 0 zien als het cijfer onder de 10 is dus if cijfer <10 { schrijf 0}
omdat dit een leerding is hou ik het even cryptisch.
lekker puzzelen.
paul deelen
shooter@home.nl
shooter@home.nl
Re: tijd niet goed op LCD display
misschien helpt dit iets
lcd.setCursor(6, 4);
if (uren < 10){
lcd.print('0');
groet dirk ambu
lcd.setCursor(6, 4);
if (uren < 10){
lcd.print('0');
groet dirk ambu
8 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 18 gasten