Go Down

Topic: e possipile controllare i cicli for (Read 994 times) previous topic - next topic

plume

Dec 16, 2011, 10:44 am Last Edit: Dec 16, 2011, 11:00 am by plume Reason: 1
é possi bile controllare due cicli:  for (value = 0; value <= 255; value+=5)
     {
         analogWrite(ledpin, value);}

contemporeneamente?

senza dover aspettare che finisca il primo incremento

vorrei variare la lumimnosità  di due uscite pin 9 e pin 10
tramite  due pulsanti

astrobeed


é possi bile controllare due cicli:  for (value = 0; value <= 255; value+=5)


Sei troppo criptico, spiega meglio quello che vuoi fare.

plume

controllare la luminosita di due led collegati al pin 9 e al pin 10
tramite due pulstanti

astrobeed


controllare la luminosita di due led collegati al pin 9 e al pin 10
tramite due pulstanti


Non intendevo cosa vuoi fare come applicazione, ma cosa vuoi fare con le for perché la tua domanda non ha alcun senso per come l'hai posta.

Federico Vanzati

se metti entrambe le "cose" che vuoi fare contemporaneamente nello stesso for si :)

Poi considera che già al funzione  loop() è un ciclo infinito, quindi puoi evitare il ciclo for.
F

plume

int ledPin = 9;  
int ledPin1=10;
int buttonPin1 = 3;
const int buttonPin = 2;
int buttonState = 0;
int buttonState1 = 0;

void setup()  {    
pinMode(buttonPin, INPUT);
pinMode(buttonPin1, INPUT);
}

void loop()  {  
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH)
buttonState1 = digitalRead(buttonPin1);
if (buttonState1== HIGH)
         
// incremento e decremento controllato pin2
 
 for(int fadeValue = 0 ; fadeValue <= 255 ; fadeValue +=5) {  analogWrite(ledPin, fadeValue);   delay(360); }  
   delay(2500);
 
 for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
   analogWrite(ledPin, fadeValue);        
   delay(36); }

//incremento e decremento controllato pin3

for(int fadeValue = 0 ; fadeValue <= 255 ; fadeValue +=5) {  analogWrite(ledPin1, fadeValue);   delay(360); }  
   delay(2500);
 
 for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
   analogWrite(ledPin1, fadeValue);        
   delay(36); }
}
         


se eseguo questo codice non posso attivare l incremento tramite pulsante del pin3 fino a quando non ha terminato di eseguire  l incremento tramite pulsante del pin2

come posso fare per controllare a mio piacimento i due increm/decrem  

leo72

Guardati l'esempio BlinkWithoutDelay per incrementare la variabile del controllo del PWM e puoi così incrementare il segnale ai led potendo contemporaneamente leggere lo stato dei pulsanti.

Go Up