黄工无刷电机学习
登录
直播中
费加罗
8年用户
814经验值
私信
关注
[问答]
TCRT5000红外反射传感器与SG90舵机的工作原理
开启该帖子的消息推送
TCRT5000
传感器
TCRT5000红外反射传感器的工作原理是什么?
SG90舵机的工作原理是什么?
回帖
(1)
张婧怡
2021-10-11 10:25:04
TCRT5000红外反射传感器:
引脚定义
D0:TTL开关信号输出
A0:模拟信号输出(不同距离输出不同的电压,此引脚可以不接)
工作原理:
TCRT5000传感器的红外发射二极管不断发射红外线,黑色是不反射红外线的,也就是说循迹模块遇到黑线,模块D0输出高电平,输出指示灯熄灭;
反之D0输出低电平
应用范围场景
黑白线检测,(循迹小车)
障碍检测,(手扫开关)
实现代码
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(GPIO_PIN_RESET==HAL_GPIO_ReadPin(D0_GPIO_Port,D0_Pin))
{
printf(“blackrn”);
}
if(GPIO_PIN_SET==HAL_GPIO_ReadPin(D0_GPIO_Port,D0_Pin))
{
printf(“whitern”);
}
HAL_Delay(200);
}
SG90舵机:
引脚定义
工作原理:
通过定时器PWM控制,给相应的占空比旋转相应角度
舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
CUBEMX配置
实现代码
// /*舵机参数:f=50hz,t=20ms
// --------------------------
// |0 |45 |90 |135|180| 度|
// -------------------------
// |0.5 |1.0|1.5|2.0|2.5| 毫秒|
// --------------------------
// angle:角度值,0~180
void Servo_Control(uint8_t angle)
{
float temp;
//占空比值 = 1/9 * 角度 + 5
temp =(1.0 / 9.0) * angle + 5.0;
//200脉宽 0.1ms一单位
//修改占空比
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, (uint16_t )temp);
}
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(ststus==0)
{
i++;
if(i==180)
{
ststus=1;
}
}
else if(ststus==1)
{
i--;
if(i==0)
{
ststus=0;
}
}
Servo_Control(i);
HAL_Delay(1);
}
TCRT5000红外反射传感器:
引脚定义
D0:TTL开关信号输出
A0:模拟信号输出(不同距离输出不同的电压,此引脚可以不接)
工作原理:
TCRT5000传感器的红外发射二极管不断发射红外线,黑色是不反射红外线的,也就是说循迹模块遇到黑线,模块D0输出高电平,输出指示灯熄灭;
反之D0输出低电平
应用范围场景
黑白线检测,(循迹小车)
障碍检测,(手扫开关)
实现代码
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(GPIO_PIN_RESET==HAL_GPIO_ReadPin(D0_GPIO_Port,D0_Pin))
{
printf(“blackrn”);
}
if(GPIO_PIN_SET==HAL_GPIO_ReadPin(D0_GPIO_Port,D0_Pin))
{
printf(“whitern”);
}
HAL_Delay(200);
}
SG90舵机:
引脚定义
工作原理:
通过定时器PWM控制,给相应的占空比旋转相应角度
舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
CUBEMX配置
实现代码
// /*舵机参数:f=50hz,t=20ms
// --------------------------
// |0 |45 |90 |135|180| 度|
// -------------------------
// |0.5 |1.0|1.5|2.0|2.5| 毫秒|
// --------------------------
// angle:角度值,0~180
void Servo_Control(uint8_t angle)
{
float temp;
//占空比值 = 1/9 * 角度 + 5
temp =(1.0 / 9.0) * angle + 5.0;
//200脉宽 0.1ms一单位
//修改占空比
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, (uint16_t )temp);
}
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(ststus==0)
{
i++;
if(i==180)
{
ststus=1;
}
}
else if(ststus==1)
{
i--;
if(i==0)
{
ststus=0;
}
}
Servo_Control(i);
HAL_Delay(1);
}
举报
更多回帖
rotate(-90deg);
回复
相关问答
TCRT5000
传感器
有关
SG90
伺服电机(
舵机
)的基础知识汇总
2021-06-28
2281
如何利用51单片机去控制
SG90
舵机
?
2021-07-29
1473
arduino光电循迹搬运小车该用四轮车吗?
2018-09-25
4371
如何去实现基于STM32F103ZET的
SG90
舵机
控制呢
2021-11-19
1244
请问
红外反射
式
传感器
如何选型?
2020-05-12
2459
红外
对管可以用来测量人体脉搏吗
2012-05-13
12721
请问一下大神如何用pwm去控制
sg90
舵机
呢
2022-06-20
2027
如何使用stm32Cubemx软件配置PWM来控制
SG90
舵机
角度?
2021-12-02
916
SG90
舵机
的知识点汇总,绝对实用
2022-01-20
4742
80c51操作
TCRT5000
反射
式光电开关进行计数的问题,求解
2012-03-05
5160
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分