matlab循迹小车,Arduino智能小车系列教程6——循迹小车
#include
#define STOP 0
#define FORWARD 1
#define BACKWARD 2
#define TURNLEFT 3
#define TURNRIGHT 4
int leftMotor1 = 16;
int leftMotor2 = 17;
int rightMotor1 = 18;
int rightMotor2 = 19;
int trac1 = 10; //从车头方向的最右边开始排序
int trac2 = 11;
int trac3 = 12;
int trac4 = 13;
int leftPWM = 5;
int rightPWM = 6;
Servo myServo; //舵机
int inputPin=7; // 定义超声波信号接收接口
int outputPin=8; // 定义超声波信号发出接口
void setup() {
// put your setup code here, to run once:
//串口初始化
Serial.begin(9600);
//舵机引脚初始化
myServo.attach(9);
//测速引脚初始化
pinMode(leftMotor1, OUTPUT);
pinMode(leftMotor2, OUTPUT);
pinMode(rightMotor1, OUTPUT);
pinMode(rightMotor2, OUTPUT);
pinMode(leftPWM, OUTPUT);
pinMode(rightPWM, OUTPUT);
//寻迹模块D0引脚初始化
pinMode(trac1, INPUT);
pinMode(trac2, INPUT);
pinMode(trac3, INPUT);
pinMode(trac4, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
tracing();
}
void motorRun(int cmd,int value)
{
analogWrite(leftPWM, value); //设置PWM输出,即设置速度
analogWrite(rightPWM, value);
switch(cmd){
case FORWARD:
Serial.println("FORWARD"); //输出状态
digitalWrite(leftMotor1, HIGH);
digitalWrite(leftMotor2, LOW);
digitalWrite(rightMotor1, HIGH);
digitalWrite(rightMotor2, LOW);
break;
case BACKWARD:
Serial.println("BACKWARD"); //输出状态
digitalWrite(leftMotor1, LOW);
digitalWrite(leftMotor2, HIGH);
digitalWrite(rightMotor1, LOW);
digitalWrite(rightMotor2, HIGH);
break;
case TURNLEFT:
Serial.println("TURN LEFT"); //输出状态
digitalWrite(leftMotor1, HIGH);
digitalWrite(leftMotor2, LOW);
digitalWrite(rightMotor1, LOW);
digitalWrite(rightMotor2, HIGH);
break;
case TURNRIGHT:
Serial.println("TURN RIGHT"); //输出状态
digitalWrite(leftMotor1, LOW);
digitalWrite(leftMotor2, HIGH);
digitalWrite(rightMotor1, HIGH);
digitalWrite(rightMotor2, LOW);
break;
default:
Serial.println("STOP"); //输出状态
digitalWrite(leftMotor1, LOW);
digitalWrite(leftMotor2, LOW);
digitalWrite(rightMotor1, LOW);
digitalWrite(rightMotor2, LOW);
}
}
void tracing()
{
int data[4];
data[0] = digitalRead(10);
data[1] = digitalRead(11);
data[2] = digitalRead(12);
data[3] = digitalRead(13);
if(!data[0] && !data[1] && !data[2] && !data[3]) //左右都没有检测到黑线
{
motorRun(FORWARD, 200);
}
if(data[0] || data[1]) //右边检测到黑线
{
motorRun(TURNRIGHT, 150);
}
if(data[2] || data[3]) //左边检测到黑线
{
motorRun(TURNLEFT, 150);
}
if(data[0] && data[3]) //左右都检测到黑线是停止
{
motorRun(STOP, 0);
while(1);
}
Serial.print(data[0]);
Serial.print("---");
Serial.print(data[1]);
Serial.print("---");
Serial.print(data[2]);
Serial.print("---");
Serial.println(data[3]);
}
matlab循迹小车,Arduino智能小车系列教程6——循迹小车相关推荐
- arduino 蓝牙 android 小车,arduino智能蓝牙小车
大家好!这是小编第二次做小项目~ 小编目前专业是电气自动化的,不搞点硬件方面的东西,不学点控制技术,有点对不起自己所学的专业. 小编这次打算做arduino多功能智能小车~ 首先,为啥选择arduin ...
- python小车行走_[PYTHON系列教程]→控制小车
上一节我们已经搭好了开发环境,接下来就可以写Python程序来控制小车了.首先用EV3主机.大型伺服马达和超声波传感器搭建一个小车:可以自由发挥,我的小车完成后长这样:下一步,我们用程序控制小车.首 ...
- Arduino智能小车——循迹篇
Arduino智能小车--循迹篇 Arduino智能小车系列教程时空门: Arduino智能小车--拼装篇 点击跳转 Arduino智能小车--测试篇 点击跳转 Arduino智能小车--调速篇 点击 ...
- Arduino智能小车——蓝牙小车
Arduino智能小车--蓝牙小车 Arduino智能小车系列教程时空门: Arduino智能小车--拼装篇 点击跳转 Arduino智能小车--测试篇 点击跳转 Arduino智能小车--调速篇 点 ...
- 【DIY】Arduino智能循迹避障小车
文章目录 1.功能说明 2.硬件组成 3.软件安装 4.功能调试 小车展示: 1.功能说明 Arduino智能循迹停障小车是自动驾驶车辆的微型化,用几个简单的电子元器件实现循迹.停障.绕障等功能. 2 ...
- matlab智能小车避障,Arduino智能小车系列教程4——超声波避障
Arduino智能小车系列教程4--超声波避障 Arduino智能小车系列教程 准备材料 超声波模块HC-SR04 舵机固定架 舵机安装 超声波接线 代码测试 代码详解 int getDistance ...
- 简单循迹小车实验心得_智能循迹小车总结 智能循迹小车报告.doc
智能循迹小车总结 智能循迹小车报告 西京学院 自动化1002班 概要 本寻迹小车是以万能板为车架,STC12C5A60S2单片机为控制核心,将各传 感器的信号传至单片机分析处理,从而控制 L293D电 ...
- 51单片机智能小车(舵机云台超声波避障+循迹+蓝牙+红外跟随)
**51单片机智能小车(舵机云台超声波避障+循迹+蓝牙+红外跟随+遥控+TFT液晶显示屏) 本人由于使用的液晶显示屏,程序大于8K,所以更换为STC12C5A60S2芯片,与51芯片兼容. 功能比较多 ...
- 51单片机之智能小车(避障、跟随、循迹)
目录 基本概述 硬件组成 功能 关键字 模块介绍 电机模块L9110S 循迹模块(TCRT5000传感器) 红外避障模块 测速模块 小车 移动小车(控制电机转动,使小车前进.后退.左转.右转 ) 遥控 ...
最新文章
- Go 学习笔记(50)— Go 标准库之 net/url(查询转义、查询参数增/删/改/查、解析URL)
- WordPress数据库优化技巧
- 12306架构到底是不是国内最牛逼的架构
- Android实现炫酷的星空变幻效果
- VB中超长OLE数据库字段的操纵方法
- Android组件化专题-路由动态注入跳转参数以及获取其他模块的fragment
- kde菜单图标显示不全_大小仅 1M!在电脑菜单栏上自定义日历,规划时间更方便...
- Linux 命令之 nslookup 命令-查询域名 DNS 信息的工具
- array_combine()
- java-appium-527进阶-1 UiAutomator12区别和封装
- OkHttp和Volley对比
- symfony3 使用命令行工具生成Entity实体所踩的坑
- 1.GNUradio 的环境搭建
- 操作系统 第二部分 进程管理(二)
- UVA12545_Bits Equalizer
- MVG推出微型紧凑天线测量系统CR-M8
- 移动磁盘拒绝访问要如何办啊
- C1. Skyscrapers (从easy到hard)
- Learning and Meta-Learning of Stochastic Advection-Diffusion-Reaction Systems from Sparse Measuremen
- Linux系统中 chown和chmod 命令的区别: