当前位置:网站首页>L298N module use
L298N module use
2022-07-05 08:29:00 【Sharing master】
The module pin description is as follows :
notes : Built in 5V Power supply , There is no need to pick it up from the outside 5V Input
Input information :
ENA and ENB The pins of the words are respectively connected to support PWM Output any digital port , And passed in the program AnalogWrite() Statement to adjust the speed .
Schematic diagram of circuit connection :
Program :
/* *****************************************************************
* *****************************************************************
*
*
* *****************************************************************/
#define BLINKER_WIFI
#include <Blinker.h>
#define STOP 0
#define FORWARD 1
#define BACKWARD 2
#define TURNLEFT 3
#define TURNRIGHT 4
// Motor control pin
#define LEFT_MOTOR1 D1
#define LEFT_MOTOR2 D2
#define RIGHT_MOTOR1 D3
#define RIGHT_MOTOR2 D4
#define LEFT_ENA D7
#define RIGHT_ENB D8
char auth[] = "2168d525043de";
char ssid[] = "000";
char pswd[] = "000";
// New component object
BlinkerButton Button0("btn-abc");
BlinkerButton Button1("btn-abd");
BlinkerButton Button2("btn-abe");
BlinkerButton Button3("btn-abf");
BlinkerButton Button4("btn-abg");
BlinkerButton Button5("btn-all");
BlinkerNumber Number1("num-abc");
int cmd = 1;
int counter = 0;
// Press the key to execute the function
void button0_callback(const String & state)
{
BLINKER_LOG("get button0 state: ", state);
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
void button1_callback(const String & state) {
BLINKER_LOG("get button1 state: ", state);
motor_run(1);
Button1.print("on");
Button2.print("off");
Button3.print("off");
Button4.print("off");
}
void button2_callback(const String & state) {
BLINKER_LOG("get button2 state: ", state);
motor_run(2);
Button1.print("off");
Button2.print("on");
Button3.print("off");
Button4.print("off");
}
void button3_callback(const String & state) {
BLINKER_LOG("get button3 state: ", state);
motor_run(3);
Button1.print("off");
Button2.print("off");
Button3.print("on");
Button4.print("off");
}
void button4_callback(const String & state) {
BLINKER_LOG("get button4 state: ", state);
motor_run(4);
Button1.print("off");
Button2.print("off");
Button3.print("off");
Button4.print("on");
}
void button5_callback(const String & state) {
BLINKER_LOG("get button5 state: ", state);
Button1.print("off");
Button2.print("off");
Button3.print("off");
Button4.print("off");
motor_run(0);
digitalWrite(LEFT_MOTOR1, HIGH);
digitalWrite(LEFT_MOTOR2, HIGH);
digitalWrite(RIGHT_MOTOR1, HIGH);
digitalWrite(RIGHT_MOTOR2, HIGH);
}
// If unbound components are triggered , Then the content will be executed
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
counter++;
Number1.print(counter);
}
void setup()
{
// Initialize serial port
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
// Initialization has LED Of IO
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
pinMode(LEFT_MOTOR1, OUTPUT);
pinMode(LEFT_MOTOR2, OUTPUT);
pinMode(RIGHT_MOTOR1, OUTPUT);
pinMode(RIGHT_MOTOR2, OUTPUT);
pinMode(LEFT_ENA,OUTPUT);
pinMode(RIGHT_ENB,OUTPUT);
// initialization blinker
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
motor_run(STOP);
Button0.attach(button0_callback);
Button1.attach(button1_callback);
Button2.attach(button2_callback);
Button3.attach(button3_callback);
Button4.attach(button4_callback);
Button5.attach(button5_callback);
}
/* *****************************************************************
*
Motor control letter
*
* *****************************************************************/
int highSpeed = 200;
int lowSpeed = 100;
void motor_run(int cmd)
{
switch(cmd)
{
case FORWARD:
Serial.println("FORWARD"); // Output status
analogWrite(LEFT_ENA,highSpeed);
digitalWrite(LEFT_MOTOR1, LOW);
digitalWrite(LEFT_MOTOR2, HIGH);
analogWrite(RIGHT_ENB,highSpeed);
digitalWrite(RIGHT_MOTOR1, LOW);
digitalWrite(RIGHT_MOTOR2, HIGH);
break;
case BACKWARD:
Serial.println("BACKWARD"); // Output status
digitalWrite(LEFT_MOTOR1, HIGH);
digitalWrite(LEFT_MOTOR2, LOW);
digitalWrite(RIGHT_MOTOR1, HIGH);
digitalWrite(RIGHT_MOTOR2, LOW);
break;
case TURNLEFT:
Serial.println("TURN LEFT"); // Output status
analogWrite(LEFT_ENA,lowSpeed);
analogWrite(RIGHT_ENB,highSpeed);
digitalWrite(LEFT_MOTOR1, LOW);
digitalWrite(LEFT_MOTOR2, HIGH);//C
digitalWrite(RIGHT_MOTOR1, LOW);
digitalWrite(RIGHT_MOTOR2, HIGH);
break;
case TURNRIGHT:
Serial.println("TURN RIGHT"); // Output status
analogWrite(LEFT_ENA,highSpeed);
analogWrite(RIGHT_ENB,lowSpeed);
digitalWrite(LEFT_MOTOR1, LOW);
digitalWrite(LEFT_MOTOR2, HIGH);
digitalWrite(RIGHT_MOTOR1, LOW);//C
digitalWrite(RIGHT_MOTOR2, HIGH);
break;
case STOP:
default:
Serial.println("STOP"); // Output status
analogWrite(LEFT_ENA,1);
analogWrite(RIGHT_ENB,1);
digitalWrite(LEFT_MOTOR1, LOW);
digitalWrite(LEFT_MOTOR2, LOW);
digitalWrite(RIGHT_MOTOR1, LOW);
digitalWrite(RIGHT_MOTOR2, LOW);
break;
}
}
void loop() {
Blinker.run();
}
边栏推荐
- MySQL MHA high availability cluster
- STM32 --- serial port communication
- 实例004:这天第几天 输入某年某月某日,判断这一天是这一年的第几天?
- STM32 single chip microcomputer -- volatile keyword
- DokuWiki deployment notes
- Several implementation schemes of anti reverse connection protection of positive and negative poles of power supply!
- 关于线性稳压器的五个设计细节
- Arduino uses nrf24l01+ communication
- PIP installation
- STM32 single chip microcomputer - external interrupt
猜你喜欢
Several implementation schemes of anti reverse connection protection of positive and negative poles of power supply!
FIO测试硬盘性能参数和实例详细总结(附源码)
Circleq of linked list
[trio basic from introduction to mastery tutorial 20] trio calculates the arc center and radius through three points of spatial arc
Shell script
Example 005: three numbers sorting input three integers x, y, Z, please output these three numbers from small to large.
Relationship between line voltage and phase voltage, line current and phase current
Bluebridge cup internet of things basic graphic tutorial - GPIO input key control LD5 on and off
Compilation warning solution sorting in Quartus II
【论文阅读】2022年最新迁移学习综述笔注(Transferability in Deep Learning: A Survey)
随机推荐
Anonymous structure in C language
剑指 Offer 06. 从尾到头打印链表
DCDC circuit - function of bootstrap capacitor
MySQL之MHA高可用集群
Live555 RTSP audio and video streaming summary (II) modify RTSP server streaming URL address
Hardware 3 -- function of voltage follower
Explain task scheduling based on Cortex-M3 in detail (Part 1)
实例010:给人看的时间
[tutorial 19 of trio basic from introduction to proficiency] detailed introduction of trio as a slave station connecting to the third-party bus (anybus PROFIBUS DP...)
Meizu Bluetooth remote control temperature and humidity access homeassistant
[cloud native | learn kubernetes from scratch] III. kubernetes cluster management tool kubectl
H264 (I) i/p/b frame gop/idr/ and other parameters
FIO测试硬盘性能参数和实例详细总结(附源码)
Nb-iot technical summary
Example 005: three numbers sorting input three integers x, y, Z, please output these three numbers from small to large.
Live555 push RTSP audio and video stream summary (III) flower screen problem caused by pushing H264 real-time stream
關於線性穩壓器的五個設計細節
[trio basic from introduction to mastery tutorial XIV] trio realizes unit axis multi-color code capture
Semiconductor devices (I) PN junction
Imx6ull bare metal development learning 2- use C language to light LED indicator