360-Grad-PWM-Drehgeberausbruch

      360-Grad-PWM-Drehgeberausbruch

      USD
      Model #
      Quantity
      qty limit cart limit

      Add Warranty Plus +8%

      Standard Warranty (included in purchase price): 12 month warranty due to device malfunctions when it is used within the described conditions/limits.

      Warranty Plus: Your product will be replaced (including free shipping) with a new one within 12 months of purchase, even if it is damaged due to improper wiring, incorrect usage, a problem in the electrical installation or any other circumstance.

      Versandkostenschätzer

      Note: You must have items in your cart already before you can see the estimated costs to ship your cart. This shipping tool will estimate the total shipping cost for your entire basket.

      Beschreibung

      Diese Art von Schalter ist ein Inkremental-Drehgeber. Tatsächlich ist es aufgrund seiner geringen Kosten und seiner Fähigkeit, Signale bereitzustellen, die leicht interpretiert werden können, um bewegungsbezogene Informationen wie Geschwindigkeit bereitzustellen, der am weitesten verbreitete aller Drehgeber.

      Durch Drehen kann der Drehgeber die Ausgangsimpulsfrequenz während der Drehung in positiver und umgekehrter Richtung zählen, im Gegensatz zu einem Drehpotentiometerzähler ohne Zählbegrenzung. Mit der Taste am Drehgeber kann ab Null auf den Ausgangszustand zurückgesetzt werden.

      Code testen

      int redPin = 2;
      int YellowPin = 3;
      int greenPin = 4;
      int aPin = 6;
      int bPin = 7;
      int buttonPin = 5;
      int state = 0;
      int longPeriod = 5000; // Zeit bei grün oder rot
      int shortPeriod = 700; // Zeitraum beim Ändern
      int targetCount = shortPeriod;
      int count = 0;
      void setup ()
      {
      pinMode (aPin, INPUT);
      pinMode (bPin, INPUT);
      pinMode (buttonPin, INPUT);
      pinMode (redPin, OUTPUT);
      PinMode (YellowPin, OUTPUT);
      pinMode (greenPin, OUTPUT);
      }
      void loop ()
      {
      count ++;
      if (digitalRead (buttonPin))
        {
      setLights (HIGH, HIGH, HIGH);
        }
      sonst
        {
      int change = getEncoderTurn ();
      int newPeriod = longPeriod + (Änderung * 1000);
      if (newPeriod> = 1000 && newPeriod <= 10000)
          {
      longPeriod = newPeriod;
          }
      if (count> targetCount)
          {
      setState ();
      count = 0;
          }
        }
      Verzögerung (1);
      }
      int getEncoderTurn ()
      {

      // -1, 0 oder +1 zurückgeben
      statisch int oldA = LOW;
      statisch int oldB = LOW;
      int result = 0;
      int newA = digitalRead (aPin);
      int newB = digitalRead (bPin);
      if (newA! = oldA || newB! = oldB)
        {
      // etwas hat sich verändert
      if (oldA == LOW && newA == HIGH)
          {
      Ergebnis = - (oldB * 2 - 1);
          }
        }
      oldA = newA;
      oldB = newB;
      Ergebnis zurückgeben;
      }
      int setState ()
        {
      if (state == 0)
          {
      setLights (HIGH, LOW, LOW);
      targetCount = longPeriod;
      Zustand = 1;
          }
      sonst wenn (state == 1)
          {
      setLights (HIGH, HIGH, LOW);
      targetCount = shortPeriod;
      Zustand = 2;
          }
      sonst wenn (state == 2)
          {
      setLights (LOW, LOW, HIGH);
      targetCount = longPeriod;
      Zustand = 3;
          }
      sonst wenn (state == 3)
          {
      setLights (LOW, HIGH, LOW);
      targetCount = shortPeriod;
      Zustand = 0;
          }
        }
      void setLights (int rot, int gelb, int grün)
      {
      digitalWrite (redPin, rot);
      digitalWrite (yellowPin, gelb);
      digitalWrite (greenPin, grün);