Sie passieren ein Array analogWrite
oder pinMode
, wo es eine uint8_t
erwartet.
Die Arduino-Pin-Manipulationsfunktionen können nur einen Pin gleichzeitig verarbeiten. Es gibt Möglichkeiten, die AVR/ARM GPIO-Register direkt zu manipulieren, aber diese können knifflig sein (nicht empfohlen für die Verwendung, außer Sie wirklich brauchen Geschwindigkeit).
Der Grund, warum es int *
sagt, ist, weil unter Arrays Arrays in C/C++ als Zeiger dargestellt werden.
Wenn Sie beide LEDs mit analogWrite
oder pinMode
verbinden möchten, müssen Sie die Funktion für jede LED einmal aufrufen. Beispiel:
analogWrite(ledPins[0], brightness);
analogWrite(ledPins[1], brightness);
Oder
for(int currentLED = 0;currentLED < ledCount;i++){
analogWrite(ledPins[currentLED], brightness);
}
Im Rahmen des Programms:
int ledCount = 2;
int ledPins [] = {11, 12};
int brightness = 0;
int delayTime = 10;
#define INCREASE 1
#define DECREASE 2
int brightness_change = INCREASE;
void setup(){
for(int i = 0;i < ledCount;i++){
pinMode(i, OUTPUT);
}
}
void loop(){
while(brightness < 255 && brightness_change == INCREASE){
brightness = brightness + 1;
}
while(brightness > 0 && brightness_change == DECREASE){
brightness = brightness - 1;
}
if(brightness == 255){
brightness_change = DECREASE;
}
if(brightness == 0){
brightness_change = INCREASE;
}
for(int current_led = 0;current_led < ledCount;current_led++){
analogWrite(current_led, brightness;
}
delay(delayTime;
}
Nicht getestet, aber es sollte funktionieren.