设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>电子电气毕业设计 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
基于Arduino的蓝牙小车(摇杆控制)原理图+源代码+制作教程、小车遥控APP
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  

小车的代码:

#define _US 0x5553
#define _DS 0x4453
#define _LS 0x4C53
#define _RS 0x5253
#define _UL 0x554C
#define _DL 0x444C
#define _UR 0x5552
#define _DR 0x4452
 
#define _SS 0x5353
 
#define ENA 10
#define ENB 11
#define IN1 7
#define IN2 8
#define IN3 12
#define IN4 13
 
#define LOWSPEED 100
#define HIGHSPEED 200
 
#define IN1_HIGH        PORTE |=0x40
#define IN1_LOW                PORTE &=~0x40
#define IN2_HIGH        PORTB |=0x10
#define IN2_LOW                PORTB &=~0x10
#define IN3_HIGH        PORTD |=0x40
#define IN3_LOW                PORTD &=~0x40
#define IN4_HIGH        PORTC |=0x80
#define IN4_LOW                PORTC &=~0x80
#define ENA_HIGH        PORTB |=0x40
#define ENA_LOW                PORTB &=~0x40
#define ENB_HIGH        PORTB |=0x80
#define ENB_LOW                PORTB &=~0x80
 
uint16_t value;
 
uint8_t r_buffer[4];
 
uint8_t number;
uint8_t command;
 
 
void setup(){
        pinMode(ENA,OUTPUT);
        pinMode(ENB,OUTPUT);
        pinMode(IN1,OUTPUT);
        pinMode(IN2,OUTPUT);
        pinMode(IN3,OUTPUT);
        pinMode(IN4,OUTPUT);
        //ENA_HIGH;  
        //ENB_HIGH
 
 
       run(0);
 
 
Serial1.begin(9600);
 
}
 
void loop(){
 
        if(Serial1.available())
        {
                uint8_t readbuf = Serial1.read();
                r_buffer[number]=readbuf;
                number++;
 
                if(readbuf==0x3B)
                {       
                        if(number==3)
                        {
                                value = (r_buffer[0]<<8) | (r_buffer[1]);
                        }
                        number=0;
                        command=1;
 
                }
 
 
 
        }
 
 
 
        if(command)
        {
                command=0;
                switch(value)
                {
                          case _SS:        run(0);break;
                        case _US:        run(1);break;
                        case _DS:        run(2);break;
                        case _LS:        run(3);break;
                        case _RS:        run(4);break;
                        case _UL:        run(5);break;
                        case _UR:        run(6);break;
                        case _DL:        run(7);break;
                        case _DR:        run(8);break;
 
 
                }
 
 
        }
 
 
 
 
 
}
 
 
 
void forward()
{
        ENA_HIGH;
        ENB_HIGH;
        IN1_HIGH;
        IN2_LOW;
        IN3_HIGH;
        IN4_LOW;
}
 
void backward()
{
        ENA_HIGH;
        ENB_HIGH;
        IN1_LOW;
        IN2_HIGH;
        IN3_LOW;
        IN4_HIGH;
}
 
void turnleft()
{
        ENA_HIGH;
        ENB_HIGH;
        IN1_LOW;
        IN2_LOW;
        IN3_HIGH;
        IN4_LOW;
}
 
void turnright()
{
        ENA_HIGH;
        ENB_HIGH;
        IN1_HIGH;
        IN2_LOW;
        IN3_LOW;
        IN4_LOW;
}
 
void stopcar()
{
        ENA_LOW;
        ENB_LOW;
        IN1_LOW;
        IN2_LOW;
        IN3_LOW;
        IN4_LOW;
}
 
void run(int direct)
{
        switch(direct)
        {
                case 0:
                                IN1_LOW;
                                IN2_LOW;
                                IN3_LOW;
                                IN4_LOW;
                                analogWrite(ENA,0);
                                analogWrite(ENB,0);
                                break;
                case 1:
                                IN1_HIGH;
                                IN2_LOW;
                                IN3_HIGH;
                                IN4_LOW;
                                analogWrite(ENA,LOWSPEED);
                                analogWrite(ENB,LOWSPEED+30);
                                break;
                case 2:
                                IN1_LOW;
                                IN2_HIGH;
                                IN3_LOW;
                                IN4_HIGH;
                                analogWrite(ENA,LOWSPEED-15);
                                analogWrite(ENB,LOWSPEED+40);
                                break;               
                case 3:
                                IN1_LOW;
                                IN2_LOW;
                                IN3_HIGH;
                                IN4_LOW;
                                analogWrite(ENA,0);
                                analogWrite(ENB,LOWSPEED+50);
                                break;               
                case 4:
                                IN1_HIGH;
                                IN2_LOW;
                                IN3_LOW;
                                IN4_LOW;
                                analogWrite(ENA,LOWSPEED);
                                analogWrite(ENB,0);
                                break;       
                case 5:
                                IN1_HIGH;
                                IN2_LOW;
                                IN3_HIGH;
                                IN4_LOW;
                                analogWrite(ENA,LOWSPEED);
                                analogWrite(ENB,HIGHSPEED);
                                break;
                case 6:
                                IN1_HIGH;
                                IN2_LOW;
                                IN3_HIGH;
                                IN4_LOW;
                                analogWrite(ENA,HIGHSPEED);
                                analogWrite(ENB,LOWSPEED);
                                break;               
                case 7:
                                IN1_LOW;
                                IN2_HIGH;
                                IN3_LOW;
                                IN4_HIGH;
                                analogWrite(ENA,LOWSPEED);
                                analogWrite(ENB,HIGHSPEED);
                                break;               
                case 8:
                                IN1_LOW;
                                IN2_HIGH;
                                IN3_LOW;
                                IN4_HIGH;
                                analogWrite(ENA,HIGHSPEED);
                                analogWrite(ENB,LOWSPEED);
                                break;               
 
        }
 
}

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
基于PLC控制的小车运料控制系统 基于STC89C51的多功能红外 基于PLC的加热反应炉控制系统设
基于图像处理的智能交通灯控制系统 基于PLC与触摸屏的药品售货机控 基于单片机的智能手势识别控制系统
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!