повесить debouncer на расширитель ввода\вывода
- Войдите на сайт для отправки комментариев
Чт, 23/04/2015 - 01:12
Друзья, подкиньте плиз идейку как можно реализовать следующую штуку:
Цепляю по i2c кнопочки при помощи расширителя pcf8574 например так
Wire.requestFrom(32,1);
if(Wire.available() /*&& !test*/) //If the request is available
{
x = Wire.read();
}
if(x<=255)
{
if (x==224) { Serial.print("1 \t"); }; //P0
if (x==208) { Serial.print("2 \t"); }; //P1
if (x==200) { Serial.print("3 \t"); }; //P2
if (x==196) { Serial.print("4 \t"); }; //P3
if (x==194) { Serial.print("5 \t"); }; //P4
if (x==193) { Serial.print("6 \t"); }; //P5
if (x==128) { Serial.print("7 \t"); }; //P6
if (x==64) { Serial.print("8 \t"); }; //P7
}
Но мне хочется заюзать например debouncer из http://playground.arduino.cc/code/bounce который использует для инициализации отдельные пины, подскажите пожайста возможеварианты решений если они конечно имеются, заранее спасибо.
Возможные варианты решений"
MXPain, вариантов антидребезговых решений много . Самое простое -опрашивайте адрес не часто, скажем раз в 30мс. Лучше в прерывании какого-нибудь таймера. При удачном опросе if(x!=0) cледующий опрос отложить на 300мс.
Спасибо, все оказалось очень просто
if (x==64 && (millis()-b2PressTime>debounceTime)) { b2PressTime=millis(); Serial.print("8 \t"); }