Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
arduino流量传感器_Arduino_Sensors_Flow - Fatal编程技术网

arduino流量传感器

arduino流量传感器,arduino,sensors,flow,Arduino,Sensors,Flow,我使用以下代码读取通过传感器的流量。当我将传感器插入端口2时,一切正常。但当我在硬件和软件中将其更改为第7位时,它并没有给出任何结果,但仍然继续测量第2位。有人知道为什么吗? 这是密码 #include <SD.h> volatile int Signal_1; //measuring the rising edges of the signal int MeasuredFlow_1; // the converted output signal int flowmeter

我使用以下代码读取通过传感器的流量。当我将传感器插入端口2时,一切正常。但当我在硬件和软件中将其更改为第7位时,它并没有给出任何结果,但仍然继续测量第2位。有人知道为什么吗? 这是密码

#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
}

在arduino UNO上,attachInterrupt仅适用于ID为0的管脚数字2和ID为1的管脚数字3,不能用于任何其他管脚

直接使用寄存器,您可以在任何管脚上使用更改中断,但这可能会适得其反,因为中断位于og 8管脚组上,因此,如果您使用用于串行的数字管脚0和1收听该组,您将有大量中断,可能会导致故障

有关如何使用此方法仅读取某些特定pin的示例,请参见