lqh 发表于 2016-1-9 21:15:16

学了就要用,来一个驱“四害”的

本帖最后由 lqh 于 2016-1-9 21:20 编辑

       现在虽说是数九寒冬,但酷热的夏天终归要来的!随之而来的,当然还有蚊子、蟑螂等等,有什么办法把它们拒之门外呢?对了,次声波(低于30HZ的正弦波,一般5—20HZ),大功率的次声波能杀人于无形,下一步将广泛用于战场,小功率的次声波赶赶蚊子蟑螂,那是不在话下。如何产生次声波,既然学了Arduino,今天就用它产生一个10HZ的正弦,程序及接线说明如下:

float deg=0;//这是角度
float rad=deg*PI/180;//这是角度对应的弧长

void setup() {
Serial.begin(9600);
}

void loop() {
for(deg=0;deg<360;deg=deg+0.1){//角度的步长为0.1,一个周期就要输出3600个数据,够精确了
    float i=(255*sin(deg*PI/180)+255)/2;//将角度转变为弧长,并使其值的范围在0-255之间
    analogWrite(10,i);//模拟引脚10直接接2.5mw的扬声器,或加一数字滤波并用一小功率三极管(如9018)驱动则更好
    //Serial.println(i);//打开用于调试
    delayMicroseconds(27.77);//正弦的周期为0.02777*3600=100ms,即10HZ的次声波
}
}

看贴不回贴不文明!

yyy_zc 发表于 2016-1-10 14:48:49

有示波器显示的结果不?

lqh 发表于 2016-1-10 17:47:47

不好意思,没有示波器显示结果,不过你可以用Processing来显示!

eddiewwm 发表于 2016-1-11 10:54:03

很可惜,事與願違,因未有考慮運行所需的時間!
//    delayMicroseconds(27.77);//正弦的周期为0.02777*3600=100ms,即10HZ的次声波

輸出應約為 1.4Hz

maxims 发表于 2016-1-11 21:23:12

eddiewwm 发表于 2016-1-11 10:54 static/image/common/back.gif
很可惜,事與願違,因未有考慮運行所需的時間!
//    delayMicroseconds(27.77);//正弦的周期为0.02777*3 ...

haha ,打脸了不是?

lqh 发表于 2016-1-12 08:54:13

eddiewwm说的很对,之前确实没有考虑运行时间,谢谢提醒!在交流中学习,在碰撞中提高,这应该是大家参与论坛的初衷,希望大家多提意见,提出象eddiewwm一样的好意见,谢谢!

lqh 发表于 2016-1-13 08:52:47

eddiewwm 发表于 2016-1-11 10:54 static/image/common/back.gif
很可惜,事與願違,因未有考慮運行所需的時間!
//    delayMicroseconds(27.77);//正弦的周期为0.02777*3 ...

    以前的每次输出都要进行浮点运算,既浪费资源,又不好掌握运行时间,现改成数组输出吧!

float deg=0;
int num;//用于存贮正弦值
int a=0;
void setup() {
Serial.begin(9600);
int i=0;
   for(deg=0;deg<360;deg=deg+1){//角度的步长为1
    num=(255*sin(deg*PI/180)+255)/2;//将角度转变为弧长,并使其值的范围在0-255之间,
    i=i+1;
    }
}

void loop() {
    if(a==360){
      a=0;
    }
    analogWrite(10,num);//从数组中读入并写出
    //Serial.println(num);//打开用于调试
    delayMicroseconds(277);//对着示波器自己调到10HZ左右
    a=a+1;
}

eddiewwm 发表于 2016-1-13 09:45:33

lqh 发表于 2016-1-13 08:52 static/image/common/back.gif
以前的每次输出都要进行浮点运算,既浪费资源,又不好掌握运行时间,现改成数组输出吧!

float de ...

頻率調得差不多了;但按理這段代碼應該會編譯失敗才是,因單看以下這句,就應該有問題了。

//   num=(255*sin(deg*PI/180)+255)/2;//将角度转变为弧长,并使其值的范围在0-255之间,//

msold5 发表于 2016-1-13 23:26:16

能确定这些小东西吃这一套?如果真有效的话可能好多人都想去弄一套,但貌似很早前就有不少人试过效果不太好吧?

lqh 发表于 2016-1-21 07:15:25

maxims 发表于 2016-1-11 21:23
haha ,打脸了不是?

效果怎么样,做一个试试呗!以前用C51做了一个,家里的蟑螂少了很多,有时即便发现有,那也是个头特小的。

catnull 发表于 2016-1-21 08:41:58

能不能驱赶老鼠啊?

lqh 发表于 2016-1-22 20:05:29

catnull 发表于 2016-1-21 08:41 static/image/common/back.gif
能不能驱赶老鼠啊?

理论上讲,应该是可以的!但用什么频率、使用多大功率,需要查阅资料和进行试验。但切记要注意功率不能太大,对人有伤害。

迷你强 发表于 2016-1-23 09:36:18

:lol很不幸,然并卵,但没关系,反正就是玩嘛,管他有木有用呢。。。。

maxims 发表于 2016-1-24 11:05:22

lqh 发表于 2016-1-13 08:52 static/image/common/back.gif
以前的每次输出都要进行浮点运算,既浪费资源,又不好掌握运行时间,现改成数组输出吧!

float de ...

哎哟,我滴个天,这个不错。
再来一个EEprom存储
页: [1]
查看完整版本: 学了就要用,来一个驱“四害”的