标签: arduino-ultra-sonic

Arduino超声波传感器总是返回0

我正在Arduino UNO中做一个连接超声波传感器(HC-SR04)的基本项目,该传感器应该在串行监视器中打印最近物体的距离,但它总是打印 0。

这是我的代码:

long distance;
long time;

void setup(){
  Serial.begin(9600);
  pinMode(4, OUTPUT); 
  pinMode(2, INPUT); 
}

void loop(){
  digitalWrite(2,LOW);
  delayMicroseconds(5);
  digitalWrite(2, HIGH);
  delayMicroseconds(10);

  time = pulseIn(4, HIGH);
  distance = int(0.017*time); 

  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm.");
  delay(1000);
}
Run Code Online (Sandbox Code Playgroud)

这是面包板:

在此输入图像描述

arduino arduino-ultra-sonic

5
推荐指数
1
解决办法
2万
查看次数

如何从录音机麦克风输入数据计算频率电平

我正在 android 中做声音分析器应用程序。我可以使用 AudioTrack Api 生成 18 khz 到 20 khz 的超声波。我可以使用 AudioRecord Api 录制音频。但我不知道如何计算麦克风输入数据的频率。我看到了多个问题如何从fft结果中获取频率?使用 FFT 和 Complex 类获取频率 wav 音频它没有给出正确的频率。请帮助我。对不起,我的沟通。

这是我的频率计算代码

int bufferSizeInBytes = 1024; 
short[] buffer = new short[bufferSizeInBytes];
class Recording extends Thread {
    @Override
    public void run() {

        while (true) {

                bufferReadResult = audioInput.read(buffer, 0, bufferSizeInBytes); // record data from mic into buffer                    

                if(bufferReadResult > 0){
                   calculate();
                }              
        }
    }   


public void calculate() {
    DoubleFFT_1D fft1d = new DoubleFFT_1D(bufferSizeInBytes);//using JTransforms lib
    double[] fftBuffer …
Run Code Online (Sandbox Code Playgroud)

audio android fft audio-recording arduino-ultra-sonic

1
推荐指数
1
解决办法
4960
查看次数