360 Градуса Завъртане на Модула Энкодера За Arduino Brick Sensor Switch Такса Развитие KY-040 Контакти
sku: w2063
sku: w2063
Тагове: ротационен превключвател на каналите, брояч ky 040, лентата с бутоните arosa, 360 потенциометър arduino, проектиране на столове, китай отточна тръба на шарнирна връзка энкодер, модул undervoltage ds, сензор за ток на батерията, комплект за татуировки висок въртящ се, арт ардуино
Модул бутам энкодера
Работно напрежение: 5 v
Брой импулси в един кръг: 20
***************************************************************************
Тест код:
int redPin = 2;
int Жълта жени = 3;
int greenPin = 4;
int aPin = 6;
int bPIN = 7;
int buttonPin = 5;
състояние int i = 0;
int longPeriod = 5000; // Времето в зелено или червено
int shortPeriod = 700; // Период от време при промяна на
int targetCount = Кратък период от време;
брой входове = 0;
настройка void()
{
pinMode(aPin, ВХОД);
pinMode (bPIN, ВХОД);
pinMode (бутон за въвеждане, ВХОД);
pinMode (червен извод, ЗАКЛЮЧЕНИЕ);
pinMode (жълто изход, ИЗХОД);
pinMode (зелен извод, ЗАКЛЮЧЕНИЕ);
}
празен цикъл()
{
брой++;
if (digitalRead(бутон))
{
Прожектори (ВИСОКИ, ВИСОКИ, ВИСОКИ);
}
още
{
int change = getEncoderTurn();
int newPeriod = longPeriod + (промяна * 1000);
if (newPeriod >= 1000 && newPeriod targetCount)
{
setState() Задаване на състоянието();
брой = 0;
}
}
закъснение (1);
}
int getEncoderTurn()
{
// връща стойност -1, 0 или +1
статичен int oldA = НИСКА;
статичен int oldB = НИСКА;
int резултат = 0;
int newA = digitalRead(aPin);
int newB = digitalRead(bPIN);
ако (newA != oldA || newB != oldB)
{
// че нещо се е променило
ако (oldA == НИСЪК && newA == HIGH)
{
резултат = - (oldB * 2 - 1);
}
}
олдА = новА;
олдБ = ньюБ;
върнатият резултат;
}
int setState()
{
ако (състояние == 0)
{
Осветление (ВИСОКА, ниска, НИСКА);
targetCount = Дълъг период;
състояние = 1;
}
иначе, ако (състояние == 1)
{
Осветление (най-ВИСОКАТА, ВИСОКАТА, най-НИСКАТА);
targetCount = Кратък период от време;
състояние = 2;
}
иначе, ако (състояние == 2)
{
Осветление (ниска, НИСКА, ВИСОКА);
targetCount = Дълъг период;
състояние = 3;
}
иначе, ако (състояние == 3)
{
Осветление (НИСКА, ВИСОКА, НИСКА);
targetCount = Кратък период от време;
състояние = 0;
}
}
void setLights (int червено, int жълто, int зелено)
{
Цифров запис (redPin, червено);
Цифров запис (жълто пин, жълто);
Цифров запис (greenPin, зелено);
}
***************************************************************************
Наличен сега
Технически характеристики