• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[funkcje][PWM]funkcja pulskwania diody nie działa
#1
Brick 
jak już wspomniałem, poniższy kod nie działa prawidłowo, mogli byście wskazać błąd ? 

Na serial monitorze wyświetla się ciągle watrtość 254 i nie wiem dlaczego zmienna x nie przeskakuje na 1 żeby wartość mogła się zmniejszać...
Zadanie brzmi:


Cytat:Napisz funkcję, która sprawia, że dioda będzie  pulsować (stopniowe przygaszanie i rozjaśnianie).


Kod:
void setup()
{
 
 Serial.begin(9600);
 LED();
}

void loop()
{
 
}

void LED()
{
 int wyp = 0;
 bool x = 0;
 
 pinMode(13, OUTPUT);

 while(1)
 {
 analogWrite(13,wyp);
 delay(50);
 if (wyp = 255)
 {
   x = 1;
 }
 if(x == 0)
 {
   wyp++;
 }
 if(x > 0)
 {
   wyp--;
 }
 Serial.println(wyp);
 }
}
 
Odpowiedź
#2
Kod:
void setup()
{

Serial.begin(9600);
  LED();
}
int wyp = 0;
void loop()
{

}

void LED()
{

bool x = 0;

pinMode(13, OUTPUT);

while(1)
{
analogWrite(13,wyp);
delay(50);
if (wyp == 255)
{
   x = 1;
}
  if (wyp < 5)
{
   x = 0;
}
if(x == 0)
{
   wyp++;
}
if(x == 1)
{
   wyp--;
}
Serial.println(wyp);
}
}

Mam pytanie po co robiłeś pod program jak w lop zrobisz to samo.
[Obrazek: banerelektronika.jpg]



Jeśli pomogłem podziękuj punktem reputacji Wink
 
Odpowiedź
#3
Naprawdę zapomniałem o warunku zmiany x na 0? Oo
Jak napisałem, zadanie brzmiało "napisz funkcję" Wink
Dzięki.
 
Odpowiedź
#4
Problem nie było to ze brak warunku miałeś to tylko nie dociągniecie bład był tutaj:
Kod:
tak miales
if (wyp = 255)
{
   x = 1;
}
a tak ma byc
if (wyp == 255)
{
   x = 1;
}
[Obrazek: banerelektronika.jpg]



Jeśli pomogłem podziękuj punktem reputacji Wink
 
Odpowiedź
#5
to jeden a dwa że nie zrobiłem:
Kod:
if(wyp == 0)
{
  x=0
}
  Confused
 
Odpowiedź
#6
(15-08-2016, 16:31)Ptr napisał(a): jak już wspomniałem, poniższy kod nie działa prawidłowo, mogli byście wskazać błąd ? 

Na serial monitorze wyświetla się ciągle watrtość 254 i nie wiem dlaczego zmienna x nie przeskakuje na 1 żeby wartość mogła się zmniejszać...
Zadanie brzmi:


Cytat:Napisz funkcję, która sprawia, że dioda będzie  pulsować (stopniowe przygaszanie i rozjaśnianie).


Kod:
void setup()
{
 
 Serial.begin(9600);
 LED();
}

void loop()
{
 
}

void LED()
{
 int wyp = 0;
 bool x = 0;
 
 pinMode(13, OUTPUT);

 while(1)
 {
 analogWrite(13,wyp);
 delay(50);


//..............................................................................

 if (wyp = 255)
 {
   x = 1;      Zle nie robilem  to po pacz tutaj!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 }



//............................................................................................
 if(x == 0)
 {
   wyp++;
 }
 if(x > 0)
 {
   wyp--;
 }
 Serial.println(wyp);
 }
}
Po pacz dokładni byk jak nic c nie rozumie tak ja basik ze a =b w funkcji if tylko a==b.
I proszę nie kłuć się tylko stosuj poradę w przyszłych kodach aby nie było problemu ponownie
[Obrazek: banerelektronika.jpg]



Jeśli pomogłem podziękuj punktem reputacji Wink
 
Odpowiedź
#7
yyy? Co? Czy gdziekolwiek napisałem że się nie zgadzam ? Nie wiem z czym masz problem...
 
Odpowiedź
#8
To widocznie zle zrozumiałem przesłanie jakie chciałeś powiedzieć tymi słowami jak tak to spoko"to jeden a dwa że nie zrobiłem:".
[Obrazek: banerelektronika.jpg]



Jeśli pomogłem podziękuj punktem reputacji Wink
 
Odpowiedź
#9
Widocznie, generalnie temat jest do zamknięcia Smile
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości