跳至主要內容

Arduino UnoPro4M

无名科技...大约 4 分钟

简介

Arduino Uno Pro4M 是在Arduino Uno R3的基础上增加了4个电机驱动和一个JDY33无线蓝牙模块,电机的接口类型为XH2.54-2P

产品参数

  • 处理器: Arduino Uno Pro4M采用Atmel AVR 8位微控制器ATmega328P作为主要处理器,具有高性能和低功耗。
  • 时钟频率: Arduino Uno Pro4M的时钟频率为16 MHz,能够提供快速且可靠的计算能力。
  • 数字I/O引脚: Arduino Uno Pro4M拥有14个数字输入/输出引脚(其中6个可用作PWM输出)供连接各种外部设备和传感器。
  • 模拟输入引脚: Arduino Uno Pro4M具有6个模拟输入引脚,可用于读取模拟信号,例如温度、光线等。
  • 存储器: Arduino Uno Pro4M具有32KB的闪存程序存储空间,用于存储用户编写的程序,以及2KB的SRAM和1KB的EEPROM。
  • 通信接口: Arduino Uno Pro4M支持串口通信(通过USB接口)和I2C、SPI等常用通信协议,方便与其他设备进行数据交互。
  • 蓝牙:Arduino Uno Pro4M 支持蓝牙通信。
  • 输入电压: USB5V、DC6-12V
  • 输出电压: 3.3V-5V
  • 开发环境: Arduino、Mind+、Mixly等。

引脚说明

Arduino Uno Pro 4M
Arduino Uno Pro 4M
序号引脚名称功能描述
1D0数字输入/输出引脚
2D1数字输入/输出引脚
3D2数字输入/输出引脚
4D3M1电机正转
5D4M4电机正转 (无法调速)
6D5M2电机正转
7D6M2电机反转
8D7M4电机反转(无法调速)
9D8数字输入/输出引脚
10D9M3电机正转
11D10M3电机反转
12D11M1电机反转
13D12数字输入/输出引脚
14D13数字输入/输出引脚
15A0模拟输入引脚
16A1模拟输入引脚
17A2模拟输入引脚
18A3模拟输入引脚
19A4模拟输入引脚,也用作I2C总线的SDA引脚
20A5模拟输入引脚,也用作I2C总线的SCL引脚
215V5V电源引脚
223.3V3.3V电源引脚
23GND地引脚
24RESET复位引脚

驱动电机

ArduinoUno Pro4M 支持驱动四路电机M1、M2、M3、M4,M1是由D3、D11引脚控制的,M2是由D5、D6引脚控制的,M3是由D9、D10引脚控制,M4是由D4、D7引脚控制。
其中M4电机无法控制转速,只能控制转与不转,M1、M2、M3可以通过PWM来控制电机的转速

控制电机的时候必须通过DC口单独供电USB电源无法带动电机。

电机转动

电机转动:如果想控制M1电机正转只需要设置D3引脚高电平D11引脚低电平,反转就是D3引脚低电平D11引脚高电平。M2电机只是引脚(D5、D6)不一样,控制方法一样。

M1电机正转

电机转速

电机转速:如果想要控制M1电机转速需要通过控制引脚的PWM值,比如让M1电机正转转速120,就需要设置D3引脚输出PWM120,D11引脚为低电平

M1正转调速

M2、M3跟M1的操作方法一样,只需换一下引脚既可以。M4电机只能控制转与不转,无法控制转速,因为Arduino Uno只有6个PWM引脚。

Arduino Uno Pro4M

蓝牙驱动电机示例程序

uint8_t  package=0;
void setup() {

  Serial.begin(115200);//串口和Arduino之间的通信
  pinMode(3, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(7, OUTPUT);
   pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  digitalWrite(6, LOW);
  digitalWrite(10, LOW);
  digitalWrite(7, LOW);
  digitalWrite(11, LOW);
  digitalWrite(3, LOW);
  digitalWrite(5, LOW);
  digitalWrite(9, LOW);
  digitalWrite(4, LOW);  
  }

void loop() {  
  while(Serial.available()>0){
  package = Serial.read();
 
  };

  if(package==0x01)   
  {
    digitalWrite(11, LOW);
  	digitalWrite(3, HIGH);
    digitalWrite(6, LOW);
    digitalWrite(5, HIGH);
  }else if(package==0x02)   
  {
    digitalWrite(3, LOW);
    digitalWrite(11, HIGH);
    digitalWrite(5, LOW);
    digitalWrite(6, HIGH);
  }
  if(package==0x04)   
  {

    digitalWrite(11, LOW);
    digitalWrite(3, HIGH);
    digitalWrite(5, LOW);
    digitalWrite(6, HIGH);
  }else if(package==0x08)   
  {
    digitalWrite(3, LOW);
    digitalWrite(11, HIGH);
    digitalWrite(5, LOW);
    digitalWrite(6, HIGH);
  }
  
  if(package==0x0A)   
  {
    digitalWrite(10, LOW);
    digitalWrite(9, HIGH);
  }else if(package==0x14)   
  {
    digitalWrite(9, LOW);
    digitalWrite(10, HIGH);
  }
  
  if(package==0x28)   
  {
    digitalWrite(7, LOW);
    digitalWrite(4, HIGH);
  }else if(package==0x50)   
  {
    digitalWrite(4, LOW);
    digitalWrite(7, HIGH);
  }
  
  if(package==0)
  {
      digitalWrite(6, LOW);
      digitalWrite(10, LOW);
      digitalWrite(7, LOW);
      digitalWrite(11, LOW);
      digitalWrite(3, LOW);
      digitalWrite(5, LOW);
      digitalWrite(9, LOW);
      digitalWrite(4, LOW); 
      digitalWrite(13, LOW);  
 }
 else
 {
      digitalWrite(13, HIGH);
  }
 delay(20);

}

蓝牙与主板通信软件

Ios、Android软件open in new window

软件图
软件图

JDY33蓝牙资料

JDY33蓝牙资料open in new window

串口读取蓝牙信号

不能直接使用主板串口读取JDY33蓝牙接收值,需要外接TTL下载模块,通过串口助手来读取接收值。

TTl的RX接到主板的0引脚,读取蓝牙的发送数据,接到1管脚,就能读取到单片机发送到蓝牙的数据。

学习资料

ArduinoUnoPro4M资料open in new window

串口驱动下载

CH340C串口驱动下载open in new window

疑难解答

更多问题及有趣的应用,请访问论坛open in new window 或加入QQ技术交流群:522420541

购买链接

淘宝open in new window