• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z obsługa silnika serwo typu Tower i silnika typu DC motor
#1
Sad 
Witam wszystkich od jakiegoś czasu mam problem ze zgraniem ze sobą dwóch silników ze sobą , silnika typu serwo oraz silnika dc . Wyżej wspomniane silniki są podłączone ze sobą przy pomocy arduino uno r3 i moto shielda r3. Próbowałem podłączyć wyżej wspomniane silniki na dwa sposoby. 

Pierwszy sposób: 

Pierwszy silnik typu serwo Tower pro MG995 DIGI HI-SPEED podłączony został do układu arduino uno r3 i  motor shielda w taki sposób (GND , 5V , 11) . Silnik dc motor natomiast został podłączony bezpośrednio do wyjścia na silniki dc ( + do + , -  do - ). We wspomnianym układzie znajduje się moduł bluetooth podłączony do napięcia 5v . Cały układ zasilany jest bateria typu lipo o napięciu 7,4v  po przez wejście zewnętrznego zasilania na moto shield r3. 

Silniki podłączone do układu mogę włączać ręcznie z poziomu telefonu. Jednak wspomniany układ pracuje bez najmniejszych problemów jedynie przez około 10-15 sekund. Następnie układ osiąga wysoką temperaturę( główny procesor układu moto shield r3 ) i silniki się zatrzymują, w tym czasie diody LED przy wyjściu na silnik dc mrugają równo. 

Po odłączeniu zasilania i ochłodzeniu płytki moto shield silniki działają ponownie przez 10-15 sekund tylko.  

1. Czy ktoś z was się spotkał może z takim problemem w swoich projektach ???
2. Ewentualnie niech ktoś mi powiedz zmiana źródła zasilania na źródło o mniejszej napięciu może jakoś wpłynąć na pracę układu ?? 

Drugi sposób : 

Pierwszy silnik typu serwo Tower pro MG995 DIGI HI-SPEED podłączony został do układu arduino uno r3 i  motor shielda w taki sposób (GND , 5V , 11) . Silnik dc motor natomiast został podłączony bezpośrednio do wyjścia na silniki dc ( vin , GND ). We wspomnianym układzie znajduje się moduł bluetooth podłączony do napięcia 5v . Cały układ zasilany jest bateria typu lipo o napięciu 7,4v  po przez wejście zewnętrznego zasilania na moto shield r3. 
Układ działa w ten sposób że silnik dc startuje od razu po załączeniu zasilania w układzie. 

Pytanie brzmi moje czy ktoś zna z was sposób na sterowanie silniku po przez port VIN  w ten sam sposób jak steruje się silnikiem po przez port PWM A - 3.

Chciał bym się osiągnąć taki efekt by włączenie i wyłączenie silnika dc nastąpiło ręcznie z poziomy telefonu tak jak w pierwszym przykładzie a nie w momencie podłączenia zasilania.

Zna ktoś z was sposób na sterowaniem silnika podłączonego do portu VIN ??
 
Odpowiedź
#2
witam.

Kod programu , jaki silnik DC , zdjęcie w miarę możliwości , jaki zasilacz . Nie wiem czy zdajesz sobie sprawę że serwo które podałeś potrafi bez obciążenia przy szybkich ruchach pobrać do 2A a przy pełnym obciążeniu ponad 6A w impulsie . Vin to jest zasilanie układu a nie wyjście silnika tam podłączasz zasilanie dla silników a silniki pod wyjście A i B
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#3
(02-12-2015, 19:14)JasQ napisał(a): witam.

Kod programu , jaki silnik DC , zdjęcie w miarę możliwości , jaki zasilacz . Nie wiem czy zdajesz sobie sprawę że serwo które podałeś potrafi bez obciążenia przy szybkich ruchach pobrać do 2A a przy pełnym obciążeniu ponad 6A w impulsie  . Vin to jest zasilanie układu a nie wyjście silnika tam podłączasz zasilanie dla silników a silniki pod wyjście A i B

Ad 1 : Kod programu 

#include <Servo.h>
#include <Wire.h>
#include <SoftwareSerial.h> 

int bluetoothTx = 1;  // TX-O pin of bluetooth mate, Arduino D2
int bluetoothRx = 0;  // RX-I pin of bluetooth mate, Arduino D3

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

int servoPin = 10;
Servo servo;
int angle = 0;
//char val;
int led = 9;
const int
PWM_A = 3,
PWM_B = 11,
DIR_A = 12,
DIR_B = 13,
BRAKE_A = 9,
BRAKE_B = 8,
SNS_A   = A0;



void setup()
{

  pinMode(BRAKE_A,OUTPUT);
  pinMode(DIR_A,OUTPUT);

  pinMode(BRAKE_B,OUTPUT);
  pinMode(DIR_B,OUTPUT);
  
  // bt configuration file 
  bluetooth.begin(19200);
  pinMode(led,OUTPUT);
}

void loop()
{
   
  char val;
  servo.write(70);
    if( bluetooth.available() )
       {
      char val = (char)bluetooth.read();
      
         Serial.println(val);
       
          if ( val == 'L' )
          
          {
          left();
       
          }
       else 
           if ( val == 'R' )
            {  
            right();      
           
            }
        else  
             if ( val == 'F' )
          
          {
       forward();
       
          }
       else 
           if ( val == 'B' )
           {
           backward();
           }
       }
      
       



void left()


  for(angle = 70; angle <= 180; angle++)
  {
    servo.write(angle);
    delay(30);
    if (angle<180) servo.write(70);
  }
}

void right()
{

  for(angle = 180; angle > 70; angle--)
  {
    servo.write(angle);
    delay(30);
   if (angle>180 ) servo.write(70);
  }
}

void forward()
{
        analogWrite(BRAKE_A, LOW);  
        
        
        analogWrite(DIR_A, HIGH);  
      
        
        analogWrite(PWM_A, 255);    
        
        delay(5000);              
   
  
}

void backward()
{
        Serial.println("Backward");
        analogWrite(BRAKE_A, LOW);  
        analogWrite(DIR_A, LOW);
        analogWrite(PWM_A,250);     
        delay(5000);   
        analogWrite(PWM_A, 0);     
       
            
  
}

Ad 2 
Na temat silnika dc że pochodzi z auta zdalnie sterowanego wielkości 1/10 . Jest to silnik bezszczotkowy który  posiada jedynie oznaczenia typu H-34039B088 22000RPM

Znalazłem go na stronie conrad.com skąd pochodzi model który chciałem wykorzystać z arduino. 
http://www.conrad.com/ce/en/product/2362...otor-EL007

Silnik dc jest podłączony do gniazda DC przeznaczonego do obsługi tego typu silników na płytce moto shield. 

Ad3
W kwestii zasilania to jest to bateria typu lipo o napięciu 7.4 v o pojemności 4200 mah  typowa dla aut elektrycznych zdalnie sterowanych  
 

Ad4.
A co do serwo to przyznam że nie zdawałem sobie sprawy że przy obciążaniu pobiera więcej niż 6 A . Zajrzałem do specyfikacji silnika dc i sporo mi to wyjaśniło że silnik dc jest jeszcze bardziej żarłoczny na ampery niż serwo. 
Dlatego w tej kwestii miał bym pytanie jaki serwo i silnik dc współgrało by z arduino i moto shieldem bez najmniejszych problemów ??  

Ad 5 
W kwestii vin to miałem namyśli wejście nie te które mieści się w okolicach gniazd do których podłącza się dwa silniki dc ale chodziło mi o VIN który umiejscowiony jest pomiędzy gniazdem GND ( w sekcji Power ) a A0 ( w sekcji Analog ) Wybacz ale trochę żle się wyraziłem wcześniej.
 
Odpowiedź
#4
No w sumie równie dobrze mogłeś gwoździa włożyć  Big Grin zamiast tego silniczka z auta , pobór podobny . A to jest silnik szczotkowy klasy 540 .

http://abc-rc.pl/Naped-DC-6V-kolo-65mm silniczek
http://abc-rc.pl/SG-92 serwo
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości