Skip to content

Motor DC

javierre edited this page May 27, 2019 · 14 revisions

TBD

dcmotor

La placa Motor Shield de NodeMCU permite conectar motores de corriente continua directamente en los conectores azules de Motor A y Motor B.

Motor DC
#include <Arduino.h>

/*
 SOME DEFFINITIONS, JUST TO REMEMBER
 DO NOT MODIFICATE
    D (arduino) INTERNAL
    D0          16
    D1          5 // I2C Bus SCL (clock) // PWMA (Motor A Speed--> 0 to 1024)
    D2          4 // I2C Bus SDA (data)  // PWMA (Motor B Speed--> 0 to 1024))
    D3          0                        // DIRA (Motor A --> HIGH forward)
    D4          2 // Same as "LED_BUILTIN", but inverted logic (HIGH turns off) // DIRB (Motor B)
    D5          14 // SPI Bus SCK (clock)
    D6          12 // SPI Bus MISO
    D7          13 // SPI Bus MOSI
    D8          15 // SPI Bus SS (CS)
    D9          3 // RX0 (Serial console)
    D10         1 // TX0 (Serial console)
*/



#define RightMotorSpeed 5 // POWERA
#define RightMotorDir 0   // DIRA
#define LeftMotorSpeed 4  // POWERB
#define LeftMotorDir 2    // DIRB

#define turnspeed  500 //0--> 1024
#define forwardspeed 500 //0 --> 1024


void halt()
{
 digitalWrite(RightMotorSpeed, LOW);
 digitalWrite(LeftMotorSpeed, LOW);
 analogWrite(RightMotorSpeed, 0);
 analogWrite(LeftMotorSpeed, 0);
}

void forward()
{
 Serial.println("forward");
 digitalWrite(RightMotorDir, LOW);
 digitalWrite(LeftMotorDir, HIGH);
 analogWrite(RightMotorSpeed, forwardspeed);
 analogWrite(LeftMotorSpeed, forwardspeed+100);
}

void reverse()
{
 Serial.println("reverse");
 digitalWrite(RightMotorDir, HIGH);
 digitalWrite(LeftMotorDir, LOW);
 analogWrite(RightMotorSpeed, forwardspeed);
 analogWrite(LeftMotorSpeed, forwardspeed+100);
}

void right()
{
 Serial.println("right");
 digitalWrite(RightMotorDir, HIGH);
 digitalWrite(LeftMotorDir, HIGH);
 analogWrite(RightMotorSpeed, turnspeed);
 analogWrite(LeftMotorSpeed, turnspeed+100);
}

void left()
{
 Serial.println("left");
 digitalWrite(RightMotorDir, LOW);
 digitalWrite(LeftMotorDir, LOW);
 analogWrite(RightMotorSpeed, turnspeed);
 analogWrite(LeftMotorSpeed, turnspeed+100);
}



void setup() {

  Serial.begin (9600);

  pinMode(RightMotorSpeed, OUTPUT);
  pinMode(RightMotorDir, OUTPUT);
  pinMode(LeftMotorSpeed, OUTPUT);
  pinMode(LeftMotorDir, OUTPUT);

 
}

void loop() {
 
    forward();
 
}

Clone this wiki locally