История изменений
Исправление
Novator,
(текущая версия)
:
Я не понимаю как мне сделать сам подсчёт количества «щелчков» в коде
У тебя же есть код на Си:
if(!digitalRead(pinDIAL)){ // Если разрешено чтение импульсов (на синем проводе логический «0»), то ...
delay(20); // Подавляем дребезг шунтирующей контактной группы.
cntPULSE=0; // Сбрасываем счётчик.
while(!digitalRead(pinDIAL)){ // Входим в цикл, пока на синем проводе не появится логическая «1» ...
if(digitalRead(pinPULSE)){ // Если поступил импульс (на жёлтом проводе логическая «1»), то ...
// Фронт импульса: //
delay(5); // Подавляем дребезг импульсной контактной группы.
while(digitalRead(pinPULSE)){delay(5);} // Ждём завершения импульса.
// Спад импульса: //
delay(5); // Подавляем дребезг импульсной контактной группы.
cntPULSE++; // Увеличиваем счётчик полученных импульсов.
} //
} // Выход из цикла while сигнализирует о появлении логической «1» на синем проводе.
delay(20); // Подавляем дребезг шунтирующей контактной группы.
if(cntPULSE){ // Если был зафиксирован хотя бы 1 импульс, то ...
if(cntPULSE>=10){cntPULSE=0;} // Если поступило 10 импульсов, значит набрана цифра 0.
Serial.println(cntPULSE); // Выводим набранную цифру (количество поступивших импульсов).
} //
} //
}
Перепиши на питоне:
while True:
if not GPIO.input(dial):
sleep(0.02)
cntPULSE=0
while not GPIO.input(dial):
if GPIO.input(pulse):
sleep(0.005)
while GPIO.input(pulse):
sleep(0.005)
sleep(0.005)
cntPULSE += 1
sleep(0.005)
if (cntPULSE>0) and (cntPULSE<10):
print('Считано импульсов: '+str(cntPULSE))
else:
sleep(0.02)
Попробуй.
Исходная версия
Novator,
:
Я не понимаю как мне сделать сам подсчёт количества «щелчков» в коде
У тебя же есть код на Си:
if(!digitalRead(pinDIAL)){ // Если разрешено чтение импульсов (на синем проводе логический «0»), то ...
delay(20); // Подавляем дребезг шунтирующей контактной группы.
cntPULSE=0; // Сбрасываем счётчик.
while(!digitalRead(pinDIAL)){ // Входим в цикл, пока на синем проводе не появится логическая «1» ...
if(digitalRead(pinPULSE)){ // Если поступил импульс (на жёлтом проводе логическая «1»), то ...
// Фронт импульса: //
delay(5); // Подавляем дребезг импульсной контактной группы.
while(digitalRead(pinPULSE)){delay(5);} // Ждём завершения импульса.
// Спад импульса: //
delay(5); // Подавляем дребезг импульсной контактной группы.
cntPULSE++; // Увеличиваем счётчик полученных импульсов.
} //
} // Выход из цикла while сигнализирует о появлении логической «1» на синем проводе.
delay(20); // Подавляем дребезг шунтирующей контактной группы.
if(cntPULSE){ // Если был зафиксирован хотя бы 1 импульс, то ...
if(cntPULSE>=10){cntPULSE=0;} // Если поступило 10 импульсов, значит набрана цифра 0.
Serial.println(cntPULSE); // Выводим набранную цифру (количество поступивших импульсов).
} //
} //
}
Перепиши на питоне:
while True:
while not GPIO.input(dial):
sleep(0.02)
cntPULSE=0
while not GPIO.input(dial):
if GPIO.input(pulse):
sleep(0.005)
while GPIO.input(pulse):
sleep(0.005)
sleep(0.005)
cntPULSE += 1
sleep(0.02)
if (cntPULSE>0) and (cntPULSE<10):
print('Считано импульсов: '+str(cntPULSE))
Попробуй.