#创作灵感#
之前意外获得一台坏了的平衡车,车上的两个轮子,一直想做一辆小车的时候,用得上,了解过无刷电机的原理,平衡车的电源的电压是52V的,电单车是48V的,初中物理的水平也告诉我,电压多了,也不会烧的。于是找到一台电动的控制器及电池,但手上没有车把手来试,就用Arduino模拟发车把,发送霍尔信号,控件电单车的转速。意外成功了,这为将来做一辆小车,做了很好的准备。
1. 设备清单
arduino 板
ssd1306显示屏
平衡车无刷电机
电源48V
2. 我一开始设计的使用电单车的车的线路图如下。
3. 改成Arduino 模拟车把的线路图有小的修改。
3. Arduino主要功能,模拟输出霍尔信号,这个信号可以使用arduino板上的引脚 3,5,6,9,10,11,
这里使用了引脚11,并通过显示屏显示速度量,最低值,60,最高值180,每4秒动态增加20,到达180后重置为60,
SSD1306显示屏如连线如下:
---------------------------------------------
| Arduino | SSD1306 |
---------------------------------------------
| 5 | GND |
| 4 | VCC |
| 3 | SCL |
| 2 | SDA |
---------------------------------------------
Arduino 代码如下。
#include <Adafruit_ssd1306syp.h>
#define SDA_PWM1 4
#define SDA_GND2 5
#define SDA_PIN 2
#define SCL_PIN 3
#define SPEED_PIN 11
Adafruit_ssd1306syp display(SDA_PIN,SCL_PIN);
void setup()
{
pinMode(SPEED_PIN, OUTPUT);
pinMode(SDA_PWM1, OUTPUT);
pinMode(SDA_GND2, OUTPUT);
digitalWrite(SDA_PWM1,HIGH);
digitalWrite(SDA_GND2,LOW);
delay(1000);
display.initialize();
}
int nspeed=60;
void loop()
{
display.clear();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("SPEED:");
display.setTextSize(6);
display.setTextColor(WHITE);
display.println(nspeed);
display.update();
analogWrite(SPEED_PIN, nspeed);
delay(4000);
nspeed = nspeed +20;
if(nspeed>180)
nspeed = 60;
}
结果分析:
Arduino输出霍尔信号控制平衡车的电机,这里证明了,平衡的无刷电机,电单车电机是一致的,控制器,可以通用,而Arduino的加入,无线控制,电气控制,无人车,基础实现原理并不难。