L293D Mini 4 Channel Motor Shield

Arduino shields
Gebruikers-avatar
Berichten: 31
Geregistreerd: 08 Sep 2016, 21:50

L293D Mini 4 Channel Motor Shield

Berichtdoor Kitemasters » 15 Jul 2018, 14:13

Hallo,

Mijn project is een robot (wall-e) en ben begonnen met de basis, twee rupsbanden.
Om wat te proberen heb ik wat spulletjes uit china laten komen.
mijn vragen gaan voornamelijk over de L293 motor shield.
maar voor de volledigheid eerst een lijstje met de hele opstelling;
Afbeelding

Arduino ; (Uno, Nano, Mega ik heb ze alle drie maar gebruik voorlopig de Nano.)
Motor ; https://www.aliexpress.com/item/Bringsm ... 4c4dCbQK12 (waarom hall-sensor?....geen idee.)
motor shield ; https://www.aliexpress.com/item/L293D-M ... 4c4dKnj1XQ
shield info ; http://www.deek-robot.com/productShow.asp?id=17

om te testen gebruik ik een 12v 1a trafo dit zal later natuurlijk een lipo worden en ik heb een schetsje gemaakt dat voornamelijk de code,

analogWrite(motor_Pin_LF, 32); // send pwm to motor_Pin
delay(500); // wacht

uitstuurd op alle 4 de pinnen met div snelheden en pauzes. (vandaar niet de hele code)


Over de L293, ja de 298 was een betere keus geweest maar ik heb nu eenmaal 8 van die dingen liggen dus ik wil er toch nog even mee verder klooien.
verder kan ik ook geen voorbeelden vinden van mensen die deze shield gebruiken met uitleg. (die waren slimmer dan ik dus)
wel is er info van de fabricant maar daar heb ik wat twijfels bij.

ten eerste de 5v aansluiting van de shield naar de nano (of andersom).
zoals het nu aangesloten is kan ik volgens mij de Nano van de USB afhalen en krijgt de Nano gewoon stroom via de
shield (wat op zich wel handig is) andersom als ik de 12v van de shield afhaal blijven de motortjes draaien dat betekend volgens
mij dat hij dan de stroom uit mijn USB trekt en dat is volgens mij helemaaal niet de bedoeling. Dit is volgens mij de oorzaak dat ik
gisteren al 1 Nano heb kunnen begraven en bij het googlen las ik dat je ook je hele USB poort kunt opblazen dus dan wordt ik een beetje panish.
op de achterkant van de print zit wel een soldeer-bruggetje dat NIET vebonden is (volgens mij heeft dat er mee te maken)
maar info wat hier de opties zijn kan ik niet vinden.

Dan de twee jumpers, er staat "ENABLE FACILITY" dus wat enabled die facility dan? bij het plaatje staat "=pwm" bij een andere beschrijving
las ik dat je die pinnen gebruikt als pwm ingang. maar volgens mij moet je ze alleen doorverbonden laten als je pwm wil gebruiken?.
op het moment werkt pwm gewoon wel op de vier "in" pinnen.

Graag dus wat meer info/uitleg hier

bvd masters

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: L293D Mini 4 Channel Motor Shield

Berichtdoor Koepel » 15 Jul 2018, 15:09

Begin eens om de datasheet van de L293D te lezen.
Daarna kun je dit doorbladeren: https://learn.adafruit.com/adafruit-arduino-lesson-15-dc-motor-reversing/.

De IN1...IN4 worden gebruikt om de uitgang naar de motors in een bepaalde stand te zetten.
De EN1 en EN2 worden gebruikt voor het PWM signaal.
Ik stel voor om de standaard manier aan te houden, en geen rare dingen uit te halen.

Er lijkt een 5V voltage regulator op de module te zitten. Die is misschien verbonden met de VCC pin. Als je iets koopt waar geen schema van is, en onvoldoende documentatie, dan blijf je gissen.

Hele mooie motor drivers staan hier: https://www.pololu.com/category/11/brushed-dc-motor-drivers.
Goedkope motor drivers zijn bijvoorbeeld deze: https://www.aliexpress.com/item/1pcs-Dual-Motor-Driver-1A-TB6612FNG-for-Arduino-Microcontroller-Better-than-L298N/32841510198.html.

Gebruikers-avatar
Berichten: 31
Geregistreerd: 08 Sep 2016, 21:50

Re: L293D Mini 4 Channel Motor Shield

Berichtdoor Kitemasters » 18 Jul 2018, 17:16

Dank je, Ik bleef maar doorzoeken op de "print" en "merk" naam terwijl het natuurlijk ging om de chip.
verandering van zoekterm was precies de sleutel.

het bruggetje op de print omzeild de 5v regulator zodat je de motoren uit de arduino kunt voeden
in dit geval trekken ze teveel stroom dus is dat geen goed idee.
daarom de vcc verbonden met vin ipv de 5v uit/in pin.

voor de volledigheid;
Afbeelding

Code: Alles selecteren
/*
  L293D Mini 4 Channel Motor Shield Test

  Parts required:
  1 - arduino nano/uno/mega or compatible
  1 - L293D Mini 4 Channel CH Motor Drive Shield


  Created 14 juli 2018
  by Kitemasters

  This code is part of the public domain
*/

// --------------CONSTANTS (won't change)--------------

// Left Motor
int Ls = 5;
int Ld0 = A3;
int Ld1 = A2;

// Right Motor
int Rs = 6;
int Rd0 = A1;
int Rd1 = A0;

// --------------- VARIABLES (will change) ---------------

//========================================================
void setup()
{
  // Set all the motor control pins to outputs

  pinMode(Ls, OUTPUT);
  pinMode(Rs, OUTPUT);
  pinMode(Ld0, OUTPUT);
  pinMode(Ld1, OUTPUT);
  pinMode(Rd0, OUTPUT);
  pinMode(Rd1, OUTPUT);
}
//========================================================
void loop()
{
  demoOne();
  delay(20000);

  demoTwo();
  delay(20000);
}
//========================================================
void demoOne()
{
  // Turn on left motor
  digitalWrite(Ld0, HIGH);
  digitalWrite(Ld1, LOW);

  analogWrite(Ls, 60);

  // Turn on right motor
  digitalWrite(Rd0, HIGH);
  digitalWrite(Rd1, LOW);

  analogWrite(Rs, 60);

  delay(4000);

  // Change motor directions
  digitalWrite(Ld0, LOW);
  digitalWrite(Ld1, HIGH); 
  digitalWrite(Rd0, LOW);
  digitalWrite(Rd1, HIGH);

  delay(4000);

  // Turn off motors
  digitalWrite(Ld0, LOW);
  digitalWrite(Ld1, LOW); 
  digitalWrite(Rd0, LOW);
  digitalWrite(Rd1, LOW);
}
//========================================================
void demoTwo()
{
  // Turn on motors

  digitalWrite(Ld0, LOW);
  digitalWrite(Ld1, HIGH); 
  digitalWrite(Rd0, LOW);
  digitalWrite(Rd1, HIGH);

  // Accelerate from zero to maximum speed

  for (int i = 0; i < 256; i++)
  {
    analogWrite(Ls, i);
    analogWrite(Rs, i);
    delay(30);
  }

  // Decelerate from maximum speed to zero

  for (int i = 255; i >= 0; --i)
  {
    analogWrite(Ls, i);
    analogWrite(Rs, i);
    delay(40);
  }

  // Turn off motors
  digitalWrite(Ld0, LOW);
  digitalWrite(Ld1, LOW); 
  digitalWrite(Rd0, LOW);
  digitalWrite(Rd1, LOW); 
}
//==========================end===========================

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: L293D Mini 4 Channel Motor Shield

Berichtdoor Koepel » 18 Jul 2018, 18:25

Mooi :D

Je mag de motor uitzetten door alleen een analogWrite(0) te doen.

Een moderne driver met CMOS uitgangen kan de motor kortsluiten om af te remmen. Dan kun je kiezen tussen de motor vrij laten lopen of de motor kortsluiten om de motor te laten afremmen.

Met kortsluiten bedoel ik alle uitgangen op laag zetten (GND) and de PWM vol aan (100%). Dan zijn de rode draad en de zwarte draad van motor als het ware met elkaar verbonden, en dat remt de motor extra af.

Met een L293D is dat niet zo. Je hoeft die "IN" pinnen niet terug te zetten en je kunt de motor uitzetten door de EN pin laag te houden. Het is natuurlijk wel netjes en veiliger om alle "IN" pinnen op LOW te zetten als de motor uit staat ;)

Terug naar Shields

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 10 gasten