当前位置:网站首页>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();
}
边栏推荐
- Summary of SIM card circuit knowledge
- 实例009:暂停一秒输出
- 【三层架构及JDBC总结】
- STM32 virtualization environment of QEMU
- Bluebridge cup internet of things basic graphic tutorial - GPIO input key control LD5 on and off
- 实例010:给人看的时间
- Classic application of MOS transistor circuit design (1) -iic bidirectional level shift
- Brief discussion on Buck buck circuit
- Example 003: a complete square is an integer. It is a complete square after adding 100, and it is a complete square after adding 168. What is the number?
- Example 008: 99 multiplication table
猜你喜欢

List of linked lists

UE像素流,来颗“减肥药”吧!

Shell script
![[three tier architecture]](/img/73/c4c75a453f03830e83cabb0762eb9b.png)
[three tier architecture]

Bluebridge cup internet of things basic graphic tutorial - GPIO output control LD5 on and off
![[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...)](/img/54/2fe86f54af01f10de93818103f2154.jpg)
[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...)

Example 010: time to show

Several important parameters of LDO circuit design and type selection

实例008:九九乘法表

Wifi-802.11 negotiation rate table
随机推荐
Void* C is a carrier for realizing polymorphism
STM32---IIC
QEMU demo makefile analysis
Zero length array in GNU C
STM32 virtualization environment of QEMU
Several implementation schemes of anti reverse connection protection of positive and negative poles of power supply!
每日一题——替换空格
Cinq détails de conception du régulateur de tension linéaire
What are the test items of power battery ul2580
Briefly talk about the identification protocol of mobile port -bc1.2
Working principle and type selection of common mode inductor
MHA High available Cluster for MySQL
Hardware 3 -- function of voltage follower
Relationship between line voltage and phase voltage, line current and phase current
Sword finger offer 06 Print linked list from end to end
Adaptive filter
go依赖注入--google开源库wire
[cloud native | learn kubernetes from scratch] III. kubernetes cluster management tool kubectl
More than 90% of hardware engineers will encounter problems when MOS tubes are burned out!
Naming rules for FreeRTOS