#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——循迹小车相关推荐

  1. arduino 蓝牙 android 小车,arduino智能蓝牙小车

    大家好!这是小编第二次做小项目~ 小编目前专业是电气自动化的,不搞点硬件方面的东西,不学点控制技术,有点对不起自己所学的专业. 小编这次打算做arduino多功能智能小车~ 首先,为啥选择arduin ...

  2. python小车行走_[PYTHON系列教程]→控制小车

    上一节我们已经搭好了开发环境,接下来就可以写Python程序来控制小车了.首先用EV3主机.大型伺服马达和超声波传感器搭建一个小车:可以自由发挥,我的小车完成后长这样:下一步,我们用程序控制小车.首 ...

  3. Arduino智能小车——循迹篇

    Arduino智能小车--循迹篇 Arduino智能小车系列教程时空门: Arduino智能小车--拼装篇 点击跳转 Arduino智能小车--测试篇 点击跳转 Arduino智能小车--调速篇 点击 ...

  4. Arduino智能小车——蓝牙小车

    Arduino智能小车--蓝牙小车 Arduino智能小车系列教程时空门: Arduino智能小车--拼装篇 点击跳转 Arduino智能小车--测试篇 点击跳转 Arduino智能小车--调速篇 点 ...

  5. 【DIY】Arduino智能循迹避障小车

    文章目录 1.功能说明 2.硬件组成 3.软件安装 4.功能调试 小车展示: 1.功能说明 Arduino智能循迹停障小车是自动驾驶车辆的微型化,用几个简单的电子元器件实现循迹.停障.绕障等功能. 2 ...

  6. matlab智能小车避障,Arduino智能小车系列教程4——超声波避障

    Arduino智能小车系列教程4--超声波避障 Arduino智能小车系列教程 准备材料 超声波模块HC-SR04 舵机固定架 舵机安装 超声波接线 代码测试 代码详解 int getDistance ...

  7. 简单循迹小车实验心得_智能循迹小车总结 智能循迹小车报告.doc

    智能循迹小车总结 智能循迹小车报告 西京学院 自动化1002班 概要 本寻迹小车是以万能板为车架,STC12C5A60S2单片机为控制核心,将各传 感器的信号传至单片机分析处理,从而控制 L293D电 ...

  8. 51单片机智能小车(舵机云台超声波避障+循迹+蓝牙+红外跟随)

    **51单片机智能小车(舵机云台超声波避障+循迹+蓝牙+红外跟随+遥控+TFT液晶显示屏) 本人由于使用的液晶显示屏,程序大于8K,所以更换为STC12C5A60S2芯片,与51芯片兼容. 功能比较多 ...

  9. 51单片机之智能小车(避障、跟随、循迹)

    目录 基本概述 硬件组成 功能 关键字 模块介绍 电机模块L9110S 循迹模块(TCRT5000传感器) 红外避障模块 测速模块 小车 移动小车(控制电机转动,使小车前进.后退.左转.右转 ) 遥控 ...

最新文章

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

热门文章

  1. 中职专业课教师资格证计算机,中等职业教师资格证专业课有哪些
  2. 使用docsify搭建在线文档中心
  3. 关于辽大信息学院选导师的一点儿心得
  4. js-xlsx,table_to_book导出数据取消自动加工
  5. 【操作系统】主存空间的分配和回收
  6. Ubuntu 18.04安装 Adob Flash player
  7. 比价寄快递CPS小程序开发
  8. html网页表格怎么自动添加,Html表格自动生成工具
  9. 品商业模式[摘自xiewen网络业游戏规则]
  10. C 生化危机 SDUT