Arama butonu
Bu konudaki kullanıcılar: 1 misafir
8
Cevap
1487
Tıklama
0
Öne Çıkarma
Arduino Delay sorunu
C
10 yıl
Er
Konu Sahibi

Merhabalar

Rgb ledle flasör devresi yaptım aradaki bekleme süresini potansiyometreden ayarlıyorum ama pot değerini değiştirince anlık tepki vermiyor ve bekleme süreleri bittikten sonra değeri değiştiriyor.Bekleme süresine takılmadan nasıl yapabilirim.


quote:



const int kirmizi =9;
const int yesil =10;
const int mavi =11;
int ayar;
int r,g,b;
int bekle;
void setup() {

  Serial.begin(9600);
}

void loop() {
  ayar= analogRead(A0);
  ayar=map(ayar,0,1023,0,255);
  bekle=ayar;
  Serial.println(bekle);
  
  
   
   for(int i=1;i<=3;i++){
    r=0;
    g=0;
    b=255;
    analogWrite(kirmizi,255-r);
    analogWrite(yesil,255-g);
    analogWrite(mavi,255-b);


    delay(bekle);
    r=0;
    g=0;
    b=0;
    analogWrite(kirmizi,255-r);
    analogWrite(yesil,255-g);
    analogWrite(mavi,255-b);

    delay(bekle);
  }



  for(int i=1;i<=3;i++){
    r=255;
    g=0;
    b=0;
    analogWrite(kirmizi,255-r);
    analogWrite(yesil,255-g);
    analogWrite(mavi,255-b);

    delay(bekle);
    r=0;
    g=0;
    b=0;
    analogWrite(kirmizi,255-r);
    analogWrite(yesil,255-g);
    analogWrite(mavi,255-b);

    delay(bekle);
  }

}


DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



O
9 yıl
Yüzbaşı

Biraz eski bir konu ama arayanlar en azından cevaba ulaşır;

Çözüm millis fonksiyonu

https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay



* Blink without Delay

Turns on and off a light emitting diode (LED) connected to a digital
pin, without using the delay() function. This means that other code
can run at the same time without being interrupted by the LED code.

The circuit:
* LED attached from pin 13 to ground.
* Note: on most Arduinos, there is already an LED on the board
that's attached to pin 13, so no hardware is needed for this example.

created 2005
by David A. Mellis
modified 8 Feb 2010
by Paul Stoffregen
modified 11 Nov 2013
by Scott Fitzgerald


This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
*/

// constants won't change. Used here to set a pin number :
const int ledPin = 13; // the number of the LED pin

// Variables will change :
int ledState = LOW; // ledState used to set the LED

// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0; // will store last time LED was updated

// constants won't change :
const long interval = 1000; // interval at which to blink (milliseconds)

void setup() {
// set the digital pin as output:
pinMode(ledPin, OUTPUT);
}

void loop() {
// here is where you'd put code that needs to be running all the time.

// check to see if it's time to blink the LED; that is, if the
// difference between the current time and last time you blinked
// the LED is bigger than the interval at which you want to
// blink the LED.
unsigned long currentMillis = millis();

if (currentMillis - previousMillis >= interval) {
// save the last time you blinked the LED
previousMillis = currentMillis;

// if the LED is off turn it on and vice-versa:
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}

// set the LED with the ledState of the variable:
digitalWrite(ledPin, ledState);
}
}



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.