timer naar 4digit display

algemene C code
Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: timer naar 4digit display

Berichtdoor shooter » 27 Jan 2016, 20:41

je moet hem wel na een halve seconde uitzetten met een AND natuurlijk bijv. met 7F
paul deelen
shooter@home.nl

Advertisement

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

Re: timer naar 4digit display

Berichtdoor Gij Kieken » 27 Jan 2016, 20:42

Als je twee librarys door elkaar gooit wat betreft functies enzo wordt het inderdaad een kakafonie.Degene die je nu gebruikt meen ik dat ze on /of colon niet ondersteund.

Berichten: 86
Geregistreerd: 31 Dec 2015, 14:11

Re: timer naar 4digit display

Berichtdoor christiaan » 27 Jan 2016, 20:43

hoe bedoel je shooter??

en er kunnen ook geen twee library's gebruikt worden, want het display ism de mega, ondersteund geen enkel andere, behalve de huidige library

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

Re: timer naar 4digit display

Berichtdoor Gij Kieken » 27 Jan 2016, 20:47

Dat klopt, wat ik bedoel is je leest de intructies van de eene library en wilt ze gebruiken in de andere dit lukt niet,maar dit wist je wel.
Wat Shooter bedoeld is dat je met And & Or bit's kunt maskeren om zo doende de dubbele punt zichtbaar of niet te maken en dit b.v. iedere halve seconde.
Probeer een en ander wat uit om de werking ervan te bevatten.
Laatst gewijzigd door Gij Kieken op 27 Jan 2016, 20:53, in totaal 1 keer gewijzigd.

Berichten: 86
Geregistreerd: 31 Dec 2015, 14:11

Re: timer naar 4digit display

Berichtdoor christiaan » 27 Jan 2016, 20:49

Je leest het verkeerd. De code van &segto vond ik op internet die werkt met deze library. Echter is het een milliseconde dat hij aangaat. Dit moet niet, dit moet langer.
Verder past hij door die code van &segto het 2e segment van links aan van 0 naar 2 (dit moet al helemaal niet)

Verder is de library die ik gebruik in mijn huidige code de enige library die de mega ism het display die het ondersteunt. Andere library gebruiken kan dus niet want dan kan mijn display niet aangestuurd worden

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

Re: timer naar 4digit display

Berichtdoor Gij Kieken » 27 Jan 2016, 20:58

Kan kloppen daarom bekijk die display.encodeDigit(0) nog eens nader.

Berichten: 86
Geregistreerd: 31 Dec 2015, 14:11

Re: timer naar 4digit display

Berichtdoor christiaan » 27 Jan 2016, 21:00

Gij Kieken schreef:Kan kloppen daarom bekijk die display.encodeDigit(0) nog eens nader.


Wordt lastig als je al dagen op internet zoekt naar een goede code, en niks kan vinden... laat staan over specifieke delen

Berichten: 86
Geregistreerd: 31 Dec 2015, 14:11

Re: timer naar 4digit display

Berichtdoor christiaan » 27 Jan 2016, 21:05

Ik vond dit, maar werkt ook niet.
Hij heeft de library aangepast zodat display.setColon(true) werkt, alleen geen verandering in het scherm
https://forum.arduino.cc/index.php?topic=271238.0

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

Re: timer naar 4digit display

Berichtdoor nicoverduin » 27 Jan 2016, 21:11

christiaan schreef:
Gij Kieken schreef:Kan kloppen daarom bekijk die display.encodeDigit(0) nog eens nader.


Wordt lastig als je al dagen op internet zoekt naar een goede code, en niks kan vinden... laat staan over specifieke delen
dagen pas?.....
Kennelijk zijn er meerdere libraries. Wat de Mega ermee te maken heeft is mij niet duidelijk. Flash geheugen? kan ik me niet voorstellen voor zo'n klein programmatje. Ram geheugen? Zelfde punt als eerder. Aantal IO's nope... dus waarom kan die andere lib niet werken?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 86
Geregistreerd: 31 Dec 2015, 14:11

Re: timer naar 4digit display

Berichtdoor christiaan » 27 Jan 2016, 22:05

Ik heb het gedeeltelijk opgelost, nu nog kijken voor de inplentatie:

Dit is de code:
Code: Alles selecteren
uint8_t test[] = { 0b00000000,0b10000000 };
  display.setSegments(test);


Nu moet ik dat in onderstaande code krijgen, voor het gemak heb ik aangeduid waar dit moet:

Code: Alles selecteren
#include "LedControlMS.h"
#include<CountUpDownTimer.h>
#include "pitches.h"

#define NBR_MTX 2
LedControl lc=LedControl(5,7,6, NBR_MTX);

CountUpDownTimer T(DOWN);
#include <Arduino.h>
#include <TM1637Display.h>
// Module connection pins (Digital Pins)
#define CLK 43
#define DIO 45
TM1637Display display(CLK, DIO);

int inPin = 8;   // pushbutton connected to digital pin 7
int buttonState = 0;         // variable for reading the pushbutton status
int piezoPin = 47;
int ledRedLeft = 22;
int ledRedRight = 25;

int hoursT;
int minutesT;
int secondsT;



void setup()
{
  Serial.begin(115200);
  pinMode(inPin, INPUT_PULLUP);      // sets the digital pin 7 as input
  pinMode(ledRedLeft, OUTPUT);
  pinMode(ledRedRight, OUTPUT);
  display.setBrightness(0x0f);
  pinMode(2, INPUT_PULLUP);
  digitalWrite(ledRedLeft, LOW);
  digitalWrite(ledRedRight, LOW);
  //T.SetTimer(1,30,0); // Timer voor de Escape room
  T.SetTimer(0,0,10);
  T.StartTimer();

  for (int i=0; i< NBR_MTX; i++){
    lc.shutdown(i,false);
  /* Set the brightness to a medium values */
    lc.setIntensity(i,8);
  /* and clear the display */
    lc.clearDisplay(i);
  }
}

void loop()
{
  T.Timer(); // run the timer
  uint8_t fail[] = { 0b01110001,0b01110111,0b00000110,0b00111000 };
 
  if (T.TimeHasChanged() ) // this prevents the time from being constantly shown.
  {

    tone(piezoPin, 5000, 50);

   
    //HIER DE COLON ON!!!!!
 
    display.showNumberDec(T.ShowMinutes(), true, 2, 0);
    display.showNumberDec(T.ShowSeconds(), true, 2, 2);
    Serial.print(T.ShowHours());
    Serial.print(":");
    Serial.print(T.ShowMinutes());
    Serial.print(":");
    Serial.println(T.ShowSeconds());
   
    // read the state of the pushbutton value:
  buttonState = digitalRead(inPin);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (!buttonState == HIGH) {
    // turn LED on:
    Serial.println("Connected");
    T.ResumeTimer();
  } else {
    // turn LED off:
    Serial.println("Disconnected");
    //T.PauseTimer();
  }
  hoursT = T.ShowHours();
  minutesT = T.ShowMinutes();
  secondsT = T.ShowSeconds();
  if (hoursT == 0 && minutesT == 0 && secondsT == 0) {
    T.StopTimer();
    delay(500);
    Serial.println("BOOM");
    digitalWrite(ledRedLeft, HIGH);
    digitalWrite(ledRedRight, HIGH);
    showBomb();
    //display.setSegments(fail);
    melodyFailPlay();
    //display.showNumberDec(1234, true, 4, 0);
  }
   
  } // End of T.TimeHasChanged
 
}

void melodyFailPlay() {
  tone(piezoPin, 262);
  delay(250);
  tone(piezoPin, 196);
  delay(500);
  noTone(piezoPin);
}

void showWaiting() {
  // First set all positions to off
  matrixAlloff();
  // Now mark the waiting circle
 
}

void showBomb() {
  // First set all positions to off
  matrixAlloff();
  // Now mark the bomb
  lc.setLed(0,2,0,true);
  lc.setLed(0,3,0,true);
  lc.setLed(0,4,0,true);
  lc.setLed(0,5,0,true);
  lc.setLed(0,1,1,true);
  lc.setLed(0,6,1,true);
  lc.setLed(0,0,2,true);
  lc.setLed(0,2,2,true);
  lc.setLed(0,5,2,true);
  lc.setLed(0,7,2,true);
  lc.setLed(0,0,3,true);
  lc.setLed(0,3,3,true);
  lc.setLed(0,4,3,true);
  lc.setLed(0,7,3,true);
  lc.setLed(0,0,4,true);
  lc.setLed(0,7,4,true);
  lc.setLed(0,0,5,true);
  lc.setLed(0,2,5,true);
  lc.setLed(0,5,5,true);
  lc.setLed(0,7,5,true);
  lc.setLed(0,1,6,true);
  lc.setLed(0,6,6,true);
  lc.setLed(0,2,7,true);
  lc.setLed(0,3,7,true);
  lc.setLed(0,4,7,true);
  lc.setLed(0,5,7,true);
}

void showApproved() {
  // First set all positions to off
  matrixAlloff();
  // Now mark the approved sign
  lc.setLed(0,0,2,true);
  lc.setLed(0,1,1,true);
  lc.setLed(0,2,0,true);
  lc.setLed(0,3,1,true);
  lc.setLed(0,4,2,true);
  lc.setLed(0,5,3,true);
  lc.setLed(0,6,4,true);
  lc.setLed(0,7,5,true);
}

void showCross() {
  // First set all positions to off
  matrixAlloff();
  // Now mark the cross
  lc.setLed(0,0,0,true);
  lc.setLed(0,1,1,true);
  lc.setLed(0,2,2,true);
  lc.setLed(0,3,3,true);
  lc.setLed(0,4,4,true);
  lc.setLed(0,5,5,true);
  lc.setLed(0,6,6,true);
  lc.setLed(0,7,7,true);
  lc.setLed(0,0,7,true);
  lc.setLed(0,1,6,true);
  lc.setLed(0,2,5,true);
  lc.setLed(0,3,4,true);
  lc.setLed(0,4,3,true);
  lc.setLed(0,5,2,true);
  lc.setLed(0,6,1,true);
  lc.setLed(0,7,0,true);
}

void matrixAlloff() {
  lc.setLed(0,0,0,false);
  lc.setLed(0,0,1,false);
  lc.setLed(0,0,2,false);
  lc.setLed(0,0,3,false);
  lc.setLed(0,0,4,false);
  lc.setLed(0,0,5,false);
  lc.setLed(0,0,6,false);
  lc.setLed(0,0,7,false);
  lc.setLed(0,1,0,false);
  lc.setLed(0,1,1,false);
  lc.setLed(0,1,2,false);
  lc.setLed(0,1,3,false);
  lc.setLed(0,1,4,false);
  lc.setLed(0,1,5,false);
  lc.setLed(0,1,6,false);
  lc.setLed(0,1,7,false);
  lc.setLed(0,2,0,false);
  lc.setLed(0,2,1,false);
  lc.setLed(0,2,2,false);
  lc.setLed(0,2,3,false);
  lc.setLed(0,2,4,false);
  lc.setLed(0,2,5,false);
  lc.setLed(0,2,6,false);
  lc.setLed(0,2,7,false);
  lc.setLed(0,3,0,false);
  lc.setLed(0,3,1,false);
  lc.setLed(0,3,2,false);
  lc.setLed(0,3,3,false);
  lc.setLed(0,3,4,false);
  lc.setLed(0,3,5,false);
  lc.setLed(0,3,6,false);
  lc.setLed(0,3,7,false);
  lc.setLed(0,4,0,false);
  lc.setLed(0,4,1,false);
  lc.setLed(0,4,2,false);
  lc.setLed(0,4,3,false);
  lc.setLed(0,4,4,false);
  lc.setLed(0,4,5,false);
  lc.setLed(0,4,6,false);
  lc.setLed(0,4,7,false);
  lc.setLed(0,5,0,false);
  lc.setLed(0,5,1,false);
  lc.setLed(0,5,2,false);
  lc.setLed(0,5,3,false);
  lc.setLed(0,5,4,false);
  lc.setLed(0,5,5,false);
  lc.setLed(0,5,6,false);
  lc.setLed(0,5,7,false);
  lc.setLed(0,6,0,false);
  lc.setLed(0,6,1,false);
  lc.setLed(0,6,2,false);
  lc.setLed(0,6,3,false);
  lc.setLed(0,6,4,false);
  lc.setLed(0,6,5,false);
  lc.setLed(0,6,6,false);
  lc.setLed(0,6,7,false);
  lc.setLed(0,7,0,false);
  lc.setLed(0,7,1,false);
  lc.setLed(0,7,2,false);
  lc.setLed(0,7,3,false);
  lc.setLed(0,7,4,false);
  lc.setLed(0,7,5,false);
  lc.setLed(0,7,6,false);
  lc.setLed(0,7,7,false);
  delay(10);
}



Alleen de manieren waarop ik het deed (de code gewoon op de plek zetten, werkte niet echt. De 2e segment werd weer aangepast licht.)

VorigeVolgende

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 16 gasten