0
다음 코드를 사용하여 센서를 통과하는 유량을 읽습니다. 센서를 포트 2에 꽂았을 때 모든 것이 정상적으로 작동했습니다. 그러나 이것을 비트 7 (하드웨어 및 소프트웨어 모두)로 변경하면 어떤 결과도 얻지 못했지만 비트 2를 계속 측정했습니다. 그 이유를 아는 사람이 있습니까? 여기의 Arduino UNO의 코드arduino 유량 센서
#include <SD.h>
volatile int Signal_1; //measuring the rising edges of the signal
int MeasuredFlow_1; // the converted output signal
int flowmeter_1 = 7; // Assigning pin 7 to input of flow meter 1 (input)
void rpm() //This is the function that the interupt calls
{
Signal_1++; //This function measures the rising and falling edge of the hall effect sensors signal
}
// The setup() method runs once, when the sketch starts
void setup() //
{
pinMode(flowmeter_1, INPUT); //initializes digital pin 7 as an input
Serial.begin(9600); //This is the setup function where the serial port is initialised,
attachInterrupt(0, rpm, RISING); //attaching the interrupt
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop()
{
Signal_1 = 0; //Set NbTops to 0 ready for calculations
sei(); //Enables interrupts
delay (1000); //Wait 1 second
cli(); //Disable interrupts
MeasuredFlow_1 = (Signal_1 * 60/7.5); //(Pulse frequency x 60)/7.5Q, = flow rate in L/hour
Serial.print (MeasuredFlow_1, DEC); //Prints the number calculated above
Serial.print (" L/hour\r\n"); //Prints "L/hour" and returns a new line
}