stopwatch met 1 knop voor reset/start

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 7
Geregistreerd: 14 Mrt 2018, 16:18

stopwatch met 1 knop voor reset/start

Berichtdoor jopiell » 14 Mrt 2018, 16:58

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

Advertisement

Gebruikers-avatar
Berichten: 210
Geregistreerd: 03 Sep 2013, 10:03
Woonplaats: Katwijk ZH

Re: stopwatch met 1 knop voor reset/start

Berichtdoor baco1978 » 14 Mrt 2018, 23:18

het gekozen display is prima :)

kijk eens hier naar

https://www.arduino.cc/en/Tutorial/Button
Met vriendelijke groet Arjan

Berichten: 7
Geregistreerd: 14 Mrt 2018, 16:18

Re: stopwatch met 1 knop voor reset/start

Berichtdoor jopiell » 17 Mrt 2018, 13:34

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
/*
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 :D

Maar hoe kan ik deze code hieraan toevoegen?

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: stopwatch met 1 knop voor reset/start

Berichtdoor nicoverduin » 17 Mrt 2018, 14:02

Door tutorials te volgen en te oefenen bijvoorbeeld....
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: stopwatch met 1 knop voor reset/start

Berichtdoor Gij Kieken » 17 Mrt 2018, 15:00

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.

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 6 gasten