stopwatch met 1 knop voor reset/start
5 berichten
• Pagina 1 van 1
stopwatch met 1 knop voor reset/start
Hallo allemaal,
Mijn naam is Johan ik ben een echte hobbyist maak het liefst mijn handen vuil olie smeer zaagsel overal kan ik aardig mee uit de voeten! Een Arduino heb ik echter nog nooit gebruikt (op een paar YouTube lessen na)
Nu ben ik met een project bezig waar een Stopwatch in moet komen tellend in secondes en minuten. Nu hoor ik jullie denken een stopwacht is bij elke sport en speelgoed winkel te koop! Hier ben ik inderdaad mee bezig geweest het probleem is echter dat ik 1 knop moet hebben voor een nieuwe start op 00:00 en deze hebben naar mijn mening altijd 2 knoppen een "pauze" en "reset" knop
Nu is het mijn idee om te gebruiken:
-Arduino uno R3
-7 Segment TM 1632 Display (https://hackerstore.nl/Artikel/1016)
-1 druk schakelaar
Nu het probleem:
-heb geen idee hoe het werkt op internet kan ik alleen een stopwatch vinden met meer knoppen
-Is een 7 Segment TM 1632 Display een goede keus? Hiervoor gekozen in verband met minder draden om aan te sluiten
-Hoe sluit ik de drukknop aan
Hij moet uiteindelijk gaan tellen beginnend op 00:00 totdat er op de knop wordt gedrukt dan moet die direct weer bij 00:00 beginnen
De tijd zal nooit heel veel worden niet meer dan 10 minuten dus bijvoorbeeld 09:34
Nu nog een stukje code die ik heb gevonden voor het aansluiten van het display
#include <Arduino.h>
#include <TM1637Display.h>
// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3
// The amount of time (in milliseconds) between tests
#define TEST_DELAY 2000
const uint8_t SEG_DONE[] = {
SEG_B | SEG_C | SEG_D | SEG_E | SEG_G, // d
SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // O
SEG_C | SEG_E | SEG_G, // n
SEG_A | SEG_D | SEG_E | SEG_F | SEG_G // E
};
TM1637Display display(CLK, DIO);
void setup()
{
}
void loop()
{
int k;
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
display.setBrightness(0x0f);
// All segments on
display.setSegments(data);
delay(TEST_DELAY);
// Selectively set different digits
data[0] = 0b01001001;
data[1] = display.encodeDigit(1);
data[2] = display.encodeDigit(2);
data[3] = display.encodeDigit(3);
for(k = 3; k >= 0; k--) {
display.setSegments(data, 1, k);
delay(TEST_DELAY);
}
display.setSegments(data+2, 2, 2);
delay(TEST_DELAY);
display.setSegments(data+2, 2, 1);
delay(TEST_DELAY);
display.setSegments(data+1, 3, 1);
delay(TEST_DELAY);
// Show decimal numbers with/without leading zeros
bool lz = false;
for (uint8_t z = 0; z < 2; z++) {
for(k = 0; k < 10000; k += k*4 + 7) {
display.showNumberDec(k, lz);
delay(TEST_DELAY);
}
lz = true;
}
// Show decimal number whose length is smaller than 4
for(k = 0; k < 4; k++)
data[k] = 0;
display.setSegments(data);
display.showNumberDec(153, false, 3, 1);
delay(TEST_DELAY);
display.showNumberDec(22, false, 2, 2);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 3);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 2);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 1);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 0);
delay(TEST_DELAY);
// Brightness Test
for(k = 0; k < 4; k++)
data[k] = 0xff;
for(k = 0; k < 16; k++) {
display.setBrightness(k);
display.setSegments(data);
delay(TEST_DELAY);
}
// Done!
display.setSegments(SEG_DONE);
while(1);
}
Ik hoop dat iemand wijs wordt van mijn verhaal! Ben duidelijk geen verhalen schrijver
Alvast bedankt voor de tijd en moeite
Groeten Johan
Mijn naam is Johan ik ben een echte hobbyist maak het liefst mijn handen vuil olie smeer zaagsel overal kan ik aardig mee uit de voeten! Een Arduino heb ik echter nog nooit gebruikt (op een paar YouTube lessen na)
Nu ben ik met een project bezig waar een Stopwatch in moet komen tellend in secondes en minuten. Nu hoor ik jullie denken een stopwacht is bij elke sport en speelgoed winkel te koop! Hier ben ik inderdaad mee bezig geweest het probleem is echter dat ik 1 knop moet hebben voor een nieuwe start op 00:00 en deze hebben naar mijn mening altijd 2 knoppen een "pauze" en "reset" knop
Nu is het mijn idee om te gebruiken:
-Arduino uno R3
-7 Segment TM 1632 Display (https://hackerstore.nl/Artikel/1016)
-1 druk schakelaar
Nu het probleem:
-heb geen idee hoe het werkt op internet kan ik alleen een stopwatch vinden met meer knoppen
-Is een 7 Segment TM 1632 Display een goede keus? Hiervoor gekozen in verband met minder draden om aan te sluiten
-Hoe sluit ik de drukknop aan
Hij moet uiteindelijk gaan tellen beginnend op 00:00 totdat er op de knop wordt gedrukt dan moet die direct weer bij 00:00 beginnen
De tijd zal nooit heel veel worden niet meer dan 10 minuten dus bijvoorbeeld 09:34
Nu nog een stukje code die ik heb gevonden voor het aansluiten van het display
#include <Arduino.h>
#include <TM1637Display.h>
// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3
// The amount of time (in milliseconds) between tests
#define TEST_DELAY 2000
const uint8_t SEG_DONE[] = {
SEG_B | SEG_C | SEG_D | SEG_E | SEG_G, // d
SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // O
SEG_C | SEG_E | SEG_G, // n
SEG_A | SEG_D | SEG_E | SEG_F | SEG_G // E
};
TM1637Display display(CLK, DIO);
void setup()
{
}
void loop()
{
int k;
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
display.setBrightness(0x0f);
// All segments on
display.setSegments(data);
delay(TEST_DELAY);
// Selectively set different digits
data[0] = 0b01001001;
data[1] = display.encodeDigit(1);
data[2] = display.encodeDigit(2);
data[3] = display.encodeDigit(3);
for(k = 3; k >= 0; k--) {
display.setSegments(data, 1, k);
delay(TEST_DELAY);
}
display.setSegments(data+2, 2, 2);
delay(TEST_DELAY);
display.setSegments(data+2, 2, 1);
delay(TEST_DELAY);
display.setSegments(data+1, 3, 1);
delay(TEST_DELAY);
// Show decimal numbers with/without leading zeros
bool lz = false;
for (uint8_t z = 0; z < 2; z++) {
for(k = 0; k < 10000; k += k*4 + 7) {
display.showNumberDec(k, lz);
delay(TEST_DELAY);
}
lz = true;
}
// Show decimal number whose length is smaller than 4
for(k = 0; k < 4; k++)
data[k] = 0;
display.setSegments(data);
display.showNumberDec(153, false, 3, 1);
delay(TEST_DELAY);
display.showNumberDec(22, false, 2, 2);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 3);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 2);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 1);
delay(TEST_DELAY);
display.showNumberDec(0, true, 1, 0);
delay(TEST_DELAY);
// Brightness Test
for(k = 0; k < 4; k++)
data[k] = 0xff;
for(k = 0; k < 16; k++) {
display.setBrightness(k);
display.setSegments(data);
delay(TEST_DELAY);
}
// Done!
display.setSegments(SEG_DONE);
while(1);
}
Ik hoop dat iemand wijs wordt van mijn verhaal! Ben duidelijk geen verhalen schrijver
Alvast bedankt voor de tijd en moeite
Groeten Johan
Advertisement
Re: stopwatch met 1 knop voor reset/start
bedankt voor je reactie!
Heb de spullen binnen en ben er lekker mee bezig zover als ik er verstand van heb.
heb een code gevonden wat eigenlijk een klok is maar hij telt secondes en dit is de bedoeling. Had een reset knop gemaakt via de reset port op de Arduino maar kwam er achter dat die dan echt opnieuw opstart dit lijkt mij niet helemaal de bedoeling en meent ook te veel tijd in beslag
de code van de klok die werkt voor mij is:
cpp code
De code van de reset button die in het bericht hierboven staat heb ik geprobeerd en kan de LED op de arduino laten branden en uit laten gaan
Maar hoe kan ik deze code hieraan toevoegen?
Heb de spullen binnen en ben er lekker mee bezig zover als ik er verstand van heb.
heb een code gevonden wat eigenlijk een klok is maar hij telt secondes en dit is de bedoeling. Had een reset knop gemaakt via de reset port op de Arduino maar kwam er achter dat die dan echt opnieuw opstart dit lijkt mij niet helemaal de bedoeling en meent ook te veel tijd in beslag
de code van de klok die werkt voor mij is:
cpp code
/*
Clock example example (Extended class example)
Display a clock on the display. For this demo you can add a speed multiplier to make the clock run faster. For a real clock you want to use a delay of 1 min or even use a Real Time Clock module (RTC)
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)
SevenSegmentExtended display(PIN_CLK, PIN_DIO);
const unsigned int clockSpeed = 1; // speed up clock for demo
// run setup code
void setup() {
Serial.begin(9600); // initializes the Serial connection @ 9600 baud
display.begin(); // initializes the display
display.setBacklight(100); // set the brightness to 100 %
delay(1000); // wait 100 ms
};
// run loop (forever)
void loop() {
byte hours = 00; // initialize hours
byte minutes = 00; // initialize minutes
for ( ; hours < 99; hours++) { // count hours up to 99
for ( ; minutes < 60; minutes++) { // count minutes up to 59
display.printTime(hours, minutes, true); // display time
delay(1000 / clockSpeed); // clock delay ms
};
minutes = 0; // reset minutes
};
};
De code van de reset button die in het bericht hierboven staat heb ik geprobeerd en kan de LED op de arduino laten branden en uit laten gaan
Maar hoe kan ik deze code hieraan toevoegen?
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: stopwatch met 1 knop voor reset/start
Door tutorials te volgen en te oefenen bijvoorbeeld....
- Gij Kieken
- Berichten: 632
- Geregistreerd: 15 Nov 2015, 11:54
Re: stopwatch met 1 knop voor reset/start
Lees dit eens door pas het aan naar behoefte en probeer. <https://www.arduino.cc/reference/en/language/structure/control-structure/break/>
Tip, lees een knop in en voer actie uit.
Je timer zal ook niet erg nauwkeurig lopen door het gebruik van delay(),
ook de reactie tijd waarop je knop reageert zal niet lekker lopen.
Beter is om met millis te werken.
Tip, lees een knop in en voer actie uit.
Je timer zal ook niet erg nauwkeurig lopen door het gebruik van delay(),
ook de reactie tijd waarop je knop reageert zal niet lekker lopen.
Beter is om met millis te werken.
5 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 3 gasten