Forum: Mikrocontroller und Digitale Elektronik PWM Signal verändern mit Schalter (Arduino)


von Malaps (Gast)


Lesenswert?

Hallo zusammen,
im follgenden Code habe ich am Pin 10 eine Moosfet Transistor Schaltung 
welcher einen großen Motor mittels PWM regeln soll.
Der Code an sich funktioniert.
Wie müsste ich den Code umschreiben, wenn:
- ich am Pin 2 ein Schalter habe
-Bei jedem drücken des Schalters soll das PWM signal um 50 erhöht werden
-ein zweiter Schalter am Pin 3 soll das PWM Signal beim drücken um 
jeweils    50 reduzieren.

Ich hänge hier echt fest. Für mögliche Lösungsvorschläre wäre ich echt 
Dankbar.
MfG

----------------------------------------
CODE
----------------------------------------
#define Gate 10
void setup() {
  pinMode(Gate,OUTPUT);
  digitalWrite(Gate,LOW);
}

void loop() {
delay(1000);
analogWrite(Gate, 50);
}

von Georg M. (g_m)


Lesenswert?


von Thomas R. (r3tr0)


Lesenswert?

unsigned char pwm = 0;
unsigned char entprellung = 0;

#define Taster1 2  //pwm signal hoch
#define Taster2 3  //pwm signal runter
#define Gate 10

void setup() {
  pinMode(Gate,OUTPUT);
  pinMode(Taster1, INPUT);
  pinMode(Taster2, INPUT);
  digitalWrite(Gate,LOW);
}

void loop() {
delay(1000);
analogWrite(Gate, pwm);

if(Taster1 == 1&&entprellung <2)
{
 entprellung=1;
 if(entprellung==1)
 {
  if(pwm<=204)
  {
  pwm=pwm+50;
  }
  if(pwm>=205)
  {
  pwm=255;
  }
  entprellung=2;
 }
}

if(Taster2 == 1&&entprellung <4)
{
 entprellung=3;
 if(entprellung==3)
 {
   if(pwm>=51)
   {
   pwm=pwm-50;
   }
   if(pwm<=50)
   {
   pwm=0;
   }
   entprellung=4;
 }
}

if(Taster1==0 && Taster2==0)
{
  entprellung = 0;
}

}

: Bearbeitet durch User
von Malaps (Gast)


Lesenswert?

Vielen vielen Dank
MfG

von Wolfgang (Gast)


Lesenswert?

Malaps schrieb:
> Ich hänge hier echt fest.

Kein Wunder.

> delay(1000);

Das ist der falsche Ansatz. Wie leicht kommt da irgend ein Tölpel, 
drückt die Taste kurz mal 2..8/10 Sekunden und das Programm bekommt das 
nicht mit.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.