Pin bassa tensione

Ciao a tutti caricando vari sketch nell'arduino mi sono accorto che qualcosa nn andava e sopo aver smontato tutto il circuito costruitogli attorno mi sono accorto,testando i singoli pin,che i pin 6 e 7 erogano al massimo 2 volts nello stato HIGH.Caricando lo sketch blink e facendo lampeggiare un singolo led per volta il problema nn compare.
Non credo sia un problema di sotto alimentazione perchè utilizzo un alimentatore esterno per la board a cosa può essere dovuto??

Ciao cacao

Stai usando i 2 pin in PWM con la funzione analogWrite()? Se misuri la tensione in alternata su quei 2 pin con lo sketch che non ti funziona che tensione leggi?

Manda il sketch che non ti funziona.

Ciao Uwe

non uso i due pin in pwm,comunque questo è lo sketch...grazie per l'aiuto

const int pulsante=8;
const int bottone=9;
const int led1=2;
const int led2=3;
const int led3=4;
const int led4=5;
const int led5=6;
const int led6=7;

int contatore=256;
int resto=0;
int stato=0;
int ultimostato=0;
int stato2=0;
int ultimostato2=0;
unsigned long int time=0;
unsigned long int leggo=0;
unsigned long int scrivo=0;

void setup(){

pinMode(pulsante,INPUT);
pinMode(bottone,INPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
leggo=millis();
scrivo=millis();
}

void loop() {

time=millis();

if(time>leggo+100){

stato=digitalRead(bottone);
stato2=digitalRead(pulsante);

if(stato!=ultimostato){
if(stato==HIGH){

contatore++;
}
else{
contatore=contatore;
}
ultimostato=stato;
}
if(stato2!=ultimostato2){
if(stato2==HIGH){
contatore--;
}
else{
contatore=contatore;
}
ultimostato2=stato2;
}

leggo=millis();
}

if(time>scrivo+50){

resto=contatore%6;
switch (resto){

case (0):
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);

break;

case(1):
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
break;

case(2):
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
break;

case(3):
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,HIGH);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
break;

case(4):

digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,HIGH);
digitalWrite(led6,LOW);
break;

case(5):

digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,HIGH);
break;

}

scrivo=millis();

}
}

a prima vista ti posso dire che manca

pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);

:wink:

c

qui spiega anche perchè:

Ciao cacao

Sí é quello che scrive camba192.

Spiegazione; perché é cosí:

Visto che non definisci il pin come uscita il pin é un entrata. Scrivendo sul pin attivi la resistenza pullup interna. Quella resistenza ha un valore tra 20 e 50 kOhm. Con il circuito esterno che hai attacato, nel Tuo caso un LED, con la minima corrente che esce attraverso la resistenza pullup (che sono intorno a 250-100µA) non riesci a fare illuminare il LED. Il LED (che sará un LEd bianco o blu) a quella corrente ha una tensione di 2V (vedi la curva Vf nei dati tecnici del LED)

Ciao Uwe