QUAD MOTOR - OPEN SMART





 

#include <Adafruit_PCF8574.h>


/* Example for 1 output LED that is connected from power to the GPIO expander pin #7
 * Note the LEDs must be connected with the CATHODES to the expander, to SINK current!
 * The PCF8574 cannot SOURCE current!
 P0 = AIN1
 P1 = AIN2
 P2 = BIN1
 P3 = BIN2
 P4 = CIN1
 P5 = CIN2
 P6 = DIN1
 P7 = DIN2

 MOTOR DELANT IZQUIER  = MOTOR A
 MOTOR DELANT DERECHO  = MOTOR B
 MOTOR TRASERO IZQUIER = MOTOR C
 MOTOR TRASERO DERECHO = MOTOR D

 MOTOR A          MOTOR B



 MOTOR C          MOTOR D
 */

Adafruit_PCF8574 pcf;

#define PIN_PWMA 3
#define PIN_PWMB 5
#define PIN_PWMC 6
#define PIN_PWMD 11
uint8_t speed0 = 150;

void setup() {
  while (!Serial) { delay(10); }
  Serial.begin(9600);
  Serial.println("Adafruit PCF8574 LED blink test");

  if (!pcf.begin(0x20, &Wire)) {
    Serial.println("Couldn't find PCF8574");
    while (1);
  }
 
  pcf.pinMode(0, OUTPUT);
  pcf.pinMode(1, OUTPUT);
  pcf.pinMode(2, OUTPUT);
  pcf.pinMode(3, OUTPUT);
  pcf.pinMode(4, OUTPUT);
  pcf.pinMode(5, OUTPUT);
  pcf.pinMode(6, OUTPUT);
  pcf.pinMode(7, OUTPUT);

  pinMode(PIN_PWMA, OUTPUT);
  pinMode(PIN_PWMB, OUTPUT);
  pinMode(PIN_PWMC, OUTPUT);
  pinMode(PIN_PWMD, OUTPUT);
  analogWrite(PIN_PWMA, speed0);
  analogWrite(PIN_PWMB, speed0);
  analogWrite(PIN_PWMC, speed0);
  analogWrite(PIN_PWMD, speed0);
}

void loop() {
  pcf.digitalWrite(2, LOW);  // turn LED on by sinking current to ground
  pcf.digitalWrite(3, HIGH); // turn LED off by turning off sinking transistor
  delay(2000);
  pcf.digitalWrite(2, LOW);
  pcf.digitalWrite(3, LOW);
  delay(1000);
  pcf.digitalWrite(2, HIGH);  // turn LED on by sinking current to ground
  pcf.digitalWrite(3, LOW); // turn LED off by turning off sinking transistor
  delay(2000);
  pcf.digitalWrite(2, LOW);
  pcf.digitalWrite(3, LOW);
  delay(1000);
}

void Avanza(){
 pcf.digitalWrite(0, LOW);
 pcf.digitalWrite(1, HIGH);

 pcf.digitalWrite(2, LOW);
 pcf.digitalWrite(3, HIGH);

 pcf.digitalWrite(4, LOW);
 pcf.digitalWrite(5, HIGH);

 pcf.digitalWrite(6, LOW);
 pcf.digitalWrite(7, HIGH);
}

void Retrocede(){
 pcf.digitalWrite(1, LOW);
 pcf.digitalWrite(0, HIGH);

 pcf.digitalWrite(3, LOW);
 pcf.digitalWrite(2, HIGH);

 pcf.digitalWrite(5, LOW);
 pcf.digitalWrite(4, HIGH);

 pcf.digitalWrite(7, LOW);
 pcf.digitalWrite(6, HIGH);
}

void Stop(){
 pcf.digitalWrite(0, LOW);
 pcf.digitalWrite(1, LOW);

 pcf.digitalWrite(2, LOW);
 pcf.digitalWrite(3, LOW);

 pcf.digitalWrite(4, LOW);
 pcf.digitalWrite(5, LOW);

 pcf.digitalWrite(6, LOW);
 pcf.digitalWrite(7, LOW);
}


void Derecha(){
 pcf.digitalWrite(0, LOW);
 pcf.digitalWrite(1, HIGH);

 pcf.digitalWrite(2, HIGH);
 pcf.digitalWrite(3, LOW);

 pcf.digitalWrite(4, LOW);
 pcf.digitalWrite(5, HIGH);

 pcf.digitalWrite(6, HIGH);
 pcf.digitalWrite(7, LOW);
}

void Izquierda(){
 pcf.digitalWrite(0, HIGH);
 pcf.digitalWrite(1, LOW);

 pcf.digitalWrite(2, LOW);
 pcf.digitalWrite(3, HIGH);

 pcf.digitalWrite(4, HIGH);
 pcf.digitalWrite(5, LOW);

 pcf.digitalWrite(6, LOW);
 pcf.digitalWrite(7, HIGH);
}

Comentarios

  1. Hola.

    He seguido todos los pasos que indicas en tu video de youtube y a mi el progrma no me arranca.

    Simplemente me muestra el mensaje "Adafruit PCF8574 LED blink test " y no hace nada mas, alguna idea de que puedo estar haciendo mal??

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

CLASIFICADOR DE COLORES CON SENSOR TCS3472 (I2C) CON ARDUINO NANO

PROTOTIPO - CONTROL DE ACCESO CON RFID + TECLADO CON ALMACENAMIENTO EN MICRO SD

CONTROL DE ACCESO CON RFID YMODULO RTC DS3231