360 Graad PWM Roterende Enkodeerder

      360 Graad PWM Roterende Enkodeerder

      USD
      Model #
      Quantity
      qty limit cart limit

      Versendingkosteberaming

      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.

      Beskrywing

      Hierdie tipe skakelaar is 'n inkrementele roterende enkodeerder.  In werklikheid is dit die mees gebruikte van alle roterende enkoders as gevolg van sy lae koste en vermoë om seine te verskaf wat maklik geïnterpreteer kan word om bewegingsverwante inligting soos snelheid te verskaf.

      Deur te draai, die roterende enkodeerder kan die uitset pols frekwensie tel in positiewe en omgekeerde rigting tydens rotasie, in teenstelling met 'n roterende potentiometer toonbank sonder om beperking te tel. Met die knoppie op die roterende enkodeerder kan dit teruggestel word na sy aanvanklike toestand vanaf nul.

      Toets kode

      int redPin = 2;
      int yellowPin = 3;
      int greenPin = 4;
      int aPin = 6;
      int bPin = 7;
      int buttonPin = 5;
      int staat = 0;
      int longPeriod = 5000; Tyd op groen of rooi
      int kortPeriod = 700; Tydperk wanneer dit verander
      int targetCount = shortPeriod;
      int telling = 0;
      leemte opstelling()
      {
      pinMode (aPin, INSETTE);
      pinMode (bPin, INSETTE);
      pinMode (knoppiePin, INSETTE);
      pinMode (redPin, UITSET);
      pinMode (geelPin, UITSET);
      pinMode (greenPin, UITSET);
      }
      leemte lus()
      {
      tel++;
      as (digitalRead (buttonPin))
        {
      setLights (HOOG, HOOG, HOOG);
        }
      Anders
        {
      int verandering = getEncoderTurn ();
      int newPeriod = longPeriod + (verander * 1000);
      as (newPeriod >= 1000 & newPeriod <= 10000)
          {
      longPeriod = newPeriod;
          }
      indien (tel > targetCount)
          {
      setState();
      tel = 0;
          }
        }
      vertraging(1);
      }
      int getEncoderTurn()
      {

      terugkeer -1, 0 of +1
      statiese int oldA = LAE;
      statiese int oldB = LAE;
      int resultaat = 0;
      int newA = digitaleLees (aPin);
      int newB = digitaleLees (bPin);
      as (newA != oldA || nuweB != oldB)
        {
      iets verander het
      as (oldA == LAE & newA == HOOG)
          {
      resultaat = -(oldB * 2 - 1);
          }
        }
      oldA = newA;
      oldB = newB;
      terugkeer resultaat;
      }
      int setState()
        {
      as (staat == 0)
          {
      setLights (HOOG, LAAG, LAAG);
      targetCount = longPeriod;
      staat = 1;
          }
      anders as (staat == 1)
          {
      setLights (HOOG, HOOG, LAAG);
      targetCount = shortPeriod;
      staat = 2;
          }
      anders as (staat == 2)
          {
      setLights (LAE, LAE, HOOG);
      targetCount = longPeriod;
      staat = 3;
          }
      anders as (staat == 3)
          {
      setLights (LAE, HOOG, LAAG);
      targetCount = shortPeriod;
      staat = 0;
          }
        }
      leemte setLights (int rooi, int geel, int groen)
      {
      digitaleSkryf (redPin, rooi);
      digitaleSkryf (geelPin, geel);
      digitaleSkryf (greenPin, groen);