【Arduino】arduino使用l298n的代码分享

2023-05-16

一、接线

 

二、使用步骤


int Left_motor_go=8;     //左电机前进(IN1)
int Left_motor_back=9;     //左电机后退(IN2)
int Right_motor_go=10;    // 右电机前进(IN3)
int Right_motor_back=11;    // 右电机后退(IN4)
char getstr;
  int moshi = 0;
#include <SoftwareSerial.h>
//这是软串口通讯arduino和esp8266-Mode连接的库函数
SoftwareSerial youSerial(50, 51); //RX=50,TX=51 需分配Mega 和 Mega 2560 上并非所有引脚都支持更改中断,因此只有以下引脚可用于 RX:10、11、12、13、14、15、50、51、52、53、A8 (62)、A9 (63)、A10 (64)、A11 (65)、A12 (66)、A13 (67)、A14 (68)、A15 (69)。


void setup()
{
  //红外模块初始化
  //初始化电机驱动IO为输出方式

  pinMode(Left_motor_go,OUTPUT); // PIN 8 8脚无PWM功能
  pinMode(Left_motor_back,OUTPUT); // PIN 9 (PWM)
  pinMode(Right_motor_go,OUTPUT);// PIN 10 (PWM) 
  pinMode(Right_motor_back,OUTPUT);// PIN 11 (PWM)

  Serial.begin(9600);
  youSerial.begin(9600);
}

void run()     // 前进
{
  digitalWrite(Right_motor_go,HIGH);  // 右电机前进
  digitalWrite(Right_motor_back,LOW);     
  digitalWrite(Left_motor_go,HIGH);  // 左电机前进
  digitalWrite(Left_motor_back,LOW);
  
  analogWrite(Right_motor_go,200);//PWM比例0~255调速,左右轮差异略增减
  analogWrite(Right_motor_back,0); 
  analogWrite(Left_motor_go,200);//PWM比例0~255调速,左右轮差异略增减
  analogWrite(Left_motor_back,0);
}
void back()     // 后退
{
  digitalWrite(Right_motor_go,LOW);  // 右电机后退
  digitalWrite(Right_motor_back,HIGH);     
  digitalWrite(Left_motor_go,LOW);  // 左电机后退
  digitalWrite(Left_motor_back,HIGH);
  analogWrite(Right_motor_go,0);//PWM比例0~255调速,左右轮差异略增减
  analogWrite(Right_motor_back,200); 
  analogWrite(Left_motor_go,0);//PWM比例0~255调速,左右轮差异略增减
  analogWrite(Left_motor_back,200);
}
void left()     // 左转
{
  digitalWrite(Right_motor_go,HIGH);  // 右电机前进
  digitalWrite(Right_motor_back,LOW);     
  digitalWrite(Left_motor_go,LOW);  // 左电机后退
  digitalWrite(Left_motor_back,HIGH);
  analogWrite(Right_motor_go,200);//PWM比例0~255调速,左右轮差异略增减
  analogWrite(Right_motor_back,0); 
  analogWrite(Left_motor_go,0);//PWM比例0~255调速,左右轮差异略增减
  analogWrite(Left_motor_back,100);//内圆,幅度小
}
void right()     // 右转
{
  digitalWrite(Right_motor_go,LOW);  // 右电机后退
  digitalWrite(Right_motor_back,HIGH);     
  digitalWrite(Left_motor_go,HIGH);  // 左电机前进
  digitalWrite(Left_motor_back,LOW);
  analogWrite(Right_motor_go,0);//PWM比例0~255调速,左右轮差异略增减
  analogWrite(Right_motor_back,100); 
  analogWrite(Left_motor_go,200);//PWM比例0~255调速,左右轮差异略增减
  analogWrite(Left_motor_back,0);
}
void stop()     // 停止
{
  digitalWrite(Right_motor_go,LOW);  // 右电机停止
  digitalWrite(Right_motor_back,LOW);    
  analogWrite(Left_motor_go,0);//PWM比例0~255调速,左右轮差异略增减
  analogWrite(Left_motor_back,0); 
  digitalWrite(Left_motor_go,LOW);  // 左电机停止
  digitalWrite(Left_motor_back,LOW);
  analogWrite(Left_motor_go,0);//PWM比例0~255调速,左右轮差异略增减
  analogWrite(Left_motor_back,0); 
  analogWrite(Left_motor_go,0);//PWM比例0~255调速,左右轮差异略增减
  analogWrite(Left_motor_back,0);
}
void moshiqiehuang()
{

  }
void zhongzhi()
{
  
  }
void loop()
{
  if(youSerial.available() > 0)
  {
  getstr=youSerial.read();

  }

  switch(getstr){
   case 'w': 
     Serial.println("run");
     run();break;
   case 'a': 
     Serial.println("left");
     left();break; 
   case 'd': 
     Serial.println("right");
     right();break;
   case 's': 
     Serial.println("back");
     back();break;  
   case 't': 
     Serial.println("stop");
     stop();break; 
   case 'q':
     Serial.println("moshiqiehuang");
//     moshiqiehuang();break;
   case 'z':
     Serial.println("zhongzhi");
     zhongzhi();break;
  }
}


总结

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Arduino】arduino使用l298n的代码分享 的相关文章

  • 使用 pySerial 等待 Arduino 自动重置

    我正在尝试在 Linux 上使用非常简单的代码 为了展示问题 从 Arduino 板上读取行 Python代码 arduino py import serial arduino serial Serial dev ttyACM0 with
  • Arduino Nano 上的 WiFi

    我无法找到的虚拟问题 我用来将 WiFi 802 11b g n 添加到 Raspberry Pi 的扩展板也可以在 Nano 上使用吗 换句话说 向 Arduino Nano 板添加 WiFi 有多容易 可行 Thanks Arduino
  • 如何在观察者中处理具有不同状态值类型的 Observables

    首先是上下文和问题 框架代码在帖子底部 我们正在创建并实现一个 C 框架 以便在 Arduino 等环境中使用 为此 我想使用观察者模式 其中任何对传感器状态变化感兴趣的组件 Observables 可以注册自己 并且它将通过 Observ
  • 批处理文件:从串口接收数据并将其写入txt文件

    我正在尝试通过 USB 串行端口从 Arduino 提取一些数据并将其写入 txt 文件 因此 我使用批处理文件 Windows 7 普通cmd 它发送例如 d 从 Arduino 请求所需的数据 收到 d 后 Arduino 开始向 PC
  • Arduino Python3 脚本

    我正在尝试使用 Python3 脚本来控制 Arduino Mega 这是一个简单的脚本 用于从键盘获取一行并通过 Arduino 回显它 我从一个可用的 Python 2 脚本开始http petrimaki wordpress com
  • 蓝牙 HC-05 发送错误 1F 仅适用于 INQ 命令

    我的新蓝牙 HC 05 模块有问题 在 AT 模式下 它可以与我需要的所有命令完美配合 除了 INQ 我已经尝试事先发送一大堆其他命令 AT INIT OK AT ORGL OK AT ROLE 1 OK AT CLASS 0 OK 他们都
  • Mac OS 10.9 不显示 Arduino 的 USB 调制解调器

    我正在尝试选择 dev tty usbmodem on my Arduino Lenardo设备 操作系统是Mac OSX 10 9 问题是它没有显示 我什至尝试安装FTDI http www ftdichip com Drivers VC
  • 如何使用arduino从sim900模块的RTC读取日期和时间数据?

    include SIM900 h include
  • Arduino I2S 正弦波

    我正在开发一个项目 我想通过组合不同的正弦波来生成 简单 声音 我使用的是 arduino mkrZero 因为它内置了 I2S 接口 并且似乎有足够的处理能力来满足我的需求 I have wired my system exactly l
  • Arduino:使用串口和软件串口与蓝牙模块

    我的目的是使用 Arduino 通过 HC 05 蓝牙模块在 PC 和 Android 设备之间建立通信 我使用 PC 和 Arduino 串行监视器 之间的 USB 通信以及 SoftwareSerial 来连接到 HC 05 我的问题是
  • 如何将 ASCII char 转换为其 ASCII int 值?

    我想将 char 转换为它的ASCII http en wikipedia org wiki ASCIIint 值 我可以用所有可能的值填充一个数组并与其进行比较 但这对我来说似乎不正确 我想要类似的东西 char mychar k pub
  • Java RXTX 库不加载本机库

    基本上我想使用 Arduino 编写一个简单的通信工具java 的 RXTX 库 http rxtx qbang org wiki index php Main Page并且在加载动态库时严重失败 我的系统规格 操作系统 OS X 优胜美地
  • Arduino从SD卡读取最后一行

    我对 Arduino 业务还很陌生 如何从 SD 卡读取最后一行 通过以下代码片段 我可以读取第一行 n 之前的所有字符 现在我想添加一个 向后 声明 或其他内容 到目前为止我的代码 include
  • 是否有通用 I2C 命令来查看设备是否仍然存在于总线上?

    是否有通用的 I2C 命令来查看设备在初始化一次后是否仍然存在于总线上 例如 OLED 显示器 我问这个的原因是为了避免主程序由于库代码中存在无限循环而冻结 当设备断开连接时 例如 Wire 库 在 MCU 启动时 我想检查设备是否可用 并
  • Arduino - 高效地迭代 C 数组

    我有以下数组 PROGMEM prog uint16 t show hide info 4216 8900 4380 580 500 600 500 580 1620 580 500 600 500 580 500 600 480 600
  • C#读取Arduino

    我正在尝试制作一个从 Arduino 读取传出信号的应用程序 但我无法使其在 C 中工作Windows 窗体 http en wikipedia org wiki Windows Forms 仅在控制台中 我的 C Windows 窗体代码
  • Arduino 上的 Serial 和 Stream 有什么区别,Serial.write 是如何实现的?

    我很难理解串行和流这两个术语之间的区别 串行不是流的一种吗 我对作业有一些我不明白的问题 计算机通过使用 流或串行 读取 彼此发送的数据来确定每个字节的含义 Also Serial write 我也很困惑 它返回一个字节的数据 对吗 一个字
  • 仅从日期计算夏令时

    我正在使用 Arduino 和实时时钟芯片 该芯片补偿了闰年等 因此它始终具有正确的日期 但我认为由于区域复杂性 它不处理夏令时 时钟可以给出日 月 年 从 1 开始 以及星期几 星期日 0 到星期六 6 因为我需要与用户输入的日期和时间进
  • 带 firebase 的 Nodemcu(ESP8266)

    这是我上传到 ESP8266 以连接到 firebase 的代码 include
  • 云到设备 Azure IoT REST API

    我探索了如何使用 Azure REST API 将数据从设备发送到云 它运行无缝 没有任何问题 我没有找到有关使用 Azure IoT Hub REST API 向 Arduino 板发送云到设备消息的好文章 有人可以就此提供建议吗 您还可

随机推荐

  • pixhawk 整体架构的认识

    此篇blog的目的是对px4工程有一个整体认识 xff0c 对各个信号的流向有个了解 xff0c 以及控制算法采用的控制框架 PX4自动驾驶仪软件 可分为三大部分 xff1a 实时操作系统 中间件和飞行控制栈 1 NuttX实时操作系统 提
  • 光流定位原理

    无人机上光流定位通常是借助于无人机底部的一个摄像头采集图像数据 xff0c 然后采用光流算法计算两帧图像的位移 xff0c 进而实现对无人机的定位 xff0c 这种定位手段配合GPS可以在室外实现对无人机的精准控制 xff0c 并且在市内没
  • 图形化UDP发包小工具

    文章目录 前言一 构思二 用到的python模块tkiner模块tkiner模块下载 socket模块ThreadPoolExecutor模块导入方式 编码实现客户端服务端代码 三 运行结果客户端发送消息服务端 前言 工具编写用的语言是py
  • C语言之调试技巧(VS2019编译器)

    C语言之调试技巧 xff08 VS2019编译器 xff09 一 什么是调试 xff1f 调试的作用1 1 什么是调试1 2 调试的基本步骤1 3 Debug版本和Release版本的介绍二 Windows环境调试的准备2 1 调试环境的准
  • 怎么在vscode上编写C语言代码

    1 准备工作 xff1a 在vscode的拓展里面下载安装c c 43 43 官方插件 此外 xff0c 需要安装一个c c 43 43 的编译器 MinGW xff0c MinGW 官网下载地址 xff08 点击即可进入官网 xff09
  • Ubuntu20.04系统安装ROS-noetic教程及常见问题的处理

    Ubuntu版本 xff1a 20 04 ROS版本 xff1a Noetic Ninjemys 注 xff1a Ubuntu系统版本要与ROS版本相对应 xff0c 不同版本的Ubuntu系统对应了不同的ROS版本 如Ubuntu20 0
  • 笔记(STM32篇)day2——GPIO及寄存器映射

    目录 一 GPIO结构及模式 1 推挽输出 2 开漏输出 3 复用功能输出 4 上拉 下拉输入 5 复用功能输入与模拟输入 二 寄存器映射 一 GPIO结构及模式 图1 GPIO基本结构 如图1所示为GPIO基本结构 xff0c 右侧I O
  • 笔记(STM32篇)day3——寄存器结构体、端口置位函数

    目录 一些C知识点 1 define和typedef的区别 2 结构体struct 3 结构体中 和 gt 的区别 4 c文件和 h文件的关系 5 防止重复引用 一 寄存器结构体定义 1 定义结构体变量指针 2 寄存器赋值 二 端口置位函数
  • 笔记(STM32篇)day6——按键控制

    目录 一 按键硬件图 1 硬件原理 2 输入方式选择 二 功能实现 1 按键GPIO配置 2 按键扫描函数 3 LED翻转宏定义 4 主程序 参考 一 按键硬件图 1 硬件原理 按键的硬件原理图如图 xff0c 右侧接3 3V xff0c
  • 笔记(STM32篇)day8——系统时钟配置、MCO输出系统时钟

    目录 一 时钟框图 二 配置过程 1 系统时钟配置函数 2 MCO配置 参考 一 时钟框图 下图就是STM32F10x的时钟系统框图 xff0c 此处用的正点原子的图 xff0c 左侧四个蓝色的分别是 xff1a 高速内部RC时钟 xff0
  • pixhawk博客导读

    写的东西有点多 xff0c 写的也有点乱 xff0c 看题目也不知道内容是什么 xff0c 为了方便网友观看自己感兴趣的地方 xff0c 笔者把pixhawk博客归类一下 由于笔者也是边学习边写的 xff0c 难免有错误 xff0c 还请多
  • 笔记(STM32篇)day13——USART串口与PC通信实例

    USART 常用来实现控制器与电脑之间的数据传输 这使得我们调试程序非常方便 xff0c 比如我们可以把一些变量的值 函数的返回值 寄存器标志位等等通过 USART 发送到串口调试助手 xff0c 这样我们可以非常清楚程序的运行状态 xff
  • Leetcode 566. 重塑矩阵(C++矩阵容器)

    题目 输入 xff1a mat 61 1 2 3 4 r 61 1 c 61 4 输出 xff1a 1 2 3 4 思路 将原二维数组变成一维数组 xff0c 在重新放入变换后的二维数组 可以使用一维数组过渡 xff0c 也可以直接用整数除
  • 笔记(嵌入式Linux C篇)4——创建顺序存储表(二级指针方法)

    顺序存储表 概念等同于一个数组 xff0c 使用结构体定义 xff0c 成员为一个某类型的数组 xff0c 以及一个整形的last xff0c 作用是指示顺序存储表最后一个元素的下标 xff0c last默认为 1即数组为空 typedef
  • 笔记(嵌入式Linux C篇)5——单链表(有头节点)

    链表 数据元素随机存储 xff0c 通过指针表示数据之间的逻辑关系的结构就是链式存储结构 xff0c 即链表 一个链表节点包括一个数据域和一个指针域 数据域存储数据 xff0c 指针域存储下一个节点的地址 链表的结构体声明如下 xff1a
  • 实现对单链表的赋值、去重、拆分、排序。

    在一个带头结点的单链表A中 xff0c 自行输入A中的元素值 xff0c 请实现 xff1a xff08 1 xff09 将链表A中值相同的结点 xff0c 仅保留第一次出现的结点 xff1b xff08 2 xff09 将新得到的A链表
  • Linux高级编程——网络通信实现TCP(1)

    基于TCP协议的文件传输 xff08 套接字 xff09 实例 xff1a 客户端 xff1a 只用于收文件 xff1b 执行命令 xff1a 执行文件名 IP Port span class token comment 客户端 输入 执行
  • FPGA学习笔记—UART,RS485串口通信(verilog)

    目录 一 串口通信基础知识1 什么是串口 xff1f 2 同步通信和异步通信3 串行通信的传输方向4 常见的串口通信接口 二 UART串口通信UART基础知识1 协议层 xff1a 通信协议 xff08 包括数据格式 xff0c 传输速率等
  • 使用多线程编码实现:火车站卖票实例,四个卖票窗口随机卖出50张票

    public class Test 火车票 public static void main String args TicketWindow th1 61 new TicketWindow TicketWindow th2 61 new T
  • 【Arduino】arduino使用l298n的代码分享

    一 接线 二 使用步骤 int Left motor go 61 8 左电机前进 IN1 int Left motor back 61 9 左电机后退 IN2 int Right motor go 61 10 右电机前进 IN3 int R