szpapas 发表于 2013-10-14 00:42 static/image/common/back.gif
多谢楼主。
看起来还有点不一样。你那个红外接收的838下面还有个底座呀,是自己加的还是原来就带的?...
底座是我自己加的,当时是考虑方便测试用,也没想到这么容易。
接收我还没焊呢,没买到3.3v的 315、433双频模块
需要反相,我的电路图里有体现 thomas 发表于 2013-10-14 10:38 static/image/common/back.gif
底座是我自己加的,当时是考虑方便测试用,也没想到这么容易。
接收我还没焊呢,没买到3.3v的 315、 ...
可以用5V的模块吧,输入就是5V的。
http://item.taobao.com/item.htm?spm=a230r.1.14.30.JK3BLb&id=14723998189&_u=e1tn5m72eba 433 接收的。搭了一个反相电路,用的是S9015和2N3906,用Logic Sniffer来看好像没有转相,不知道是什么原因。
接线是这样的。 VCC 是 3.3V的。
433 的 data 出来,然后接一个10K 电阻,连接到 PNP 的 Base, VCC(3.3V) 接10k电阻到 PNP的 E 脚,PNP的C接地。
如果这样,就感觉上不需要做反向了。 分别抓的是B脚和E脚的波形。
szpapas 发表于 2013-10-19 19:32 static/image/common/back.gif
433 接收的。搭了一个反相电路,用的是S9015和2N3906,用Logic Sniffer来看好像没有转相,不知道是什么原因 ...
http://image.geek-workshop.com/forum/201310/08/202233vprkhktpru9j9ysy.gif
左边就是反相的三极管,只需要一个 兄弟,再帮帮忙。 433能够学习到,并且也记录在手机上了,但是从手机上通过wifi发送的时候,灯没控制成功。抓波形分析,看到发射的是38KHz的,外包络相同。
这个有点意思哈。 thomas 发表于 2013-10-20 23:15 static/image/common/back.gif
左边就是反相的三极管,只需要一个
这个知道,是不是三极管有什么讲究,高频管。 3906 或者 9015 应该都可以的吧。
反相就是起触发作用吧,后面的波形还是一样的? szpapas 发表于 2013-10-21 09:22 static/image/common/back.gif
这个知道,是不是三极管有什么讲究,高频管。 3906 或者 9015 应该都可以的吧。
反相就是起触发作用吧 ...
NPN,应该是9014把。不需要高频的,不是射频输出 换了一个3904,反相没问题了。
学习到后,只绑定成功了一次。主要问问题还是在发射电路。这个发射是驱动红外管发射的,所以频率是38KHz的,这样出来的波形肯定和驱动433发射的不同。
最好能找到红外输出再前一级的地方来推动433的发射。
本帖最后由 szpapas 于 2013-10-24 20:40 编辑
433/315 接收会有很多杂波的,这个也会影响到信号的学习的。接收433MHz的时候用了3.3V的电压,杂波少一些。
在有杂波的情况下通过学习起来,比较费劲。 本帖最后由 thomas 于 2013-10-26 23:55 编辑
szpapas 发表于 2013-10-23 18:15 static/image/common/back.gif
换了一个3904,反相没问题了。
学习到后,只绑定成功了一次。主要问问题还是在发射电路。这个发射是驱动 ...
最好能找到红外输出再前一级的地方来推动433的发射。
p0脚就是MPU的输出
p1是红外接收头 szpapas 发表于 2013-10-21 00:56 static/image/common/back.gif
兄弟,再帮帮忙。 433能够学习到,并且也记录在手机上了,但是从手机上通过wifi发送的时候,灯没控制成功。 ...
我连433的窗帘,窗户都一起控制了,兼容性极好。
前几天又拆开了一下,再给你拍张图。 发射一共引出两根引线,非常简单。
另,你推荐的双模接收不可取,严重上当了。千万别买
1.工作在5v电压。
2.不是照片中的358芯片,全是散件拼的,体积巨大。
3.我看上的几个发射接收模块都没有货。害得我白拍了一堆,又挨个退货。 多谢。还好,我没买。5V到没什么问题,1117的 管脚 分别是GND, OUT, 5V,我从那里取的电。
我现在用WebDunio做了一个RF的控制。
void setup()
{
Serial.begin(9600);
switch_315.enableReceive(0);// Receiver on inerrupt 0 => that is pin #2
switch_315.enableTransmit(8);
switch315_delay = 350;
Ethernet.begin(mac, ip);
webserver.begin();
webserver.setDefaultCommand(&defaultCmd);
webserver.addCommand("read", &readCmd);
webserver.addCommand("write", &writeCmd);
}
void loop()
{
// process incoming connections one at a time forever
webserver.processConnection();
if (switch_315.available()) {
Serial.println("315");
switch315_dec = switch_315.getReceivedValue();
switch315_length = switch_315.getReceivedBitlength();
switch315_delay = switch_315.getReceivedDelay();
output(switch_315.getReceivedValue(), switch_315.getReceivedBitlength(), switch_315.getReceivedDelay(), switch_315.getReceivedRawdata(),switch_315.getReceivedProtocol());
switch_315.resetAvailable();
}
delay(10);
// if you wanted to do other work based on a connecton, it would go here
}
unsigned long switch315_dec, switch315_length, switch315_delay;
void readCmd(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
if (type == WebServer::POST)
{
server.httpFail();
return;
}
server.httpSuccess("application/json");
if (type == WebServer::HEAD)
return;
server << "{ ";
server << "decimal:" << switch315_dec << ", length: " << switch315_length <<", delay:" << switch315_delay ;
server << " }";
}
void writeCmd(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
if (strlen(url_tail))
{
unsigned long dec_val = atol(url_tail);
switch_315.setPulseLength(switch315_delay);
switch_315.send(dec_val, 24);
//switch_315.sendTriState("FF1FFF000010");
delay(1000);
server << "Success";
}
else
server << "Unknow Cmd";
}
直接通过Web就可以控制了。 然后再写一个IOS的App。
页:
1
[2]