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传感器) 红外避障模块 测速模块 小车 移动小车(控制电机转动,使小车前进.后退.左转.右转 ) 遥控 ...
最新文章
- ubuntu server 10.04 LTS(64位)装不了花生壳的解决方法
- 数组和链表的区别以及应用场景
- python2/python3安装pip/pip3及使用国内镜像源(python2/3同时安装)
- C# 遍历List 并删除某个元素
- jQuery浏览器类型判断和分辨率判断
- excel记账本模板_原来这才是老板最喜欢看的财务报表!这些模板送你,录入自动生成...
- 转 关于window10安装jdk,配置环境变量,javac不是内部或外部命令,也不是可运行的程序 或批处理文件的细节问题。...
- java验证json合法性_java校验json字符串是否合法
- IT程序员们平时都喜欢逛什么论坛呢?
- P2479 [SDOI2010]捉迷藏
- 文档服务器 件排名,服务器排名
- 【转】暴露问题是对项目验收最起码的尊重!
- EMNLP2021 | 标签推理的细粒度实体识别
- 双线性变换(Tustin transform/bilinear transformation)
- 庄子梦游记之办公室有“云”
- 全息眼镜HoloLens可快速捕捉真人3D图像
- 困境下的SEO,站长如何自渡?
- 大牛教你这样阅读android源码
- 爱家租房网站1-15博客地址
- 如何架设部署V2EX社区/论坛(Google App Engine版)