INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Ventilator
22.01.2020, 21:21 (Dieser Beitrag wurde zuletzt bearbeitet: 22.01.2020 21:40 von HaPeBe.)
Beitrag #1
Wink Ventilator
Frage:
was mache ich falsch?
Der angeschlossene Ventilator soll langsam rauffahren und danach langsam wieder runter. Er kommt aber nicht aus dem 1. Teil der Schleife raus :-(
Code:
int PWMpin = 5;
int Speed = 150;
int Pause = 100;
int n=0;
void setup()
{

}

void loop()
{
if (n < Speed){  
for (int n=0; n <= Speed; n++){
    analogWrite(PWMpin, n);
    delay(Pause);
}
}
else {
for (int n=Speed; n <= 0; n--){
     analogWrite(PWMpin, n);
     delay(Pause);
}
}  

delay(2000);

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.01.2020, 21:26
Beitrag #2
RE: Ventilator
Stelle Deinen Sketch bitte in Codetags. So ist er auch auf portablen Geräten lesbar.
Wie das geht, steht hier.
Das kannst Du auch noch nachträglich ändern.

Eine ordentliche Einrückung erhöht auch die Lesbarkeit.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.01.2020, 21:41
Beitrag #3
RE: Ventilator
Hallo Tommy56,
besser so?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.01.2020, 21:44
Beitrag #4
RE: Ventilator
auch das bringt mich nicht ans Ziel:

Code:
int PWMpin = 5;
int Speed = 200;
int Pause = 50;
int n=0;
void setup()
{

}

void loop()
{
for (int n=0; n <= Speed; n=n+1){
    analogWrite(PWMpin, n);
    delay(Pause);

for (int n=Speed; n <= 0; n=n-1)
     analogWrite(PWMpin, n);
     delay(Pause);
}

delay(2000);

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.01.2020, 21:45
Beitrag #5
RE: Ventilator
(22.01.2020 21:41)HaPeBe schrieb:  Hallo Tommy56,
besser so?

Noch besser wird es, wenn du zuvor Strg+t in der IDE drückst, dann wird der Sketch sauber formatiert und dadurch besser lesbar.

Hast du dir die Werte deiner Schleifen mal im seriellen Monitor angesehen ?
Mach mal das =Zeichen in der Schleife hier <= raus.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.01.2020, 21:48
Beitrag #6
RE: Ventilator
(22.01.2020 21:45)hotsystems schrieb:  
(22.01.2020 21:41)HaPeBe schrieb:  Hallo Tommy56,
besser so?

Noch besser wird es, wenn du zuvor Strg+t in der IDE drückst, dann wird der Sketch sauber formatiert und dadurch besser lesbar.

Hast du dir die Werte deiner Schleifen mal im seriellen Monitor angesehen ?
Mach mal das =Zeichen in der Schleife hier <= raus.

es wird immer nur von 0 an hochgezählt bis zum Maximum,
dann wieder von 0 bis max.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.01.2020, 21:52 (Dieser Beitrag wurde zuletzt bearbeitet: 22.01.2020 21:59 von MicroBahner.)
Beitrag #7
RE: Ventilator
Das Problem ist, dass Du in der for-Schleife eine neue Variable n definierst.
Deine globale Variable veränderst Du nie, die bleibt immer 0

Du musst dass 'int' in den for-Schleifen rausnehmen.

Edit: und auch noch den Vergleich in der 2. Schleife rumdrehen ( n>=0 )

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.01.2020, 21:57
Beitrag #8
RE: Ventilator
ich habs gefunden - manchmal hat man ein Brett vorm Kopf:

Code:
int PWMpin = 5;
int Speed = 200;
int Pause = 50;
int n = 0;
void setup()
{

}

void loop()
{
  for (n = 0; n <= Speed; n = n + 1) {
    analogWrite(PWMpin, n);
    delay(Pause);
  }

  for (n = Speed; n >= 0; n = n - 1) {
    analogWrite(PWMpin, n);
    delay(Pause);
  }

delay(2000);

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste