Skocz do zawartości

Silniki nie ruszają się.


Annax16

Pomocna odpowiedź

Cześć, mam problem dotyczący silników, gdy podłączam arduino i wgrywam mój kod, silniki na początku lekko drgają, potem cisza.

Nie wiem czy to spowodowane więc wklejam tu kod:

int kier = 8;
int pred = 9;
int pot = A0;
int odczyt;

void setup() {
 Serial.begin(9600);
pinMode (kier,OUTPUT);
pinMode (pred,OUTPUT);
pinMode (pot, INPUT);


}

void loop() {
digitalWrite (kier, LOW);
odczyt= analogRead(A0);
odczyt= map(odczyt, 0, 1023, 0, 255);
analogWrite (pred,odczyt);
Serial.println(odczyt);
delay (500);


}
Link do komentarza
Share on other sites

Gdy włączam "Monitor portu szeregowego" wyświetla się napięcie 4 i od czasu do czasu 3.

A gdy przekręcę potencjometr Arduino wyłącza się.

Nie wiem co mogę Tobie jeszcze podać.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Jaki Motor Shield dokładnie? Masz jego schemat?

Schematu nie mam, ale jego dokładna nazwa to: Arduino Motor Shield Rev3 Retail.

[ Dodano: 08-04-2017, 10:19 ]

#define E1 10  // prędkość silnika 1 
#define E2 11  // prędkość silnika 2 

#define I1 8  // Control pin 1 for motor 1 
#define I2 9  // Control pin 2 for motor 1 
#define I3 12  // Control pin 1 for motor 2 
#define I4 13  // Control pin 2 for motor 2 

int pot = A0;

void setup() {
 Serial.begin(9600);
pinMode(E1, OUTPUT); 
pinMode(E2, OUTPUT);  

pinMode(I1, OUTPUT); 
pinMode(I2, OUTPUT); 
pinMode(I3, OUTPUT); 
pinMode(I4, OUTPUT); 

}

void loop() {

 //pierwszy silnik
 analogWrite (E1 ,150);
 digitalWrite(I1, LOW); 
 digitalWrite(I2, HIGH); 

 //drugi silnik
 analogWrite(E2, 150); 
 digitalWrite(I3, LOW); 
 digitalWrite(I4, HIGH); 

Serial.println("Prawo");
delay (250);

Poprawiłem kod, teraz działa tylko prawy silnik.

[ Dodano: 08-04-2017, 10:45 ]

Kolejny wpis.

Zmieniłem trochę kod i poprzestawiałem liczby w #define bo były źle napisane i kod docierał tylko do jednego silnika.

Ale tym razem żaden silnik nie działa i muszę odpiąć minus od prawego silnika żeby lewy zaczął się kręcić, o co chodzi?

Link do komentarza
Share on other sites

Pewnie chodzi o zbyt małą wydajność prądową źródła. Bateria 9V nie ma wystarczającej wydajności (pewnie się już rozładowała) i może zasilić tylko jeden silnik. Trzeba by to wymienić na jakieś solidniejsze źródło zasilania, koszyk z bateriami AA albo jakiś akumulator, może też być zasilacz.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.