Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Arduino úprava codu pro vypnutí led

Zdravím,

Nemůžu přijít na to, jak vypnout všechny 3 RGB ledky.

Program střídá barvy a na konci by se měli vypnout všechny led na určitý čas (delay).
Problém je, že podle for můžu vypnout jen modrou, ale červená a zelený ne a ne se vypnout

program:

redpin=3;
greenpin=5; //zelená G
int bluepin=6; //modrá B

int var=0;

// 255 je off, 0 je 100%

void setup()
{
}

void loop()
{
for(var=250;var<255;var++)
{
analogWrite(redpin,var); // ČERVENÁ
delay(2000);
analogWrite(redpin,215);
delay(2000);
analogWrite(greenpin,170);
delay(2000);
analogWrite(greenpin,130);
delay(2000);
analogWrite(bluepin,90);
delay(2000);
analogWrite(bluepin,45);
delay(2000);
analogWrite(bluepin,255);

Předmět Autor Datum
Ten kód není kompletní.
Wikan 01.03.2015 14:05
Wikan
int redpin=9; //Pin 9 int greenpin=10; //Pin 10 int bluepin=11; //Pin 11 int var=0; int var1=0; voi…
questtt 01.03.2015 14:10
questtt
Takže ?....upozornění, že kód není kompletní jsem dostal, ale co takhle radu, jak to mám udělat co s…
questtt 01.03.2015 14:40
questtt
Co očekáváš, že tu bude dělat, a co to skutečně dělá?
Wikan 01.03.2015 14:48
Wikan
Problém je, že podle "for" můžu vypnout jen modrou, ale červená a zelená se nechce vypnout když pou…
questtt 01.03.2015 15:02
questtt
Var ale nikdy 255 mít nebude, protože v tom cyklu bude maximálně 254.
Wikan 01.03.2015 15:26
Wikan
Myslel jsem si to, mohl by si mi poradit jak to mám upravit. Třeba pomocí f-kce if nebo else...Co se…
questtt 01.03.2015 15:44
questtt
var<255 stačí přepsat na var<256
Wikan 01.03.2015 15:51
Wikan
a co ze zelenou, ta se taky vypne, když to přepíšu ?.. Když to přepíšu vypne se modrá a červená, al…
questtt 01.03.2015 16:14
questtt
ok, blbá otázka, vyzkouším a dám vědět
questtt 01.03.2015 16:21
questtt
přepsal jsem to var na 256 a na konci programu jsem dal /////// VYPNUTO ////// analogWrite(bluepin,…
questtt 01.03.2015 16:25
questtt
ok. Zkusím to vyřešit pomocí jiného "slušnějšího" kodu...pokud narazím na problém dám vědět
questtt 01.03.2015 16:34
questtt
už jsem našel probém...Vyřešeno, děkuji mnohokrát
questtt 01.03.2015 17:01
questtt
A prozradíš kde, aby to mohlo pomoct i ostatním?
Wikan 01.03.2015 17:04
Wikan
PWM funkcionalita nema nikdy full on alebo full off (jedno z nich podla toho jaku mas polaritu). Je… poslední
MM.. 01.03.2015 18:20
MM..

int redpin=9; //Pin 9
int greenpin=10; //Pin 10
int bluepin=11; //Pin 11
int var=0;
int var1=0;

void setup()
{
}

void loop()
{
for(var=250;var<255;var++)
{
analogWrite(redpin,var); //RED
analogWrite(greenpin,0);
delay(500);
analogWrite(redpin,0); //GREEN
analogWrite(greenpin,var);
delay(500);
analogWrite(greenpin,0); //BLUE
analogWrite(bluepin,var);
delay(500);
analogWrite(bluepin,0);
delay(500);
}

for(var1=250;var1<255;var1++)
{
analogWrite(redpin,var1); //YELLOW
analogWrite(greenpin,var1);
delay(500);
analogWrite(redpin,0);
delay(500);
analogWrite(greenpin,var1); //CYAN
analogWrite(bluepin,var1);
delay(500);
analogWrite(greenpin,0);
delay(500);
analogWrite(bluepin,var1); //MAGENTA
analogWrite(redpin,var1);
delay(500);
analogWrite(bluepin,0);
delay(500);
analogWrite(bluepin,var1);
analogWrite(redpin,var1);
analogWrite(greenpin,var1);
}

}

Problém je, že podle "for" můžu vypnout jen modrou, ale červená a zelená se nechce vypnout

když použiji

analogWrite(redpin,255); // vypne se červená
analogWrite(grennpin,255); //vypne se zelená 255 je off 0 je 100% svit

Problém je právě v tom for(var=250;var<255;var++) pro kterou platí analogWrite(bluepin,255); // modrá se vypne

ale ostatní barvy červená a zelená se nevypne, tak to potřebuji upravit tak , aby na konci kódu se vyply všechny led

Myslel jsem si to, mohl by si mi poradit jak to mám upravit. Třeba pomocí f-kce if nebo else...Co se týče programování v Arduinu jsem začátečník, proto ten code vypadá jak vypadá...Už si s tím hraji pěkných pár desítek hodin...

PWM funkcionalita nema nikdy full on alebo full off (jedno z nich podla toho jaku mas polaritu). Je to popisane v atmel datasheete.
Ked chces tu plnu hodnotu ktoru zrovna nevies dosiahnut tak je dobre uplne vypnunt tu pwm funkciu na danom pine.
P.S> je mozne ze to robi uz ta fcia analogWrite, pozri si to v jej zdrojakoch.

Zpět do poradny Odpovědět na původní otázku Nahoru