Lectia #5: Ardumoto

Ardumoto Driver
Ce este Ardumoto?
Ardumoto este o platforma compatibila cu platforma Arduino bazata pe driverul L298 H-bridge, folosit de obicei pentru controlul  motoarele de voltaj mic. Placa a fost creata special pentru a putea fi montata pe o platforma Arduino precum Arduino Duemilanove sau Arduino Uno.
De ce Ardumoto? Pai fiindca daca am conectat un motor, oricat de putin ar consuma el, ar arde aproape instantaneu platforma Arduino. Pentru asta se intrebuinteaza Ardumoto.

De ce altceva mai am nevoie?
Pe langa Ardumoto va mai fi nevoie de o platforma Arduino (eg.Uno, Duemilanove), doua motorase, letcon, fludor, conectori si un patent pentru taierea conectorilor.

Construirea propriu-zisa
Acum, va trebuii sa conectati cu fludor si letconul conectorii de la motor la ceilalti 4 conectori de la Ardumoto.
Ardumoto se alimenteaza de pe platforma Arduino, asa ca recomandat va fi sa alimentati Ardumoto cu o sursa de energie externa la conectorii VIN de pe Ardumoto.
Odata ce a-ti terminat de facut conexiunile, va trebui  sa conectati Arduino la calculator prin intermediul USB-ului.


Explicatia codului de rulare
int pwm_a = 3; //controleaza viteza motorului A pe pin 3
int pwm_b = 11;  //controleaza viteza motorului B pe pin 11
int dir_a = 12;  //controlul directiei motor A (LOW-spate; HIGH-fata)
int dir_b = 13;  //controlul directiei motor B


void setup()
{
  pinMode(pwm_a, OUTPUT);  //seteaza pinii ca OUTPUT
  pinMode(pwm_b, OUTPUT);
  pinMode(dir_a, OUTPUT);
  pinMode(dir_b, OUTPUT);
  
  analogWrite(pwm_a, 100);        
  //seteaza valoarea motoarelor la 100 (maximul se afla la 255 => ruleaza@39%) 
  analogWrite(pwm_b, 100);
  
}

void loop()
{
  digitalWrite(dir_a, LOW);  //directia motorului LOW
  digitalWrite(dir_b, LOW);  //directia motorului LOW
  
  delay(1000);
  
  analogWrite(pwm_a, 255);      
  //setarea ambelor motoare la putere max
  analogWrite(pwm_b, 255);
  
  delay(1000);
  
  digitalWrite(dir_a, HIGH);  //setare motor directie HIGH
digitalWrite(dir_b, HIGH);  //setare motor directie HIGH
  
  delay(1000);
  
  analogWrite(pwm_a, 100);
 //setarea ambelor motoare sa ruleze la putere max  
  analogWrite(pwm_b, 100);
  
  delay(1000);
}

dir_a reprezinta directia motorului 1. (spate/inainte)
dir_b reprezinta directia motorului 2. (spate/inainte)
pwm_a reprezinta voltajul care ii e atribuit motorului 1(intre 0-255)
pwm_b reprezinta voltajul care ii e atribuit motorului 2(intre 0-255)

Comentarii

Postări populare de pe acest blog

Lectia #2: Analiza Codului - Part 2

Lectia #1: Blinking Led