Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering

Simpelt Arduino C spørgsmål

Af Guru Colaplus | 11-01-2017 16:29 | 567 visninger | 5 svar, hop til seneste
Hej, Jeg er ved at sætte mig så småt ind i lidt Arduino halløj i forb. med en mindre hyggeopgave på studiet. Jeg vil gerne opnå at seks grupper af lysdioder lyser op to ad gangen. De er alle sat op som analoge outputs, og jeg vil gerne at de fader ind og ud - den sidste del har jeg styr på. Problemet er, at jeg ikke kan regne ud hvordan jeg får min kode til at vælge to af de 6 numre tilfældigt og så køre en hel cyklus på disse to grupper, hvor diodelysene starter fra 0, fader op til 255, og tilbage til 0, hvorefter den så skal tilfældigt udvælge to andre grupper af lysdioder og gentage samme proces. Her er det kode jeg har nu, som pt. fader alle dioder op fra 0 til 255 og tilbage til 0 - problemet er bare at de alle gør det samtidigt! http://pastebin.com[...] Håber i kan hjælpe mig lidt på vej! Pft. Mvh. Frederik
--
MSI Gaming 5 Z97 | Xeon E3-1230 v3 | 12GB DDR3 1600MHz | GTX 1060 3GB | Samsung 840 PRO 128GB + EVO 250GB + Sandisk PLUS 240GB + Intel 330 180GB
#1
NitroBlast
Guru
11-01-2017 16:42

Rapporter til Admin
void loop() { int numArray[6] = { 3,5,6,9,10,11 }; int randomIndex = rand() % 6; int randomValue = numArray[randomIndex]; int fadeStep = 1; int brightness = fadeStep; while (brightness > 0) { analogWrite(randomValue, brightness); brightness = brightness + fadeStep; delay(10); if (brightness >= 255) fadeStep = -fadeStep; } analogWrite(randomValue, 0); }
--
http://xlinx.dk[...] i7 2600K, 16GB PC3-12800, GA-X68XP-UD4 R1, GTX 560Ti HAWK, 250GB 840 EVO
--
Sidst redigeret 11-01-2017 16:46
#2
Colaplus
Guru
11-01-2017 17:46

Rapporter til Admin
#1 Tak skal du have, kan godt se jeg glemte at få deklæret fadeStep og brightness, dem har jeg udenfor loopet i koden. Jeg giver det lige et skud i morgen når jeg kommer hjem, igen tak. :-) Jeg kom i øvrigt selv frem til følgende som gør noget i retning af hvad jeg vil: int brightness = 0; int fadeStep = 2; void setup() { pinMode(3, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); analogWrite(3,0); analogWrite(5,0); analogWrite(6,0); analogWrite(9,0); analogWrite(10,0); analogWrite(11,0); } void loop() { int numArray[6] = { 3,5,6,9,10,11 }; int randomIndex = rand() % 6; int randomValue = numArray[randomIndex]; while (true){ analogWrite(randomValue, brightness); brightness = brightness + fadeStep; delay(5); if (brightness == 0 || brightness >= 254){ fadeStep = -fadeStep; delay(5); break; } } }
--
MSI Gaming 5 Z97 | Xeon E3-1230 v3 | 12GB DDR3 1600MHz | GTX 1060 3GB | Samsung 840 PRO 128GB + EVO 250GB + Sandisk PLUS 240GB + Intel 330 180GB
#3
NitroBlast
Guru
11-01-2017 19:15

Rapporter til Admin
Kunne godt se, at noget af sketchen manglede.. Du kan forsimple det hele en del, ved at gøre følgende: const int PINCOUNT = 6; const int PINS[PINCOUNT] = { 3,5,6,9,10,11 }; int brightness = 0; int fadeStep = 2; int currentPin = PINS[rand() % PINCOUNT]; void setup() { for (int i = 0; i < PINCOUNT; i++) { pinMode(PINS[i], OUTPUT); analogWrite(PINS[i], 0); } } void loop() { brightness += fadeStep; if (brightness >= 255) { analogWrite(currentPin, 255); fadeStep = -fadeStep; } else if (brightness <= 0) { currentPin = PINS[rand() % PINCOUNT]; analogWrite(currentPin, 0); } else analogWrite(currentPin, brightness); delay(5); }
--
http://xlinx.dk[...] i7 2600K, 16GB PC3-12800, GA-X68XP-UD4 R1, GTX 560Ti HAWK, 250GB 840 EVO
--
Sidst redigeret 11-01-2017 19:18
#4
Colaplus
Guru
12-01-2017 15:50

Rapporter til Admin
#3 Det prøver jeg at tage en kigger på, mange tak!
--
MSI Gaming 5 Z97 | Xeon E3-1230 v3 | 12GB DDR3 1600MHz | GTX 1060 3GB | Samsung 840 PRO 128GB + EVO 250GB + Sandisk PLUS 240GB + Intel 330 180GB
#5
NitroBlast
Guru
12-01-2017 16:33

Rapporter til Admin
#4 Pøj pøj.. Har indlejret en lille fejl, men den finder du nok ;)
--
http://xlinx.dk[...] i7 2600K, 16GB PC3-12800, GA-X68XP-UD4 R1, GTX 560Ti HAWK, 250GB 840 EVO

Opret svar til indlægget: Simpelt Arduino C spørgsmål


Dit navn:

Din e-mail adresse:


Indholdet fra billedet:
Dit svar:



NYHEDSBREV
Afstemning