goede dag,
ik heb wat code geschreven om 6 LEDjes de 'wave' te laten maken. (Arduino heeft 6 PWM kanalen)
hiervoor roep ik een subroutine aan, Arduino noemt dit een functie.
bij terugkeer naar het hoofdprogramma gaat het mis, met bovenstaande melding.
hieronder mijn code. met commentaar.
vermoedelijk een kleine fout, maar ik zie het niet. HELP!!
eeuwige dank valt u ten deel.
-=-=-=-=-=-
/*
knightrider -3-
6 ledjes op PWM die de 'wave' maken
*/
int ledjes[6] = {3, 5, 6, 9, 10, 11}; // de ledjes in een array
int helder[6]= {1, 1, 1, 1, 1, 1}; // elk ledje zijn eigen helderheid
int fade[6] = {1, 1, 1, 1, 1, 1}; // de faderichting van elk ledje
int timer = 10; // de brandtijd van elk ledje
int lednr = 0;
void setup(){
// alle pootjes in één keer tot uitgang bombarderen en hoog zetten
for (lednr=0;lednr<6;lednr++) {
pinMode(ledjes[lednr], OUTPUT), digitalWrite(ledjes[lednr], HIGH); // alle leds zijn uit.
}
}
void loop(){
for (lednr=0;lednr<6;lednr++) {
helder[lednr] = helder[lednr] + fade[lednr]helderheid(lednr, helder[lednr]);
/ helderheid (PWM) groter/kleiner +/- functie subroutine
hierboven wordt de nieuwe waarde per LEDje aangepast, in de functie aanroep
gaat het fout.
de helderheid is het gewenste PWM signaal voor het LEDje lopend van 0 tot 255
als 255 of 0 wordt bereikt, wordt de richting omgekeerd door fade[lednr]
van polariteit te wisselen -1 wordt 1 of 1 wordt -1
helderheid(lednr, helder[lednr]) wordt aangeroepen
de meegegeven waarden zijn het nummer van de onderhande LED en de huidige helderheid.
*/
if((helder[lednr] == 0) || (helder[lednr] == 255)) { // if statement, || = or functie
fade[lednr] = -fade[lednr]; // waarde wordt tegengesteld, optellen wordt aftrekken.
}
analogWrite(ledjes[lednr] , helder[lednr]); // de waarde van de helderheid wordt weggeschreven
delay (timer);
}
}
/* subroutine helderheid bepalen
hieronder mijn probleem de functie helderheid met de twee opgegeven waarden
integer lednummer het onderhande LEDje A en de bijhorende helderheid B
/
int helderheid(int A,int B){
A = (A+1)10; // array loopt van 0...5, 360 graden/6 ledjes = hoek 60 gr
B = sin((6.1415 * B)/60); // de sinus van de bijhorende hoek
B = 63((lednr+1)(lednr+1)); // de gedtallen 6.1415 en 63 komen van internet.
return helder; // deze regel is fout,
// invalid conversion from 'int*' to 'int' [-fpermissive]
// wat moet ik hier mee? en hoe moet het dan wel??
}
-=-=-=-=-=-
groeten, Dré Jansen