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);
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