Saídas digitais com 3,5 V (porquê?)

Olá pessoal,
estou tentando criar uma lógica básica para estudar o arduino.
ao compilar esta lógica (abaixo deste texto) percebi que os leds referentes as saídas digitais 4, 5, 6 e 7, estavam acendendo os led’s de maneira meno intensa que as demais saidas.
mandei compilar outra lógica e todos os led’s acenderam com a mesma intensidade.
dei uma olhada com o multi test e comprovei que as saídas cujos led’s possuem menas intensidade estão sendo alimentadas com 3,5V.
Por que isso está acontecendo?

Fiz algo errado?
Como faço para ajustar?

Pessoal, muito obrigado pela ajuda.

byte ledPin = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // cria um array com os pinos dos LEDs
int ledDelay; //intervalo entre as alterações
int direction = 1;
int currentLED = 0;
unsigned long changeTime;
int potPin = 2; //seleciona o pino de entrada do potenciômetro

void setup() {
for (int x=4; x<14; x++) { // define todos os pinos como saida
pinMode(ledPin, OUTPUT);}
changeTime = millis();
}

void loop() {
ledDelay = analogRead(potPin); // Lê o valor do potenciômetro
if ((millis() - changeTime) > ledDelay) { // verifica se transcorreram ledDelay ms desde a
changeLED(); // ultima alteração
changeTime = millis();
}

}
void changeLED() {
if(direction == 1){
digitalWrite(ledPin[currentLED], HIGH); // acende o LED atual
currentLED += direction; // incrementa (ou decrementa o currentLED dependendo do seu valor
}
if(direction == -1){
digitalWrite(ledPin[currentLED], LOW);
currentLED += direction;
}

if(currentLED == 10) {direction = -1;}
if(currentLED == -1) {direction = 1;}
}

Como estás a ligar os leds?

void setup() {
for (int x=4; x<14; x++) { // define todos os pinos como saida
pinMode(ledPin, OUTPUT);}
changeTime = millis();
}

Este pedaço de codigo nao faz o que o comentario promete fazer …
Penso que a tua intençao era percorrer o array e usar cada indice do array no pinMode
Os teus leds ficam assim porque simplemente nao tens a saida configurada como output …
Talvez assim consigas…

void setup() {
  for (int x=4; x<14; x++) { // define todos os pinos como saida
    pinMode(ledPin[x], OUTPUT);}
  changeTime = millis();
}

Bom Natal

Em primeiro lugar, bem-vindo ao fórum.
Em segundo lugar, deveria ter lido as regras do fórum antes de postar. Digo isto, porque uma das regras implica a introdução do código, num bloco próprio (como mostra o post do HugoPT) que facilita a leitura do mesmo. Por exemplo, não sei se o seu código original tem realmente o erro que o HugoPT está a apontar, se será apenas uma formatação porque o que está escrito no seu código tem um significado diferente no texto normal do post.
Fazendo a experiência:

oddie1209:
(…)
void setup() {
for (int x=4; x<14; x++) { // define todos os pinos como saida
pinMode(ledPin, OUTPUT);}
changeTime = millis();
}
(…)

oddie1209:
(…)

(...)

void setup() {
 for (int x=4; x<14; x++) { // define todos os pinos como saida
   pinMode(ledPin, OUTPUT);}
 changeTime = millis();
}
(…)

EDIT: (Tive que postar para ver qual era o resultado)
Parece que o que eu pensava está certo. O comentário do HugoPT, não faz qualquer sentido, porque o erro que ele aponta, na realidade não é um erro, ele apenas não percebeu que isso já estava feito, porque o código não estava postado de forma correcta.

As minhas questões são:

  • Os LED’s são iguais?
  • As resistências que estão ligadas aos LED’s que valores têm? Esses valores são iguais?
  • O tempo regulado no potenciómetro é suficiente para se verem os LED’s a “piscar”? (se os LED’s forem acesos e apagados muito rápido, o olho humano apenas nota uma diminuição da intensidade do LED)

EDIT2: Com isto tudo, parece que me distraí da real causa do problema. No tal bloco que comentei atrás, parece que está um erro grave. O bloco original é:

void setup() {
  for (int x=4; x<14; x++) { // define todos os pinos como saida
    pinMode(ledPin[x], OUTPUT);}
  changeTime = millis();
}

e devia ser:

void setup() {
  for (int x=0; x<10; x++) { // define todos os pinos como saida
    pinMode(ledPin[x], OUTPUT);}
  changeTime = millis();
}

O for deve percorrer as 10 saídas associadas ao LED, que estão guardadas no vector ledPin. Este vector apenas tem definidas as posições 0 a 9. Isto não é o mesmo que percorrer as posições de 4 a 14.

O facto dos leds estarem ligados em portos diferentes sobrecarregando-os de forma diferente também pode explicar isto...

O pino 13 não deve ser usado para um led pois já lá está um ligado.

@bubulindo: Não é nada disso. Repare que ele está a queixar-se das saídas "4, 5, 6 e 7", que são as que estão nas posições 0, 1, 2, 3 do vector. Se estes pinos não são configurados como saídas é normal que isto aconteça, não é?

Não notei a especificação das saídas 4 a 7...