timer naar 4digit display
- christiaan
- Berichten: 86
- Geregistreerd: 31 Dec 2015, 14:11
timer naar 4digit display
hallo allemaal,
Ik ben ent nieuw met arduino, heb al veel dingetjes geprobeerd. Alleen wil ik nu graag iets gericht gaan uitvoeren wat ik ook binnenkort nodig heb.
Ik heb onderstaande code wat momenteel werkt als timer. Echter wil ik in plaats van dat het naar de seriële monitor wordt gestuurd, zichtbaar maken op een 4 digit display 7 segmenten met 4 aansluit punten (vcc, gnd, clk, dio)
Kan iemand me daarbij helpen???
Ik ben ent nieuw met arduino, heb al veel dingetjes geprobeerd. Alleen wil ik nu graag iets gericht gaan uitvoeren wat ik ook binnenkort nodig heb.
Ik heb onderstaande code wat momenteel werkt als timer. Echter wil ik in plaats van dat het naar de seriële monitor wordt gestuurd, zichtbaar maken op een 4 digit display 7 segmenten met 4 aansluit punten (vcc, gnd, clk, dio)
Kan iemand me daarbij helpen???
- Code: Alles selecteren
//countdown timer
#include <Time.h> //http://www.arduino.cc/playground/Code/Time
time_t t;
tmElements_t tm;
int seconds, minutes;
void setup(void)
{
Serial.begin(115200);
//initialize the starting time to 3 minutes and 0 seconds.
//the rest of the elements (hours, etc., don't matter much but should
//at least be set to something that makes sense.
tm.Second = 0;
tm.Minute = 3;
tm.Day = 1;
tm.Month = 4;
tm.Year = CalendarYrToTm(2012);
t = makeTime(tm);
}
void loop(void)
{
seconds = second(t);
minutes = minute(t);
if (minutes < 10) Serial.print('0'); //leading zero
Serial.print(minutes, DEC);
Serial.print(':');
if (seconds < 10) Serial.print('0'); //leading zero
Serial.println(seconds, DEC);
--t; //subtract a second
if (seconds + minutes == 0) {
Serial.println("BOOM!");
while (1); //infinite loop, press reset to restart
}
delay(100); //10x normal speed for demo purposes
}
Advertisement
Re: timer naar 4digit display
zoek op het type display maar eens naar een software of example,
en in de tussentijd ook naar blink without delay, want dat helpt je straks enorm.
of geef het type display wat je hebt gekocht.
je zult versteld staan hoe eenvoudig het wordt.
en in de tussentijd ook naar blink without delay, want dat helpt je straks enorm.
of geef het type display wat je hebt gekocht.
je zult versteld staan hoe eenvoudig het wordt.
paul deelen
shooter@home.nl
shooter@home.nl
Re: timer naar 4digit display
http://playground.arduino.cc/Main/TM1637
leuk he staat gewoon op de arduino site, onderaan kun je de lib ophalen van github.
leuk he staat gewoon op de arduino site, onderaan kun je de lib ophalen van github.
paul deelen
shooter@home.nl
shooter@home.nl
Re: timer naar 4digit display
op github staat rechts boven download zip en dat moet je doen, dan de uitgepakte files plaatsen in library\tm1637 hetzelfde als de h file die erin staat.
dan example ophalen en kijken wat er gebeurt.
dan example ophalen en kijken wat er gebeurt.
paul deelen
shooter@home.nl
shooter@home.nl
- christiaan
- Berichten: 86
- Geregistreerd: 31 Dec 2015, 14:11
Re: timer naar 4digit display
Ik heb onderhand een stuk of 3 / 4 verschillende libraries. Echter niet met een functie die ik zoek. Althans niet gevonden in de code ervan...
Re: timer naar 4digit display
zonder time is het makkelijker.
beschouw het display even als een teller die terugtelt.
begin bij 300
als getal is 299 ofwel %99 dan is het 259
dan telkens een delay van 1000 of nog liever werken met blink without delay
als getal is 0 dan boom.
met time wordt de display 100*minutes+seconds en dat stuur je dan naar de display.
beschouw het display even als een teller die terugtelt.
begin bij 300
als getal is 299 ofwel %99 dan is het 259
dan telkens een delay van 1000 of nog liever werken met blink without delay
als getal is 0 dan boom.
met time wordt de display 100*minutes+seconds en dat stuur je dan naar de display.
paul deelen
shooter@home.nl
shooter@home.nl
- christiaan
- Berichten: 86
- Geregistreerd: 31 Dec 2015, 14:11
Re: timer naar 4digit display
wordt het dan een for loop met decending (i--)
en dan i als waarde 3600 (seconden voor 1 uur) geven of denk ik nu weer veel te lastig?
en dan i als waarde 3600 (seconden voor 1 uur) geven of denk ik nu weer veel te lastig?
Re: timer naar 4digit display
ja dat kan wel, maar dan loopt je display slecht.
op 4 cijfers kun je 59 minuten, en 59 seconden zetten.
begin daar eens mee, en elke 1000 milliseconden (zie blink without delay) een functie doen, waarbij de seconden sec-- als sec==0 dan min-- en sec=59
als min en sec ==0 dan boom.
ik vertel je expres niet precies, anders leer je niks.
op 4 cijfers kun je 59 minuten, en 59 seconden zetten.
begin daar eens mee, en elke 1000 milliseconden (zie blink without delay) een functie doen, waarbij de seconden sec-- als sec==0 dan min-- en sec=59
als min en sec ==0 dan boom.
ik vertel je expres niet precies, anders leer je niks.
paul deelen
shooter@home.nl
shooter@home.nl
- christiaan
- Berichten: 86
- Geregistreerd: 31 Dec 2015, 14:11
Re: timer naar 4digit display
He onderstaande code gemaakt, werkt grotendeels, alleen het einde niet.
Op het moment dat de timer op 01:00 staat start hij weer opnieuw met 2 minuten...
Op het moment dat de timer op 01:00 staat start hij weer opnieuw met 2 minuten...
- Code: Alles selecteren
/*
Basic usage example
Demonstrated some of the basic functionality of the library. Initialize the display, set the backlight brightness, print some text, count from 0 to 100 and print on display and blink some text.
Note: make sure to set your serial monitor to line end: NEW LINE!
The circuit:
* connect TM1637 pin CLK to Arduino pin D4
* connect TM1637 pin DIO to Arduino pin D5
* connect TM1637 pin Vcc to Arduino pin 5V
* connect TM1637 pin GND to Arduino pin GND
Created 25 September 2015
By Bram Harmsen
https://github.com/bremme/arduino-tm1637
*/
// include the SevenSegmentTM1637 library
#include "SevenSegmentTM1637.h"
#include "SevenSegmentExtended.h"
/* initialize global TM1637 Display object
* The constructor takes two arguments, the number of the clock pin and the digital output pin:
* SevenSegmentTM1637(byte pinCLK, byte pinDIO);
*/
const byte PIN_CLK = 4; // define CLK pin (any digital pin)
const byte PIN_DIO = 5; // define DIO pin (any digital pin)
const byte d = 1000; // define D (delay) for 1000 milliseconds (= 1 second)
//SevenSegmentTM1637 display(PIN_CLK, PIN_DIO);
SevenSegmentExtended display(PIN_CLK, PIN_DIO);
int hours = 1; // initialize hours
int minutes = 59; // initialize minutes
byte timeT = hours & minutes;
bool gameEnd = false; // initialize gameEnd?
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); // initializes the Serial connection @ 9600 baud
display.begin(); // initializes the display
display.setBacklight(100); // set the brightness to 100 %
display.print("INIT"); // display INIT on the display
delay(1000); // wait 1000 ms
display.clear();
}
void loop() {
// put your main code here, to run repeatedly:
display.printDualCounter(hours, minutes);
uint8_t m = minutes;
uint8_t h;
for ( h=hours; h != 0; h--) {
for ( ; m != 0; m--) {
display.printTime((uint8_t)h, m);
delay(1000);
};
m = 59; // reset minute timer
};
if(hours == 0 && minutes == 0) {
display.print("FAIL");
}
}
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 8 gasten