简易水下航行器舵控arduino,蓝牙通讯
简易水下航行器舵控arduino,舵机控制航行器的舵,由控制板控制直流电机
这边我用的是mage的板子,mage的板子扩展口多,我蓝牙数据传输口是用的tx1和rx1口。直接上代码
#include <Servo.h>Servo myservo6; // 定义Servo对象来控制
Servo myservo7; // 定义Servo对象来控制
Servo myservo8; // 定义Servo对象来控制
Servo myservo9; // 定义Servo对象来控制
int pos6 = 90; // 角度存储变量
int pos7 = 90; // 角度存储变量
int pos8 = 90; // 角度存储变量
int pos9 = 90; // 角度存储变量
int a1=31;
int a2=30;
int speedpin=12;
int Speed=50;
int serialData;
void setup() {Serial.begin(9600);//波特率Serial1.begin(9600);//波特率myservo9.attach(9); // 控制线连接数字9myservo8.attach(8); // 控制线连接数字9myservo7.attach(7); // 控制线连接数字9myservo6.attach(6); // 控制线连接数字9pinMode(30, OUTPUT);pinMode(31, OUTPUT);pinMode(12, OUTPUT);Serial.print("启动");
}void loop() {if( Serial1.available()>0 ){ serialData = Serial1.read(); if (serialData == '2' ) { //接收到点亮LED指令digitalWrite(a1,HIGH);digitalWrite(a2,LOW);normal();accelerate();}if (serialData == '4' ) { //接收到点亮LED指令lift();}if (serialData == '6' ) { //接收到点亮LED指令right();}if (serialData == '8' ) { //接收到点亮LED指令normal();slow();}if (serialData == '1' ) { //接收到点亮LED指令up();}if (serialData == '7' ) { //接收到点亮LED指令down();}if (serialData == '5' ) { //接收到点亮LED指令normal();Stop();}if (serialData == '0' ) { //接收到点亮LED指令Stop();delay(1000);digitalWrite(a1,LOW);digitalWrite(a2,HIGH);analogWrite(speedpin,Speed); }}
}
void normal(){pos6=90;pos7=90;pos8=90;pos9=90;myservo6.write(pos6); // 舵机角度写入delay(2); // 等待转动到指定角度myservo7.write(pos7); // 舵机角度写入delay(2); // 等待转动到指定角度myservo8.write(pos8); // 舵机角度写入delay(2); // 等待转动到指定角度myservo9.write(pos9); // 舵机角度写入delay(2); }
void lift(){pos8++;pos9--;if(pos8>178){pos8=178;}if(pos9<1){pos9=1;}myservo8.write(pos8); // 舵机角度写入delay(2);myservo9.write(pos9); // 舵机角度写入delay(20);}
void right(){pos9++;pos8--;if(pos9>178){pos9=178;}if(pos8<1){pos8=1;}myservo8.write(pos8); // 舵机角度写入delay(2);myservo9.write(pos9); // 舵机角度写入delay(20);}
void up(){pos6--;pos7++;if(pos6<1){pos6=1;}if(pos7>179){pos7=179;}myservo6.write(pos6); // 舵机角度写入delay(2);myservo7.write(pos7); // 舵机角度写入delay(20);}
void down(){pos6++;pos7--;if(pos6>178){pos6=178;}if(pos7<1){pos7=1;}myservo6.write(pos6); // 舵机角度写入delay(2);myservo7.write(pos7); // 舵机角度写入delay(20);}
void accelerate(){analogWrite(speedpin,Speed);Speed++;delay(20);}
void slow(){analogWrite(speedpin,Speed);Speed--;delay(20);}
void Stop(){digitalWrite(a1,LOW);digitalWrite(a2,LOW);}
简易水下航行器舵控arduino,蓝牙通讯相关推荐
- arduino蓝牙通讯代码_「Arduino」OLED屏使用教程,显示内容听谁的?我不管,听我的...
玩转Arduino小伙伴肯定都接触过OLED屏吧,不管是在Arduino还是树莓派中都起到浓墨重彩的一笔,会写编程的同学也可以变换更多的花样. 材料清单: Arduino驱动板 x 1 OLED模块 ...
- arduino蓝牙通讯代码_一种基于Arduino的蓝牙通信系统的制作方法
本实用新型涉及无线通信技术领域,具体来说,涉及一种基于Arduino的蓝牙通信系统. 背景技术: 随着通信技术的发展,无论是在物联网,还是互联网,传统的有线传输技术已经越来越不能满足企业和个人的需求. ...
- arduino蓝牙通讯代码_在两块Arduino开发板之间实现蓝牙通信
HC-05蓝牙模块是任何Arduino项目必不可少的蓝牙模块!很容易进行连接以及在Arduino IDE中编写代码.在大多数项目中,我们通常将HC05连接至Arduino,并使用它与其他智能设备(如手 ...
- arduino蓝牙通讯代码_通过手机控制蓝牙串口模块与Arduino通讯
功能 通过手机APP向蓝牙模块发送指令,蓝牙模块通过串口将指令传递给Arduino开发板,并由Arduino做出反馈,传递给手机. 工具材料Arduino 开发板 ×1 蓝牙串口模块×1 Androi ...
- arduino蓝牙通讯代码_蓝牙4.0模块 无线数据传输模块 无线蓝牙串口 Arduino
产品介绍: 蓝牙4.0模块是专为智能无线数据传输而打造的.该模块遵循BT2.1+EDR/3.0/4.0(BLE)蓝牙规范,支持SPP 蓝牙串口协议等.本模块集成了MCU 和蓝牙芯片,支持UART.SP ...
- BlackBerry 10 BlackBerry OS 7 1 手机通过蓝牙串口读取Arduino 蓝牙传过来的温度
目标:BlackBerry手机通过蓝牙串口读取Arduino 蓝牙传过来的温度 湿度信息 硬件:Arduino主板 + DHT11温湿度传感器 + 蓝牙模块,开发工具C语言 手机:BlackBerry ...
- 树莓和Arduino之间的蓝牙通讯
前言 原来是打算用nrf24来做树莓派和arduino的通讯,因为nrf24传的数据量有点小,现在改为用蓝牙来通讯 硬件准备(我的) HC-05蓝牙 树莓派3b+ Arduino UNO Arduin ...
- arduino陀螺仪蓝牙通讯手势小车
新的改变 目录 手势小车 1 一.学习目标 2 知识目标 2 技能目标 2 二.背景知识 2 三.知识储备 3 ARDUINO NANO 2 ARDUINO UNO 4 面包板 6 智能小车模块 4 ...
- iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
iOS简易蓝牙对战五子棋游戏设计思路之一--核心蓝牙通讯类的设计 一.引言 本系列博客将系统的介绍一款蓝牙对战五子棋的开发思路与过程,其中的核心部分有两个,一部分是蓝牙通讯中对战双方信息交互框架的设计 ...
最新文章
- 关于this的指向问题
- iOS开发系列--网络开发(转)
- 通过GetProcAddress函数动态调用dll中地函数,是否必须通过extern C声明导出函数?(转)...
- 京东2019春招Java工程师编程题题解
- IDEA springboot项目中properties配置文件 {针对将对应GBK改为UTF-8并勾选转为ASCII后仍无效情况} 运行时中文乱码解决
- Linux的find grep
- 脸部螨虫和肥皂洗脸的问题
- 【kafka】Attempted to write a non-default produerId at version 1
- easymock接口模拟_EasyMock模拟异常
- python能做底层开发吗_python底层是什么语言
- 【LeetCode】【字符串】题号:*539. 最小时间差
- 异常重试_面试题:如何基于 dubbo 进行服务治理、服务降级、失败重试?
- java IO模型详解
- 撰写测试用例----二维码支付
- P1234小A的口头禅
- 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)
- RPGMAKER游戏引擎基于JavaScript的插件制作(六)——重写方法(三):在场景(scenes)中创建精灵(Sprite)——复制式重写的实例教学
- 由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题
- 大数据专业该学习什么?
- 几种机器学习常用调参方式对比(网格搜索,随机搜索,贝叶斯优化)