Code kleiner maken

algemene C code
Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code kleiner maken

Berichtdoor Jeroentjevrij » 25 Mrt 2019, 14:47

Hartelijk dank voor jullie hulp.
De code is in mijn ogen heel strak geworden.
Ik heb geen kolom(1,HIGH) EN LOW gemaakt uiteindelijk.
Maar een case waarbij de ene kolom die high word de andere uit zet.

Ik heb me code op me hub gezet mochten mensen nieuwsgierig zijn.
Mocht iemand nog verbeter punten zien hoor ik het graag.

https://github.com/JeroenVrij/3x3x3-cube-under-const
Thanks

Advertisement

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Code kleiner maken

Berichtdoor shooter » 25 Mrt 2019, 20:11

je zult echt al die delay dingen eruit moeten halen en vervangen door een timer.
Je kunt dan schijnbaar zoveel leds aan en uit zetten als je wil ipv laag voor laag.
en dit soort cubes bestaat al heel veel.
kijk maar naar de volgende https://www.youtube.com/watch?v=GLx6aA75CZY

of deze
https://www.youtube.com/watch?v=93xCmTTXDUg
en deze is mooi demo
https://www.youtube.com/watch?v=ULMlP03ub4U
zoals je ziet heb ik alleen maar voorbeelden gepakt die 3 transistoren gebruiken. die kunnen de stroom aan die per laag gaat lopen.
paul deelen
shooter@home.nl

Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code kleiner maken

Berichtdoor Jeroentjevrij » 25 Mrt 2019, 23:03

@shooter ik begrijp volkomen wat je bedoelt alleen komik er nog niet uit met de millis().
Zolang ik dat nog niet kan fiksen zit ik aan delay vast.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Code kleiner maken

Berichtdoor shooter » 26 Mrt 2019, 00:14

schrijf eens iets simpels
cpp code
long wachttijd = 2345;
loop
{
serial.print (0);
delay (100); // deze delay stopt dus je processor
// dus als je deze lang maakt komt er dus 0 1
// te staan
if ((millis()-oudetijd)>wachttijd)
{
oudetijd=millis();
serial.printnl(1);
}
}
paul deelen
shooter@home.nl

Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code kleiner maken

Berichtdoor Jeroentjevrij » 26 Mrt 2019, 02:15

Ik kom met dat millis niet verder dan dit.

Code: Alles selecteren
 
const int Kolom1 = 2;
const int Kolom2 = 3;
const int Kolom3 = 4;
const int Kolom4 = 5;
const int Kolom5 = 6;
const int Kolom6 = 7;
const int Kolom7 = 8;
const int Kolom8 = 9;
const int Kolom9 = 10;
const int Layer1 = 11;
const int Layer2 = 12;
const int Layer3 = 13;
int ledState = LOW;             
unsigned long previousMillis = 0;       


const long interval1 = 1000;         

void setup()
 {
  for (int i = 2; i <= 13; i++)
 {
   pinMode(i, OUTPUT);
 }
}
void loop() {
 
  unsigned long currentMillis = millis();
 
  if (currentMillis - previousMillis >= interval1) {
   
    previousMillis = currentMillis;

   
  if (ledState == LOW)
 {
   ledState = HIGH;
 }
  else
 {
   ledState = LOW;
 }

   digitalWrite(Layer1, ledState);
   digitalWrite(Kolom1, ledState);
   digitalWrite(Kolom2, ledState);
   digitalWrite(Kolom3, ledState);
   digitalWrite(Kolom4, ledState);
 }
}



En zou niet weten hoe ik dan verder moet bouwen.
Wanneer is er een interval. Ik heb nu alles ineens aan het knipperen

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Code kleiner maken

Berichtdoor shooter » 26 Mrt 2019, 19:46

dat is al een aardig begin,doe in de loop maar eens ledje 13 laten knipperen op 0.1 seconden met dezelfde timing constructie.
dan zul je zien dat er vanalles tegelijk gebeurt.
paul deelen
shooter@home.nl

Vorige

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 15 gasten