基于avr atmega16单片机控制2路9g舵机进行0-180°旋转,1602显示运行状态,adc采样控制舵机转速。然后适合于初学avr单片机的朋友

本教程介绍了如何使用avr ATmega16单片机控制2个9g舵机进行0-180°旋转,并通过1602 LCD显示器显示运行状态。系统通过按键S1-S4设定舵机运动,电位器调节舵机转速,S2作为急停键。此外,文章提供了程序源码供学习者参考。
摘要由CSDN通过智能技术生成

前言

最近写avr时候发现网上教程太少,本着为各位的学习提供帮助的心理,把自己写的程序发出来,一起探讨学习,希望我们共同努力,为梦想奋斗。

实现功能

系统任意设定四个按键S1,S2,S3,S4,LCD1602显示器第一行显示系统运行状态,第二行
显示运行参数。
控制两路9g舵机,舵机1实现加持功能受控于按键S3和S4,仅当S1按下后再按下S3
时舵机可以逆时针慢速逐步旋转,此时1602第一行显示RUN,第二行显示down。保持S1
按下状态当按下S4时舵机可以实现顺时针旋转,此时1602第一行显示RUN,第二行显示
up。松开S1LCD1602不显示,舵机不工作。
电位器控制舵机2的转动角度,需要将电位器输出0—5V电压对应控制舵机2转动角
度0—180度范围,当S1按下此时1602第一行显示RUN,第二行显示电位器的输出电压,
舵机工作。松开S1LCD1602不显示,舵机不工作。S2为急停功能按键,当S2被按下后所有
功能失效,此时1602第一行仅显示STOP。
附录:9g舵机供电电压5V,角度范围0~189度。
工作电压一般为4.8V或6V,转速也不是很快,一般为0.22/60度或0.18/60度,所以假
如你更改角度控制脉冲的宽度太快时,舵机可能反应不过来。如果需要更快速的反应,就需
要更高的转速了。
该舵机的控制一般需要一个20ms~25ms左右的时基脉冲,该脉冲的高电平部分一般为
0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度伺服为例,那么对应的控制关系是
这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;

程序源码

/*
 * 编程2.c
 *
 * Created: 2020/3/30 9:33:55
 * Author : zjlc
 PB0-PB7   1602数据口  |  PD0  RS | PD1  RW  | PD2  EN  | PD3  S2
 PD4 舵机2 | PD5 舵机1 | S1  PC0  |  S3-S4  PC2-PC3 | ADC PA0 |ADC基准电压 AREF
 */ 

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

char bit[]={
   0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
	int i=0,c;
	char run[]="RUN";
	char down[]="down";
	char up[]="up";
	char stop[]="stop";
	float deam;
	int   light;
#define sreg _SFR_IO8(0x3f)
#define rs  0
#define rw  1
#define en  2
#define setrs() PORTD |=(1<<rs)
#define setrw() PORTD |=(1<<rw)
#define seten() PORTD |=(1<<en)
#define clrrs() PORTD &=~(1<<rs)
#define clrrw() PORTD &=~(1<<rw)
#define clren() PORTD &=~(1<<en)
int cishu=500;
void hungray()//忙信号
{
   
	DDRB=0x00;
	clrrs();
	setrw();
	seten()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值