hallo
een sketchje met arduino MEGA,die random 1 ledje op het matrix display zet,vond ik leuk.
#include "LedControl.h"
LedControl lc=LedControl(12,11,10,1);
void setup()
{
lc.shutdown(0,false);
lc.setIntensity(0,8 );
lc.clearDisplay(0);
}
void loop()
{
lc.setLed(0, random( 8 ) , random( 8 ) , true); // set a random led
delay(50);
lc.setLed(0, random( 8 ) , random( 8 ) , false); // clear a random led
lc.clearDisplay(0);
delay(50);
}lc.setLed(0, random( 8 ) , random( 8 ) , false); // clear a random leddeze regel reset dus niet dezelfde led als je daarvoor set,
daarbij maak je die complete regel overbodig door vervolgens een 'clear all' te doen
Damic
Ben Belg sowat :D :: plaatjes zijn meestal klikbaar
ik ken de library niet,
maar cleardisplay(0); zet toch gewoon alle leds uit?? ga ik van uit?
dan snap ik de regel daarvoor niet om 1 led uit te zetten?
ik zou zeggen, of een willekeurige led, of alles, dus 1 van die 2 regels voor verschillende effecten, beide regels klinkt raar
als ik geen cleardisplay doe dan blijft de helft van het display vol staan,en ik wou juist dat er maar een ledje aan gaat random.
ja snap ik als je 2x random gebruikt,
bereken je kansen dat je toevallig dezelfde random led set en reset.
dat dacht ik al, die regel is dus gewoon overbodig
je hebt gelijk 2de regel die met false verwijderd doet het zelfde ,bedankt
heb nu zo en werkt prima.
#include "LedControl.h"
LedControl lc=LedControl(12,11,10,1);
void setup()
{
lc.shutdown(0,false);
lc.setIntensity(0,8 );
lc.clearDisplay(0);
}
void loop()
{
lc.setLed(0, random( 8 ) , random( 8 ) , true); // set a random led
delay(50);
lc.clearDisplay(0);
delay(50);
}of je laat die " // clear a random led" regel gewoon weg,
dus
.
delay(50);
lc.clearDisplay(0);
delay(50);
Edit: ik zie dat je daar ondertussen achter bent
of variant B je gebruikt 2 hulp variabelen
int rij = random(8);
int kolom = random(8);
lc.setLed(0, rij , kolom , true);
delay(50);
lc.setLed(0, rij , kolom , false);
zodat je dezelfde led hebt, werkt ook prima
en dan eigenlijk die delays er nog uit werken en vervangen voor een timer / interrupt
sterrenhemel was ook een leuk idee,
of een random van 4, en daarmee noord,zuid,oost,west bepalen, en een loop lichtje maken,
en zo zijn er nog wel een aantal dingen hoe je met zo'n display kunt spelen
dit werkt wel ,maar dan zie je zo'n 20 leds tegelijk,is niet mooi
#include "LedControl.h"
LedControl lc=LedControl(12,11,10,1);
void setup()
{
lc.shutdown(0,false);
lc.setIntensity(0,8 );
lc.clearDisplay(0);
}
void loop()
{
int rij=random(8);
int kolom =random(8);
lc.setLed(0,rij,kolom,true);
lc.setLed(0,rij,kolom,false);
}de delays weg werken is wat anders dan compleet schrappen.
en ja, als je wat langer programmeert snap je dat die dingen ondingen zijn, vooral als je je controller 2 functies wilt laten uitvoeren, of 10, je hebt niet voor niks een mega
millis is toch ook dat het bepaalde tijd niks doet??
of zie ik het verkeerd???
en is meer programmeer werk dacht ik???
millis is de interne klok,
die kun je inderdaad gebruiken voor dit soort timingsfuncties,
delay heeft het nadeel dat het heel je microcontroller lam legt, als je 2 dingen programmeert, bv een knipperend ledje, en het uitlezen van een knop, werken beide functies niet meer terwijl je er meestal maar 1 wil laten wachten
