droid_noob
发表于 2015-2-12 00:58:24
现在试过三种情况:
Case 1:直流电机由Power侧的 5V供电,运行之后整个Uno板似乎工作异常,表现为串口出来的解析值错乱
Case 2:直流电机由 PWM管脚供电,情况与Case 1相同
Case 3:直流电机由Uno板以外的电源供电,比如几节1.5V的电池,这种情况是可以完美工作的
你都可以试一把,不过应该是没法实现这种控制的
我看商城里面有:L298P Motor Shield这么个东西,如果用上是否就不需要额外的电源支持直流电机工作了呢?有机会请帮忙试一把
Jane
发表于 2015-2-13 10:14:36
droid_noob 发表于 2015-2-12 00:58
现在试过三种情况:
Case 1:直流电机由Power侧的 5V供电,运行之后整个Uno板似乎工作异常,表现为串口出来 ...
我知道了,那就是电机供电不足的原因了,电流消耗太大
Mr.why
发表于 2015-3-8 20:12:03
nivek 发表于 2014-12-14 05:44
我一点下载就会出现:
C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5: ...
https://lamb-mei.com/436/使用-arduino-1-5-x-ide-編譯有引用-irremote-出現-error-tkd2-was-not-declared-in-this-scope/
NorrisTong
发表于 2015-6-7 21:52:42
nivek 发表于 2014-12-14 05:44
我一点下载就会出现:
C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5: ...
将IRremoteTools.h 也包含到程序中,同时将IRremoteTools中的 int RECV_PIN 改为 11 就可以了
1.6后的版本可改为:
//项目十四 – 红外接收管
#include <IRremote.h> //调用IRremote.h库
#include <IRremoteTools.h> //调用IRremoteTools.h库
void setup(){
Serial.begin(9600); //串口波特率设为9600
beginIRremote();
}
void loop() {
//是否接收到解码数据,把接收到的数据存储在变量results中
if (IRrecived()) {
//接收到的数据以16进制的方式在串口输出
Serial.println(getIRresult(), HEX);
resumeIRremote(); // 继续等待接收下一组信号
}
}
linck
发表于 2015-7-29 21:21:28
改了一下用遥控器控制SERVO的代码。 按开关键正转到179或反转到0。或者按向上按钮(不放)可以一点一点向前转,按向下按钮(不放)可以一点一点向后转。
#include <IRremote.h> //调用IRremote.h库
#include <Servo.h>
// INFRARED
int RECV_PIN = 11; //定义RECV_PIN变量为11
IRrecv irrecv(RECV_PIN); //设置RECV_PIN(也就是11引脚)为红外接收端
decode_results results; //定义results变量为红外结果存放位置
long effectivePressed = 0; //储存按下一个按钮时,有效的键位值(除去0XFFFFFFFF之后,最新的那个值)
// LED
int ledPin = 10;
boolean ledState = LOW;
// SERVO
Servo myservo;
int pos = 0; // 储存servo位置
void setup(){
Serial.begin(9600); //串口波特率设为9600
irrecv.enableIRIn(); //启动红外解码
pinMode(ledPin, OUTPUT);
myservo.attach(9);
myservo.write(pos);
}
void loop() {
//是否接收到解码数据,把接收到的数据存储在变量results中
if (irrecv.decode(&results)) {
//接收到的数据以16进制的方式在串口输出
Serial.println(results.value, HEX);
if (results.value == 0xFD00FF) {
ledState = !ledState;
digitalWrite(ledPin, ledState);
if (ledState) {//按亮IR电源键,正转到180位置
for (pos = myservo.read(); pos<180; pos+=1){
myservo.write(pos);
delay(15);
}
} else {//按灭IR电源键,反转到0位置
for (pos = myservo.read(); pos >= 1; pos-=1){
myservo.write(pos);
delay(15);
}
}
}
if (results.value == 0xFD50AF || (results.value == 0xFFFFFFFF && effectivePressed == 0xFD50AF)) { // 按下上行按钮,servo正转
myservo.write(constrain(myservo.read() + 1, 0, 179));
delay(15);
}
if (results.value == 0xFD10EF || (results.value == 0xFFFFFFFF && effectivePressed == 0xFD10EF)) { // 按下下行按钮,servo反转
myservo.write(constrain(myservo.read() - 1, 0, 179));
delay(15);
}
Serial.println(effectivePressed, HEX);
if (results.value != 0xFFFFFFFF) effectivePressed = results.value;
irrecv.resume();// 继续等待接收下一组信号
}
}
Jane
发表于 2015-7-30 11:13:08
linck 发表于 2015-7-29 21:21
改了一下用遥控器控制SERVO的代码。 按开关键正转到179或反转到0。或者按向上按钮(不放)可以一点一点向前 ...
谢谢分享~
MoonShine
发表于 2015-7-30 12:45:25
老师直接复制代码结果出来这个错误,已经下载了RGBLED的库,也倒进去了,还是报错,不知道什么原因:funk:
MoonShine
发表于 2015-7-30 12:49:37
https://mc.dfrobot.com.cn/home.php?mod=space&uid=70171&do=album&picid=1876&goto=up#pic_block
AVALONXLE
发表于 2015-11-17 20:49:43
为哈默偶滴晚剑编译出错了(⊙o⊙)?:'(
powera
发表于 2015-12-11 22:45:23
Jane 发表于 2015-2-13 10:14
我知道了,那就是电机供电不足的原因了,电流消耗太大
请问Jane,对于电机供电不足,在这种情况下如何解决?
就是还是用遥控器,控制LED灯和电机连的风扇
说书人
发表于 2016-12-4 20:35:16
大神,可以讲讲怎样写遥控蜂鸣器播放固定音乐的代码吗???
说书人
发表于 2016-12-4 20:35:18
大神,可以讲讲怎样写遥控蜂鸣器播放固定音乐的代码吗???
969720505
发表于 2016-12-5 23:55:31
droid_noob 发表于 2015-2-10 22:07
## 这图里的 继电器可能型号有点问题,找了个样子有点像的## 总归就是Lesson 14里说的那种6脚的继电器,1 ...
楼主 , 我实验了你这个实验
连通电路之后,按下开关电机能正常工作,但是此时红外接收器会不断接受一下乱七八糟的信号,即使不按遥控器的开关按钮。要不断按开关才能让红外接收器捕捉到信号。
把小马达断路后便不会出现此现象,求助楼主解决方案。
ignore
发表于 2017-2-9 08:44:15
在思考这个红外遥控器,怎么采用长按一秒,执行A动作,长按2秒,执行B动作。。。。。
李明哲
发表于 2017-4-7 13:41:44
你好,想问一下遥控器具体按键对应的值是什么,就是这个:怎么通过遥控器上不同的按键,让舵机转动不同的角度,
逍遥自在
发表于 2017-10-14 20:53:14
为什么我的检查时它说IRrecv does not name atype
逍遥自在
发表于 2017-10-14 20:58:42
为什么我的检查时它回复IRrecv does not name a type
传宇w
发表于 2018-11-1 20:04:09
wanglei830205 发表于 2014-12-18 18:40
我用遥控来控制舵机
出现这个原因是因为arduino IDE库里的RobotIRremote库和你后来加载的库冲突了,解决这个问题最简单的办法,就是把RobotIRremote库这个库删了,重启IDE就好了。
云胡不喜
发表于 2018-11-5 11:20:04
Jane 发表于 2014-6-5 17:40
该教程实验平台:Arduino入门套件
上一篇教程:Arduino教程 Lesson 15--红外接收
楼主的接线图是用什么画的啊
Jane
发表于 2018-11-6 13:21:52
云胡不喜 发表于 2018-11-5 11:20
楼主的接线图是用什么画的啊
用的inkscape画的
小飞侠_
发表于 2019-7-8 18:41:52
给个赞