当前位置:网站首页>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();
}
边栏推荐
- 剑指 Offer 05. 替换空格
- Ble encryption details
- 关于线性稳压器的五个设计细节
- STM32 --- GPIO configuration & GPIO related library functions
- STM32 summary (HAL Library) - DHT11 temperature sensor (intelligent safety assisted driving system)
- Let's briefly talk about the chips commonly used in mobile phones - OVP chips
- Example 005: three numbers sorting input three integers x, y, Z, please output these three numbers from small to large.
- 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?
- 实例002:“个税计算” 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.
- Array integration initialization (C language)
猜你喜欢
Meizu Bluetooth remote control temperature and humidity access homeassistant
MySQL之MHA高可用集群
STM32 single chip microcomputer -- debug in keil5 cannot enter the main function
Sword finger offer 05 Replace spaces
leetcode - 445. 两数相加 II
Installation and use of libjpeg and ligpng
Negative pressure generation of buck-boost circuit
[trio basic from introduction to mastery tutorial 20] trio calculates the arc center and radius through three points of spatial arc
Count the number of inputs (C language)
Ble encryption details
随机推荐
OC and OD gate circuit
Charge pump boost principle - this article will give you a simple understanding
[trio basic tutorial 17 from getting started to mastering] set up and connect the trio motion controller and input the activation code
Stm32--- systick timer
Example 004: for the day of the day, enter a day of a month of a year to judge the day of the year?
How to write cover letter?
Imx6ull bare metal development learning 2- use C language to light LED indicator
Simple design description of MIC circuit of ECM mobile phone
Void* C is a carrier for realizing polymorphism
2022.7.4-----leetcode.1200
动力电池UL2580测试项目包括哪些
Shell script
每日一题——输入一个日期,输出它是该年的第几天
FIO测试硬盘性能参数和实例详细总结(附源码)
Soem EtherCAT source code analysis attachment 1 (establishment of communication operation environment)
实例008:九九乘法表
Several important parameters of LDO circuit design and type selection
More than 90% of hardware engineers will encounter problems when MOS tubes are burned out!
剑指 Offer 06. 从尾到头打印链表
Soem EtherCAT source code analysis I (data type definition)