欢迎光临
我们一直在努力

基于Arduino的电位器无线控制舵机实验(2.4G透传模块、舵机、电位器)

1、概述

两个UNO板子,通过2.4G模块建立通信通道,一端读取电位器的模拟值,通过无线通道传输到另一端的UNO,另一端uno通过串口读取到的数据来控制连在D9上的舵机。

对于模块不了解的,可以先看一下我们的模块教程[传送门],了解掌握模块使用方法后,再尝试本小实验。因为综合实验一般涉及多个模块,我们仅对全部使用我司产品的客户做技术支持,若只是部分使用我司产品的,我们只对我司产品部分是否有故障进行排查。

2、所需材料

1、UNO主控板:官方板 或者 国产板
2、辅助配件:杜邦线
3、传感器和模块:2.4G无线透传模块B1K电位器舵机14500电池DC头两节装电池盒

3、接线

UNO-A:串口接2.4G模块,A0接电位器
UNO-B:串口接2.4G模块,D9接舵机
2.4模块需要预想配置成互相连接的模式,即模块A的发射ID对应模块B的接收ID,模块A的接收ID对应模块B的发射ID。如果不会配置可以先看2.4G透传模块的独立教程。

4、实验程序

电位器端:

int angle = analogRead(A0);

void setup(){
  Serial.begin(9600);
}

void loop(){
  int angle = analogRead(A0);
  angle = map(angle, 0, 1023, 0, 180);
  Serial.println(angle);

   delay(10);
}

舵机端:

#include <Servo.h> //调用库文件 

Servo myservo;  // 创建一个伺服电机对象  

char inByte = 0; //串口接收的数据  
int angle = 0;  //角度值  
String temp = "";//临时字符变量,又或者说是缓存用的吧 

void setup()
{
    Serial.begin(9600);
    myservo.attach(9);  
}

void loop()
{
    while(Serial.available()>0)
     {
       inByte=Serial.read();
         temp += inByte;//把读到的字符存进临时变量里面缓存,  
         delay(2);          //再继续判断串口还有没有数据,知道把所有数据都读取出来  
     }  

      angle = temp.toInt();    //把变量字符串类型转成整型  
      Serial.println(angle);  //输出数据到串口上,以便观察  
    temp = "";//请看临时变量

    myservo.write(angle);  //控制舵机转动相应的角度。  
    delay(100);//延时100毫秒  
         }

效果如下:

未经允许不得转载:Arduino-Maker » 基于Arduino的电位器无线控制舵机实验(2.4G透传模块、舵机、电位器)

支付宝扫码打赏 微信打赏

原创文章,若帮到您,欢迎打赏

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

线上商城

中贝斯特创客空间蘑菇云创客教育