08-03-2017, 15:51
Witam
Mam problem z układem L293D ponieważ chciałem zrobić jeżdżącego robota i przy odległości od przeszkody poniżej 20cm powinien kierunek silnika się zmienić. program i połączenie działa ponieważ jako tako się porusza ale mam problem z zasilaniem.
Podłączyłem do urządzenia zasilanie 16v na wyjściu z L293D jest 9v i nie wiem czemu nie chcą się obracać te silniki.
Czy ktoś może mi pomóc?
Dołączam film w jaki sposób obracają się silniki.
Kod mojego programu :
Oraz połącznie z L293D(tylko zasilanie silników jest z zewnątrz i jest zmostkowany - (uziemienie)).
Mam problem z układem L293D ponieważ chciałem zrobić jeżdżącego robota i przy odległości od przeszkody poniżej 20cm powinien kierunek silnika się zmienić. program i połączenie działa ponieważ jako tako się porusza ale mam problem z zasilaniem.
Podłączyłem do urządzenia zasilanie 16v na wyjściu z L293D jest 9v i nie wiem czemu nie chcą się obracać te silniki.
Czy ktoś może mi pomóc?
Dołączam film w jaki sposób obracają się silniki.
Kod mojego programu :
Kod:
#include <NewPing.h>
#define TRIGGER_PIN 2
#define ECHO_PIN 3
#define MAX_DISTANCE 400
#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
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(E1, OUTPUT);
pinMode(E2, OUTPUT);
pinMode(I1, OUTPUT);
pinMode(I2, OUTPUT);
pinMode(I3, OUTPUT);
pinMode(I4, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
unsigned int uS = sonar.ping();
unsigned int odleglosc = (uS / US_ROUNDTRIP_CM);
Serial.println(odleglosc);
if(odleglosc < 20 && odleglosc >1){
analogWrite(E1, 150);
digitalWrite(I1, HIGH);
digitalWrite(I2, LOW);
Serial.println("Lewo");
delay(250);
}
else{
//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);
}
}
Oraz połącznie z L293D(tylko zasilanie silników jest z zewnątrz i jest zmostkowany - (uziemienie)).