51单片机驱动SG90舵机抖动或者无反应问题解决方案

这篇具有很好参考价值的文章主要介绍了51单片机驱动SG90舵机抖动或者无反应问题解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、自制的51单片机最小系统板。

51单片机驱动SG90舵机抖动或者无反应问题解决方案,51单片机,嵌入式硬件,单片机

 51单片机驱动SG90舵机抖动或者无反应问题解决方案,51单片机,嵌入式硬件,单片机

51单片机驱动SG90舵机抖动或者无反应问题解决方案,51单片机,嵌入式硬件,单片机 2、加入了一个7805CV稳压模块,使用12V直流供电,随便找了个电源适配器。输出12V,1A

51单片机驱动SG90舵机抖动或者无反应问题解决方案,51单片机,嵌入式硬件,单片机

3、问题:确保程序无误,接线无误,上电之后舵机有轻微咔咔声,无法正确运行。或者有时候反复重新执行。根据观察判断是单片机运行几条指令之后就自动断电复位。

解决;经过网上查询,基本确定是供电问题。由于公用一个电源,导致供电不足,都无法正常运行。但是又不想用2个电源,太麻烦,因此用一个电源分出两路7805分别带动单片机和舵机,两路共地,运行之后一切正常,在面包板上测试没问题。

4、改进之后:

51单片机驱动SG90舵机抖动或者无反应问题解决方案,51单片机,嵌入式硬件,单片机

 51单片机驱动SG90舵机抖动或者无反应问题解决方案,51单片机,嵌入式硬件,单片机

 5、程序代码:

#include "reg52.h"
//开发板做信号,自制板做电源可以稳定运行(共地)。
//自制版做信号,外接直连5V,可稳定运行(共地)。
sbit sg90_con = P1^0;
sbit light = P1^1;    //设置指示灯以判断程序是否正确运行
int jd;
int cnt = 0;
void Delay2000ms()		//@11.0592MHz
{
	unsigned char i, j, k;
 
	i = 15;
	j = 2;
	k = 235;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}
 
 
void Time0Init()
{
	TMOD = 0x01;
	TL0=0x33;
	TH0=0xFE;
	TR0 = 1;
	TF0 = 0;
	ET0 = 1;
	EA = 1;
}
void Delay300ms()		
{
	unsigned char i, j, k;
 
	i = 2;
	j = 15;
	k = 50;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}
 
void main()
{
	Delay300ms();
	Time0Init(); 
	jd = 1;      
	cnt = 0;
	sg90_con = 1;
	jd = 3; 
	cnt = 0;
	Delay2000ms();
	jd = 1; 
	cnt = 0;
	Delay300ms();
	Time0Init(); 
	jd = 1;      
	cnt = 0;
	sg90_con = 1;
	jd = 3; 
	cnt = 0;
	while(1)  //让舵机只动一次,然后进入死循环,我是用来开电脑的,有别的需求自己改。
	{
		light = 0;
		Delay300ms();
		light = 1;
		Delay300ms();
	}
}
 
void Time0Handler() interrupt 1
{
	cnt++; 
	TL0=0x33;
	TH0=0xFE;	
	if(cnt < jd)
	{
		sg90_con = 1;
	}
	else
	{
		sg90_con = 0;
	}
	if(cnt == 40)
	{
		cnt = 0;  
		sg90_con = 1;
	}
		
}

5、总结:由于本人模电一窍不懂,所以走了很多弯路,双电源确实能解决问题,但是觉得过于麻烦,此方法使用一个电源就能正常工作。电源适配器选功率高一点的,太低的话可能也无法正常运行,毕竟舵机运行时候需要几百毫安的电流。

6、改进:可以装一个红外接收,用于控制舵机功能。也可根据需要添加其他功能。

51单片机驱动SG90舵机抖动或者无反应问题解决方案,51单片机,嵌入式硬件,单片机

 文章来源地址https://www.toymoban.com/news/detail-633340.html

到了这里,关于51单片机驱动SG90舵机抖动或者无反应问题解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32单片机】STM32控制SG90舵机的PWM部分参数的设置解答

    我们要知道,SG90舵机接收的PWM信号的参数:f=50Hz,T=1/f,所以周期为20ms。 当高电平的脉宽在0.5ms-2.5ms之间时舵机就可以对应旋转到不同的角度。 换句话说,我们要用单片机产生一个 周期(20ms) 的PWM波,然后获得对应这些时长(分别是 0.5ms 、 1ms 、 1.5ms 、 2ms 、 2.5ms )的 高电

    2024年02月13日
    浏览(46)
  • STM32驱动SG90舵机

    SG90是一种小型伺服电机,通常用于模型制作和小型机械应用中: 问题 答案 SG90的工作电压是多少 SG90的工作电压通常为3V至7.2V SG90最大扭矩是多少 SG90的最大扭矩约为1.5kg/cm SG90的工作温度范围是多少 SG90的工作温度范围通常为0°C至55°C SG90的控制方式是什么 SG90的控制方式通常为

    2024年02月12日
    浏览(30)
  • 【51单片机】利用【时间延迟】的原理规避【按键抖动问题】

    前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 本章是51LCD单片机设计的一个环节,完整可前往相应博客查看完整 传送门 欢迎订阅 YY 滴C++专栏!更多干货持续更新!以下是传送门! YY的《C++》专栏 YY的《C++11》专栏 YY的《Lin

    2024年02月20日
    浏览(39)
  • [51单片机]什么是按键抖动,如何用程序防抖

    在进行硬件设计时,添加到PCB板中的机械开关触点断开、闭合时,由于机械触点的弹性作用,按键开关在闭合或松开时并不会马上稳定地接通或断开。因而在闭合或断开的瞬间均伴随有一连串的抖动,这样的抖动叫按键抖动。 一般采取在程序中加入延时函数的方法来消抖,程

    2024年02月13日
    浏览(48)
  • 基于51单片机的舵机控制(PWM)

    舵机是一种位置伺服的驱动器,常被用于遥控汽车、机器人等领域,结构主要包括小型直流电机、变速齿轮组、可调电位器和控制电路板四个部分,如下图,舵机的外部一般接有三根线,分别是黑(接地线)、红(电源线)、棕(白或者黄,信号线)三种颜色进行区分。 2.

    2024年02月16日
    浏览(36)
  • STM32F103RCT6驱动SG90舵机-完成正反转角度控制

    SG90是一种微型舵机,也被称为伺服电机。它是一种小型、低成本的直流电机,通常用于模型和机器人控制等应用中。SG90舵机可以通过电子信号来控制其精确的位置和速度。它具有体积小、重量轻、响应快等特点,因此在各种小型机械设备上得到了广泛应用。 SG90舵机通常用于

    2024年02月03日
    浏览(50)
  • 单片机开发教程5——51单片机驱动TFT彩屏

    TFT.zip 开发资料中的例程有些瑕疵,上面是整理后的例程,修改了一些参数,也添加了不少函数,函数都有对应的注释,只要花心思去看一应该是能看懂怎么用的。此外,这个例程也可以作为你们工程的模板,往上面添加一些函数、完善一下内容,差不多就能做出一个作品了

    2023年04月23日
    浏览(40)
  • 51单片机驱动点阵屏

    目录 1设计目的 2设计方案 2.1材料选择 2.2电源设计 2.3控制设计 3焊接调试 3.1焊接 3.2调试 4程序 此次设计的东西是一个点阵屏,通过点阵屏实现电梯屏幕功能。显示内容包括向上运行箭头和向下运行箭头,以及1-12的楼层。 点阵屏采用3*4=12块点阵屏拼接而成,采用串联方式。

    2024年01月22日
    浏览(36)
  • 【IMX6ULL驱动开发学习】21.Linux驱动之PWM子系统(以SG90舵机为例)

    首先在 imx6ull.dtsi 文件中已经帮我们定义好了一些pwm的设备树节点,这里以pwm2为例 我们要在设备树(.dts)文件中引用和使能该节点,同时指定好pwm映射到的GPIO引脚(即pinctrl子系统,我这里映射到了GPIO1_9上) 使用pwm 只需要在设备树节点中添加两条属性信息,如下所示 pwms :属

    2024年02月12日
    浏览(116)
  • 单片机】51单片机,TLC2543,驱动程序,读取adc

    TLC2543 是一款 12 位精密模数转换器 (ADC)。 1~9、11、12——AIN0~AIN10为模拟输入端; 15——CS 为片选端; 17——DIN 为串行数据输入端;(控制字输入端,用于选择转换及输出数据格式) 16——DOUT为A/D转换结果的三态串行输出端;(A/D转换结果的输出端。) 19——EOC为转换结束端

    2024年02月14日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包