网站首页 >> 创业项目 >> 正文 提交收录

电位计控制舵机程序源码(arduino电位器控制舵机)

时间:2022年06月07日 09:06:19

本文目录一览:

Arduino控制舵机的程序

int readPin = 0; //用来连接电位器

int servopin = 7; //定义舵机接口数字接口7

void servopulse(int angle)//定义一个脉冲函数

{

int pulsewidth=(angle*11)+500; //将角度转化为500-2480的脉宽值

digitalWrite(servopin,HIGH); //将舵机接口电平至高

delayMicroseconds(pulsewidth); //延时脉宽值的微秒数

digitalWrite(servopin,LOW); //将舵机接口电平至低

delayMicroseconds(20000-pulsewidth);

}

voidsetup()

{

pinMode(servopin,OUTPUT);//设定舵机接口为输出接口

}

voidloop()

{

//读取电位器(传感器)的读数,接到3.3V,值范围从0到660左右

int readValue = *** ogRead(readPin);

//把值的范围映射到0到165左右

int angle = readValue / 4;

//发送50个脉冲

for(int i=0;i50;i++)

{

//引用脉冲函数

servopulse(angle);

}

}

如何用单片机控制舵机及程序详细

//双定时器产生PWM波,控制舵机

//定时器0负责置高电平和控制定时器1的开停,定时器1负责置低电平

#includeSTC12C5A.H

#define uchar unsigned char

#define uint unsigned int

*** it PWM=P3^7;

uint b=1500;//1.5ms 舵机0位

void Delay1ms(uint i) //1ms延时程序

{

uint j;

for(;i0;i--)

{

for(j=0;j125;j++)

{;}

}

}

void main()

{

b=1500;

TMOD=0X11;

TH0=(65536-20000)/256;

TL0=(65536-20000)%256;

TH1=(65536-b)/256;

TL1=(65536-b)%256;

ET0=1;

EA=1;

TR0=1;

PWM=1;

P1M0=0X0F; //P1低4位推挽输出 接L298N直流电机驱动模块 带动后轮两个电机

P1M1=0X00;

while(1)

{

P1=0x0a; //低4位 1010 正转

b=1500;Delay1ms(2000);//直行

b=1000;Delay1ms(1000);//左转

b=1500;Delay1ms(2000);//直行

b=2000;Delay1ms(1000);//右转

b=1500;Delay1ms(2000);//直行

P1=0x05; //低4位 0101 反转

b=1500;Delay1ms(2000);//后退

b=1000;Delay1ms(1000);//后左转

b=1500;Delay1ms(2000);//后退

b=2000;Delay1ms(1000);//后右转

b=1500;Delay1ms(2000);//后退

}

}

void timer0()interrupt 1//定时器0定时20ms

{

TH0=(65536-20000)/256;

TL0=(65536-20000)%256;

PWM=1;

TR1=1;

ET1=1;

}

void timer1()interrupt 3//定时器1定时1到2ms

{

TH1=(65536-b)/256;

TL1=(65536-b)%256;

PWM=0;

TR1=0;

ET1=0;

}

arduino 控制舵机

#include Servo.h

Arduino自带的Servo函数及其语句,先来介绍一下舵机函数的几个常用语句吧。

1、attach(接口)——设定舵机的接口,只有9或10接口可利用。

2、write(角度)——用于设定舵机旋转角度的语句,可设定的角度范围是0°到180°。

3、read()——用于读取舵机角度的语句,可理解为读取最后一条write()命令中的值。

4、attached()——判断舵机参数是否已发送到舵机所在接口。

5、detach()——使舵机与其接口分离,该接口(9或10)可继续被用作PWM接口。

注:以上语句的书写格式均为“舵机变量名.具体语句()”例如:myservo.attach(9)。

下面就来具体分析一个小程序。

#include Servo.h//定义头文件,这里有一点要注意,可以直接在

Arduino软件菜单栏单击SketchImportlibraryServo,调用Servo函数,也可以直接输入#include Servo.h,但是在输入时要注意在#include 与Servo.h之间要有空格,否则编译时会报错。

Servo myservo;//定义舵机变量名

void setup()

{

myservo.attach(9);//定义舵机接口,9或10

}

void loop()

{

myservo.write(90);//设置舵机旋转的角度

}