Arduino Motor Control Code
0:40
SoftwareSerial y utiliza switch-case junto con funciones separadas para cada acción. Esto mejora la legibilidad del código:Cpp
#include SoftwareSerial BT(2, 3); // RX, TX para el módulo Bluetooth const int MA1 = 8; const int MA2 = 9; const int MB1 = 10; const int MB2 = 11; void setup() { Serial.begin(9600); BT.begin(9600); pinMode(MA1, OUTPUT); pinMode(MA2, OUTPUT); pinMode(MB1, OUTPUT); pinMode(MB2, OUTPUT); stopMotors(); } void loop() { if (BT.available()) { char comando = BT.read(); switch (comando) { case 'F': forward(); break; case 'B': backward(); break; case 'L': left(); break; case 'R': right(); break; case 'S': stopMotors(); break; } } } void forward() { digitalWrite(MA1, HIGH); digitalWrite(MA2, LOW); digitalWrite(MB1, HIGH); digitalWrite(MB2, LOW); } void backward() { digitalWrite(MA1, LOW); digitalWrite(MA2, HIGH); digitalWrite(MB1, LOW); digitalWrite(MB2, HIGH); } void left() { digitalWrite(MA1, LOW); digitalWrite(MA2, HIGH); digitalWrite(MB1, HIGH); digitalWrite(MB2, LOW); } void right() { digitalWrite(MA1, HIGH); digitalWrite(MA2, LOW); digitalWrite(MB1, LOW); digitalWrite(MB2, HIGH); } void stopMotors() { digitalWrite(MA1, LOW); digitalWrite(MA2, LOW); digitalWrite(MB1, LOW); digitalWrite(MB2, LOW); }
SoftwareSerial en los pines 2 y 3 para comunicarse con el módulo Bluetooth.forward(), backward(), left(), right(), stopMotors()) para ejecutar cada acción, lo cual simplifica la lógica en la función loop().switch-case para decidir la acción en función del comando recibido.Ready.
Reviews
Aggregate Turquoise Flux Capacitor
Properties
Properties describe core aspects of the project.
Pricing & Availability
Distributor | Qty 1 |
|---|
Assets
No assets added.
Controls
Welcome 👋
Flux helps you build PCBs faster with an AI teammate!
Create your account to collaborate, stay updated, fork your own version, and get instant answers from our AI agent.