Motor vezérlések

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
geripapa
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2014. április 20. vasárnap, 21:29

Motor vezérlések

Hozzászólás Szerző: geripapa »

Hali! Nos egy kis lánctalpas eszközről lenne szó, szóval segítséget szeretné kérni hogyan is tudnék egyszerre 2 motort vezérelni (Arduino Duemilanove + AVR - Duino Motorshield ) Program rész érdekelne főként, hogyan tudnám a motorokat külön külön azonosítani és vezérelni. Előre is köszönöm a választ! Gergő
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Motor vezérlések

Hozzászólás Szerző: Robert »

geripapa
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2014. április 20. vasárnap, 21:29

Re: Motor vezérlések

Hozzászólás Szerző: geripapa »

KÖSZÖNÖM! ez tényleg jó így (:
geripapa
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2014. április 20. vasárnap, 21:29

Re: Motor vezérlések

Hozzászólás Szerző: geripapa »

Nos bíbelődtem vele ma is egy kicsit, de nem igazán akar összejönni hogy egyszerre tudjam mozgatni a két motoromat... böngészgetek az oldalon... de valahogy nekem nem akar működni amit leírnak a linken... a mintát sem nagyon tudom letölteni :/
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: Motor vezérlések

Hozzászólás Szerző: kapu48 »

Pedig ott van az oldal alján, Jobbra: „Get Code”
Simán bejön!

Ha 1*re akarsz mozogni, szervezd át a programot.
Valahogy így:

Kód: Egész kijelölése

// Suppose there are two servo motors connected.
  // Let them move 180 degrees.
  servo_1.write(0);  
  servo_2.write(0);
  delay(1000);

  servo_1.write(180);
  servo_2.write(180);
  delay(2000);
geripapa
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2014. április 20. vasárnap, 21:29

Re: Motor vezérlések

Hozzászólás Szerző: geripapa »

igazából 2 DC motort akarok vezérelni, de már rájöttem hogyan csináljam... nem valami szép de valahogy csak csak tudom vele mozgatni a motorokat :D
geripapa
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2014. április 20. vasárnap, 21:29

Re: Motor vezérlések

Hozzászólás Szerző: geripapa »

Nos a motorok mozgatása már megy külön külön és egyszerre is viszont a helyzet a következő... port 2 re bekötök egy ultrahangszenzort és feltételnek mondjuk azt adom meg a motorok mozgásához hogy ha 20 centinél közelebb van egy tárgy akkor aktiválja magát a motor viszont a amikor ellenőriztetem a programot azt írja ki hogy "expected unqualified-id before 'if' " szóval mit hagytam ki illetve mit rontottam el?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Motor vezérlések

Hozzászólás Szerző: Robert »

Kód nélkül nehéz lesz bármit mondani....
geripapa
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2014. április 20. vasárnap, 21:29

Re: Motor vezérlések

Hozzászólás Szerző: geripapa »

hali!

nos bocsánat előre is ha valami orbitális hülyeséget csináltam, de hát ha nem kísérletezgetek akkor nem jutok semmire

és ez a hibaüzenetem: "expected unqualified-id before 'if' "

Kód: Egész kijelölése

#include <AFMotor.h>
const int pingPin = 2;
AF_DCMotor Motor1(4);
AF_DCMotor Motor2(3);

void setup()
{
    Motor1.setSpeed(255);
    Motor2.setSpeed(255);
    Motor1.run(RELEASE);
    Motor2.run(RELEASE);
}

void loop()
{
  
  long duration, cm;
  
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin, LOW);

  
  pinMode(pingPin, INPUT);
  duration = pulseIn(pingPin, HIGH);

 
  cm = microsecondsToCentimeters(duration);
  
  delay(100);
}


long microsecondsToCentimeters(long microseconds)
{
  
  return microseconds / 29/ 2;
}  

   
if  (cm < 20){
    Motor1.run(RELEASE);
    Motor2.run(BACKWARD);
    delay(500);
}    
else (cm > 20){   
    Motor1.run(FORWARD);
    Motor2.run(FORWARD);
  }   

}
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: Motor vezérlések

Hozzászólás Szerző: kapu48 »

if / else
http://arduino.cc/en/Reference/Else

Helyesen: else if (cm > 20){
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Motor vezérlések

Hozzászólás Szerző: Robert »

Vagy:

Kód: Egész kijelölése

if  (cm < 20){
    Motor1.run(RELEASE);
    Motor2.run(BACKWARD);
    delay(500);
}    
else {   
    Motor1.run(FORWARD);
    Motor2.run(FORWARD);
  }  
Az else feltétel nem kell.
Így "A" eset cm >20; "B" eset cm <= 20.
geripapa
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2014. április 20. vasárnap, 21:29

Re: Motor vezérlések

Hozzászólás Szerző: geripapa »

Kipróbáltam mind a két féle javaslatot, de sajnos mindíg ugyanazt a hibaüzenetet dobja, talán valami írásjel nem stimmel?
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: Motor vezérlések

Hozzászólás Szerző: kapu48 »

Kód: Egész kijelölése

  delay(100);
}   << Ez ide nem kell!
geripapa
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2014. április 20. vasárnap, 21:29

Re: Motor vezérlések

Hozzászólás Szerző: geripapa »

szerintem kell hozzá, mert ha kiveszem onnan akkor hiányolja a program végéről... viszont az "expected unqualified-id before 'if' " hibám még mindig fent áll :/
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: Motor vezérlések

Hozzászólás Szerző: kapu48 »

Miért kel?
Tanultuk a suliban, hogy a zárójeleket mindig párban kel használni!
Szerintem neked 1-el több a }-záró, mint a {-nyitó!
Válasz küldése