Dubbla H-bryggan - L298 Breakout Board - hemgjord (6 / 6 steg)
Steg 6: 4: e steg - Video och tester
Detta är min första test av "Dual H-bron" hemmagjord, med IC-L298N i en utbrytning styrelse.
Vagnen var kontrollerad av bluetooth (med "Blå kontroll" tillämpningen av Android market).
Varje gång vi träffar i kontrollerna (framåt eller bakåt) DC-motor kör för 1s, på detta sätt om vi träffar två gånger motorerna körs för 2s och så vidare.
För vänster och höger körs varje gång vi träffar kontroll, motorerna för 500ms. Denna temporization kan ändras i programmet nedan.
Se hela videon för mer information; Ahh ledsen för min engelska som jag studerar ännu...
/* definição de variáveis, constantes e valores int inA1 = 10; Stift för PONTE-H Arduino initiering loop huvudmannen göra programa om (Serial.available() > 0) {/ / om seriella data finns tillgängliga om (varC == 'U') {/ / flytta fram kör motorer
#####################################################################################
# Fil: BlueTooth_Bot_R1.pde
# Micro controller: Arduino UNO ou Teensy++ 2.0
# Språk: Ledningar / C /Processing /Fritzing / Arduino IDE
#
# Mål: En bluetooth kontrollerad vagn
#
# Funcionamento: Bara ett enkelt test av hem L298N utbrytning styrelse
#
#
# Författare: Marcelo Moraes
# Datum: 13/02/13
# Plats: Sorocaba - SP - Brasilien
#
#####################################################################################Detta projekt innehåller koden till det offentliga rummet.
Ändringen är tillåten utan förvarning.
*/
int inA2 = 11;
int inB1 = 5;
int inB2 = 6;
void setup() {
Seriell kommunikation initiering
Serial.BEGIN(9600);
set_motors(0,0);
}
void loop() {
char varC = Serial.read(); läsning av den seriella porten datan
set_motors(80,75);
Delay(1000);
set_motors(0,0);
}
om (varC == hade ") {/ / flytta bakåt
set_motors(-80,-75);
Delay(1000);
set_motors(0,0);
}
om (varC == "C") {/ / stoppad
set_motors(0,0);
}
om (varC == "R") {/ / sväng höger
set_motors(80,-80);
Delay(500);
set_motors(0,0);
}
om (varC == "L") {/ / sväng vänster
set_motors(-80,80);
Delay(500);
set_motors(0,0);
}
}
}
FIM DA COMPILAÇÃO
void set_motors (int left_speed, int right_speed) {
om (right_speed > = 0 & & left_speed > = 0) {
analogWrite (inA1, 0);
analogWrite (inA2, right_speed);
analogWrite (inB1, 0);
analogWrite (inB2, left_speed);
}
om (right_speed > = 0 & & left_speed < 0) {
left_speed = - left_speed;
analogWrite (inA1, 0);
analogWrite (inA2, right_speed);
analogWrite (inB1, left_speed);
analogWrite (inB2, 0);
}
om (right_speed < 0 & & left_speed > = 0) {
right_speed = - right_speed;
analogWrite (inA1, right_speed);
analogWrite (inA2, 0);
analogWrite (inB1, 0);
analogWrite (inB2, left_speed);
}
om (right_speed < 0 & & left_speed < 0) {
right_speed = - right_speed;
left_speed = - left_speed;
analogWrite (inA1, right_speed);
analogWrite (inA2, 0);
analogWrite (inB1, left_speed);
analogWrite (inB2, 0);
}
}