Код данного примера находится в свободном достоянии.
# Определить key1ValueMin 96
# Определить key1ValueMax 106
# Определить key2ValueMin 144
# Определить key2ValueMax 159
# Определить key3ValueMin 193
# Определить key3ValueMax 213
# Определить key4ValueMin 242
# Определить key4ValueMax 255
Int adPin = A0;/Выберите входной контакт для потенциометра
Int keyValue;
Int keyValue_r;
Int keyValue_rr;
/Ключ сканирования
Int key_scan (void)
{
Int adValue;
Int ключ;
AdValue = аналог (adPin);/чтение значения ad
AdValue = adValue/4;
If (adValue> = key1ValueMin & adValue <= key1ValueMax)/k1
{
Ключей =-1 шт.;
}
Еще если (adValue> = key2ValueMin & adValue <= key2ValueMax)/К2
{
Ключей = 2;
}
Еще если (adValue> = key3ValueMin & adValue <= key3ValueMax)/К3
{
Ключ = комплект из 3 предметов;
}
Еще если (adValue> = key4ValueMin)/k4
{
Ключей = 4;
}
Другое/недействительным и соотношение цена/качество
{
Ключей = 0;
}
Копка возврата;
}
Void setup () {
Серийный. Старт (9600);
}
Void loop () {
/Сохранить значение сканирования трех клавиш
KeyValue_rr = keyValue_r;
KeyValue_r = keyValue;
KeyValue = key_scan ();
/Три сканированных значения одинаковые, указывающие, что ключ действителен
Если (значение ключа> 0 и & значение ключа = keyValue_r & keyValue_r = keyValue_rr)
{
Серийный. Принт ("keyValue =");
Serial. println (keyValue);
}
Задержка (100);/каждый интервал сканирования 100-200 мс
}