Я создал регистратор данных, используя микроконтроллер и 3 потенциометра (X, Y, Z).
Затем я добавил переменную скорость записи, которая колеблется от примерно 1,2 Гц до 50 Гц.
Наконец, я хочу добавить «кнопку калибровки», при которой, когда кнопка нажата, все показания обнуляются и начинают измерения оттуда.Я попытался создать кнопку калибровки и потерпел неудачу.Друг, который знает об этих вещах больше меня, сказал мне, что я должен попытаться использовать функцию прерывания.
См. Ниже.
float ZPot = 0;
float YPot = 1;
float XPot = 2;
byte SRate = 3; // Sample Rate Adjuster
byte Reset = 10; // Reset button.
float ZCalibration = 0;
float YCalibration = 0;
float XCalibration = 0;
void setup()
{
pinMode(XPot, INPUT);
pinMode(YPot, INPUT);
pinMode(ZPot, INPUT);
pinMode(SRate, INPUT);
pinMode(Reset, INPUT);
Serial.begin(9600);
}
void loop()
{
ZPot = (analogRead(0) / 1023.0 * 105.0) - ZCalibration;
YPot = (analogRead(1) / 1023.0 * 105.0) - YCalibration;
XPot = (analogRead(2) / 1023.0 * 105.0) - XCalibration;
SRate = analogRead(3) / 4;
Reset = digitalRead(10);
if (Reset == HIGH) {
ZCalibration = ZPot;
YCalibration = YPot;
XCalibration = XPot;
}
Serial.print("X Pot [mm] = ");
Serial.print(XPot );
delay(SRate);
Serial.print(" Y Pot [mm] = ");
Serial.print(YPot );
delay(SRate);
Serial.print(" Z Pot [mm] = ");
Serial.println (ZPot );
delay(SRate);
}