Goeiedag, ben ik weer.
momenteel ben ik bezig met een project. en de bedoeling is om zo vele mogelijk RGB leds zonder enige IC's tegebruiken, ik gebruik wel transistors. EN! ze moeten werken doormidel van PWM.
Het probleem wat ik nu heb is dat als ik alle leds uit set en een loopje op 1 Led laat lopen.
dan heb ik altijd dat er een andere led tog heeeeel! ligt mee dimmed. wat dus een probleem is hij hoor niet mee tedimmen.
zo dra alle leds aan staan lijkt het gewoon goed tewerken.
en er zit een delayMicroseconds() in die ik ook graag elegant wil weg werken.
meschien dat jullie effe een oogje op mijn code willen werpen en me in de goeie richting kunnen duwen.
en ik gebruik momenteel de Arduino mega voor dit project.
hier een simpele foto hoe het is aan gesloten.
en de code die ik nu heb
#define NUM_PLAYBACK 2
#define NUMBER_OF_OUTPUTS 36
#include "OutputValue.h"
OutputValue OV;
const uint16_t chase[] = {3,
18, 1000, 1000, 0, 255, 1, 0, 2, 0, 3, 0, 4, 0, 5, 255, 6, 0, 7, 255, 8, 0, 9, 255, 10, 0, 11, 0, 12, 0, 13, 0, 14, 255, 15, 0, 16, 255, 17, 0,
18, 750, 500, 0, 0, 1, 255, 2, 0, 3, 255, 4, 0, 5, 0, 6, 0, 7, 0, 8, 255, 9, 0, 10, 255, 11, 0, 12, 255, 13, 0, 14, 0, 15, 0, 16, 0, 17, 255,
18, 500, 0, 0, 0, 1, 0, 2, 255, 3, 0, 4, 255, 5, 0, 6, 255, 7, 0, 8, 0, 9, 0, 10, 0, 11, 255, 12, 0, 13, 255, 14, 0, 15, 255, 16, 0, 17, 0
};
const uint16_t chase1[] = {3,
18, 1000, 750, 18, 255, 19, 0, 20, 0, 21, 0, 22, 0, 23, 255, 24, 0, 25, 255, 26, 0, 27, 255, 28, 0, 29, 0, 30, 0, 31, 0, 32, 255, 33, 0, 34, 255, 35, 0,
18, 1000, 750, 18, 0, 19, 255, 20, 0, 21, 255, 22, 0, 23, 0, 24, 0, 25, 0, 26, 255, 27, 0, 28, 255, 29, 0, 30, 255, 31, 0, 32, 0, 33, 0, 34, 0, 35, 255,
18, 1000, 750, 18, 0, 19, 0, 20, 255, 21, 0, 22, 255, 23, 0, 24, 255, 25, 0, 26, 0, 27, 0, 28, 0, 29, 255, 30, 0, 31, 255, 32, 0, 33, 255, 34, 0, 35, 0
};
const uint16_t chase2[] = {3,
4, 1000, 1000, 0, 255, 2, 0, 3, 255, 5, 0,
4, 1000, 1000, 0, 0, 1, 255, 3, 0, 4, 255,
4, 1000, 1000, 1, 0, 2, 255, 4, 0, 5, 255
};
const uint8_t pin[] = {22, 24, 26, 28, 30, 32, 34, 36}; // row of colom geen idee maar het werkt!
const uint8_t pin1[] = {2, 3, 5, 6, 7, 8, 9, 10}; // row of colom geen idee maar het werkt!
const uint8_t outputPatch[6][6] = {
{0, 1, 2, 18, 19, 20},
{3, 4, 5, 21, 22, 23},
{6, 7, 8, 24, 25, 26},
{9, 10, 11, 27, 28, 29},
{12, 13, 14, 30, 31, 32},
{15, 16, 17, 33, 34, 35}
};
void setup() {
TCCR3B = (TCCR3B & 0xF8) | 0x01 ;
TCCR4B = (TCCR4B & 0xF8) | 0x01 ;
Serial.begin(9600);
for (uint8_t x = 0; x < 8; x++) {
pinMode(pin[x], OUTPUT);
}
for (uint8_t x = 0; x < 8; x++) {
pinMode(pin1[x], OUTPUT);
}
}
void loop() {
OV.Playback(0, chase2);
//OV.Playback(1, chase1);
OV.Refresh();
for (uint8_t x = 0; x < 6; x++) {
digitalWrite(pin[x], HIGH);
for (uint8_t y = 0; y < 6; y++) {
analogWrite(pin1[y], OV.Output(outputPatch[y][x]));
}
delayMicroseconds(2778); // 2778
digitalWrite(pin[x], LOW);
}
}
en de outputValue.h is een library die ik heb gemaakt en zorgt er voor dat ik led door middel van Scenetime en Fadetime + value(chase[], chase1[], chase2[]) de leds een voor geprogrammerde loopje kan laten doen.