资料介绍
描述
几天前,我从童年时代发现了一辆漂亮的遥控车,但它的遥控器坏了,所以我想为什么不把这辆车改装成高速 Arduino 遥控车。
所以现在就在这里,我已经把它变成了一辆高速 Arduino 遥控车,今天我将与你分享我是如何做到的。我用于这个项目的应用程序可以从这里下载。
高速 Arduino 遥控车的功能
这款高速 Arduino 遥控车的功能如下
- 前灯
- 背光灯
- 中心的 RGB 灯会让它看起来不错
- 喇叭
- 全方位旋转
- 速度控制
所需组件
高速 Arduino 遥控车所需的组件如下
- 带电机的旧车
- 阿杜诺
- HC-05 或 HC-06 蓝牙模块
- L298N电机驱动器
- 蜂鸣器
- RGB LED
- 2 个红色 LED
- 2 个白色 LED
- 2 X 3.7V 可充电电池
- 9V电池
- 7 X 220 欧姆电阻
硬件
我使用了两个 3.7V 的可充电电池来运行这些电机。这些电池可以反复使用,也可以快速运行电机。
如果您想了解更多关于 Arduino 与 RGB 模块接口的信息,请阅读本教程 | Arduino RGB LED 教程
如果您想了解更多关于蓝牙模块与 Arduino 接口的信息,请阅读本教程 | Arduino蓝牙模块教程
按照上面的电路图完成所有连接后,我的汽车连接电路如下图所示。
将顶部车身安装在其上后,这辆车看起来就像一辆原始的兰博基尼。中间连接的RGB让它看起来更漂亮,它的高速使它可以与市场上的遥控车竞争。
代码
//including the libraries
#include // TX RX software library for bluetooth
#include
//Defining pins for RGB led
#define GREEN 13
#define BLUE 5
#define RED 4
#define delayTime 3
#define LED_NUM 3
LEDFader leds[LED_NUM] = {
LEDFader(4),
LEDFader(5),
LEDFader(13)
};
//Initializing pins for bluetooth Module
int bluetoothTx = 2; // bluetooth tx to 2 pin
int bluetoothRx = 3; // bluetooth rx to 3 pin
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
//Front Motor Pins
int Enable1 = 6;
int Motor1_Pin1 = 7;
int Motor1_Pin2 = 8;
//Back Motor Pins
int Motor2_Pin1 = 9;
int Motor2_Pin2 = 10;
int Enable2 = 11;
//Front Light pins
int front_light1 = A0;
int front_light2 = A1;
//Back light pins
int back_light1 = A2;
int back_light2 = A3;
int horn = 12;
char command ; //variable to store the data
int velocity = 0; //Variable to control the speed of motor
void setup()
{
//Set the baud rate of serial communication and bluetooth module at same rate.
Serial.begin(9600);
bluetooth.begin(9600);
//Setting the L298N, LED and RGB LED pins as output pins.
pinMode(Motor1_Pin1, OUTPUT);
pinMode(Motor1_Pin2, OUTPUT);
pinMode(Enable1, OUTPUT);
pinMode(Motor2_Pin1, OUTPUT);
pinMode(Motor2_Pin2, OUTPUT);
pinMode(Enable2, OUTPUT);
pinMode(front_light1, OUTPUT);
pinMode(back_light1, OUTPUT);
pinMode(front_light2, OUTPUT);
pinMode(back_light2, OUTPUT);
pinMode(horn, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
pinMode(RED, OUTPUT);
//Setting the enable and RGB LED pins as HIGH.
digitalWrite(Enable1, HIGH);
digitalWrite(Enable2, HIGH);
digitalWrite(GREEN, HIGH);
digitalWrite(BLUE, HIGH);
digitalWrite(RED, HIGH);
}
void loop(){
if(bluetooth.available() > 0){ //Checking if there is some data available or not
command = bluetooth.read(); //Storing the data in the 'command' variable
Serial.println(command); //Printing it on the serial monitor
//Change pin mode only if new command is different from previous.
switch(command){
case 'F': //Moving the Car Forward
digitalWrite(Motor2_Pin2, LOW);
digitalWrite(Motor2_Pin1, HIGH);
digitalWrite(Motor1_Pin1, LOW);
digitalWrite(Motor1_Pin2, LOW);
break;
case 'B': //Moving the Car Backward
digitalWrite(Motor2_Pin1, LOW);
digitalWrite(Motor2_Pin2, HIGH);
digitalWrite(Motor1_Pin1, LOW);
digitalWrite(Motor1_Pin2, LOW);
break;
case 'L': //Moving the Car Left
digitalWrite(Motor1_Pin1, LOW);
digitalWrite(Motor1_Pin2, HIGH);
digitalWrite(Motor2_Pin1, LOW);
digitalWrite(Motor2_Pin2, LOW);
break;
case 'R': //Moving the Car Right
digitalWrite(Motor1_Pin2, LOW);
digitalWrite(Motor1_Pin1, HIGH);
digitalWrite(Motor2_Pin1, LOW);
digitalWrite(Motor2_Pin2, LOW);
break;
case 'S': //Stop
digitalWrite(Motor2_Pin2, LOW);
digitalWrite(Motor2_Pin1, LOW);
digitalWrite(Motor1_Pin2, LOW);
digitalWrite(Motor1_Pin1, LOW);
break;
case 'I': //Moving the Car Forward right
digitalWrite(Motor2_Pin2, LOW);
digitalWrite(Motor2_Pin1, HIGH);
digitalWrite(Motor1_Pin2, LOW);
digitalWrite(Motor1_Pin1, HIGH);
break;
case 'J': //Moving the Car backward right
digitalWrite(Motor1_Pin2, LOW);
digitalWrite(Motor1_Pin1, HIGH);
digitalWrite(Motor2_Pin1, LOW);
digitalWrite(Motor2_Pin2, HIGH);
break;
case 'G': //Moving the Car Forward left
digitalWrite(Motor2_Pin2, LOW);
digitalWrite(Motor2_Pin1, HIGH);
digitalWrite(Motor1_Pin1, LOW);
digitalWrite(Motor1_Pin2, HIGH);
break;
case 'H': //Moving the Car backward left
digitalWrite(Motor2_Pin1, LOW);
digitalWrite(Motor2_Pin2, HIGH);
digitalWrite(Motor1_Pin1, LOW);
digitalWrite(Motor1_Pin2, HIGH);
break;
case 'W': //Front light ON
digitalWrite(front_light1, HIGH);
digitalWrite(front_light2, HIGH);
break;
case 'w': //Front light OFF
digitalWrite(front_light1, LOW);
digitalWrite(front_light2, LOW);
break;
case 'U': //Back light ON
digitalWrite(back_light1, HIGH);
digitalWrite(back_light2, HIGH);
break;
case 'u': //Back light OFF
digitalWrite(back_light1, LOW);
digitalWrite(back_light2, LOW);
break;
case 'V': //Horn On
tone(horn,494);
break;
case 'v': //Horn OFF
noTone(horn);
break;
case 'x': //Turn ON Everything
break;
case 'X': //Turn OFF Everything
break;
//Controlling the Speed of Car
default: //Get velocity
if(command=='q'){
velocity = 255; //Full velocity
analogWrite(Enable2, velocity);
}
else{
//Chars '0' - '9' have an integer equivalence of 48 - 57, accordingly.
if((command >= 48) && (command <= 57)){
//Subtracting 48 changes the range from 48-57 to 0-9.
//Multiplying by 25 changes the range from 0-9 to 0-225.
velocity = (command - 48)*25;
analogWrite(Enable2, velocity);
}
}
}
}
RGB();
}
void RGB()
{
// Update all LEDs and start new fades if any are done
for (byte i = 0; i < LED_NUM; i++)
{
LEDFader *led = &leds[i];
led->update();
// This LED is not fading, start a new fade
if (led->is_fading() == false)
{
int duration = random(1000, 3000); // between 1 - 3 seconds
// Fade Up
if (led->get_value() == 0)
{
byte intensity = random(100, 255);
led->fade(intensity, duration);
}
// Fade Down
else
{
led->fade(0, duration);
}
}
}
}
- Arduino遥控车 物联网控制遥控车方案 5次下载
- 物联网遥控车开源分享
- Arduino新型蓝牙遥控车
- 使用Android和Arduino进行遥控车破解
- 带Arduino的Rain1遥控车
- 敏捷的Arduino遥控车
- 遥控车开源分享
- 基于Arduino UNO的射频遥控车 5次下载
- Arduino蓝牙遥控车
- 蓝牙控制遥控车开源分享
- arduino遥控车
- 用Arduino制作遥控车
- ARDUINO遥控车PCB
- 遥控车原理图下载 139次下载
- 多功能遥控车接收电路
- 2.4G收发芯片遥控玩具解决方案 1728次阅读
- Arduino模组的KiCad符号与封装库介绍 1502次阅读
- 结合STM32、Arduino理解红外遥控编解码通信原理 1534次阅读
- 如何DIY一个带遥控器的红外 (IR) 遥控车 7906次阅读
- 微雪电子智能车Arduino AlphaBot2简介 2085次阅读
- 微雪电子智能车学习板蓝牙Arduino开发板介绍 1695次阅读
- 微雪电子智能车学习板配件包Arduino开发板简介 1391次阅读
- 微雪电子树莓派 Arduino 智能车扩展套件介绍 2218次阅读
- 遥控车diy制作教程 7.2w次阅读
- 手工制作红外遥控LED照明灯 可自动调节光度 1.8w次阅读
- 无线遥控车电路图大全(四款无线遥控车电路设计原理图详解) 23.8w次阅读
- 电动车遥控钥匙原理详解 10w次阅读
- 自制遥控玩具车电路板 11.4w次阅读
- 浅谈Arduino和树莓派的区别 2.1w次阅读
- arduino开发板有什么用 2w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多