LusoRobótica - Robótica em Português
Robótica => Projectos de robótica => Projectos em desenvolvimento => Tópico iniciado por: AcidDagger em 27 de Março de 2010, 18:36
-
Estou prestes a começar o meu primeiro projecto com arduino :b Estou so à espera que o material chegue da LR :)
Material:
Arduino
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Floja.lusorobotica.com%2F10-50-thickbox%2Farduino-duemilanove-com-atmega328.jpg&hash=5d20982f6b72233026e13cff87a3d8686382abb0)
http://loja.lusorobotica.com/microcontroladores/10-arduino-duemilanove-com-atmega328.html (http://loja.lusorobotica.com/microcontroladores/10-arduino-duemilanove-com-atmega328.html)
Dmotor Gear Box
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Floja.lusorobotica.com%2F81-429-thickbox%2Fdual-motor-gearbox.jpg&hash=84bbee32d611dada9f2fb621464945f9d8a45c25)
http://loja.lusorobotica.com/81-dual-motor-gearbox.html (http://loja.lusorobotica.com/81-dual-motor-gearbox.html)
TAMIYA 70096 OFF-ROAD TIRES
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Floja.lusorobotica.com%2F132-447-thickbox%2Ftamiya-70096-off-road-tires-2-tires.jpg&hash=f9a5c8c34fa45b4347fbc5c1a43f42c97e0b73ee)
http://loja.lusorobotica.com/132-tamiya-70096-off-road-tires-2-tires.html (http://loja.lusorobotica.com/132-tamiya-70096-off-road-tires-2-tires.html)
Phototransistor
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Floja.lusorobotica.com%2F64-196-thickbox%2Foptical-detector-phototransistor.jpg&hash=2ceb719cd59d40201f8e8228f98998d93f0c3873)
http://loja.lusorobotica.com/64-optical-detector-phototransistor.html (http://loja.lusorobotica.com/64-optical-detector-phototransistor.html)
Entre outros, mas este são os principais (que eu me lembre)
Esquema de montagem: (teste)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg33.imageshack.us%2Fimg33%2F465%2Fsmalluinoadvanced.jpg&hash=4778c53e0b83689e844c48120f9087223b3106d0)
Alguem me pode confirmar se o scketh que eu fiz está correcto?
Cumprimentos,
AcidDagger :)
-
Sim parece bem :)
-
Em principio as cenas chegam na segunda feira, mas amanhã já posto fotos do chassis :b
ja agora, aquele fototransistor da para o robot distinguir o preto do branco?
-
Sim, é esse um dos objectivos dele ;)
Tens aqui um tutorial que explica +- como funcionam: http://lusorobotica.com/index.php/topic,837.0.html (http://lusorobotica.com/index.php/topic,837.0.html)
-
Olha o AcidDagger :P Também vais começar na robótica? :D
Tens de arranjar um programazito para desenhar os esquemas melhor :) Esse está um pouco confuso. Vê estes posts:
http://lusorobotica.com/index.php?topic=2173.0 (http://lusorobotica.com/index.php?topic=2173.0)
Eu aconselho o Eagle para esquemas ;)
Tens também o Fritzing (http://lusorobotica.com/index.php?topic=242.0) que é mais simples e em certas partes melhor para este tipo de projectos :)
ps: Peço desculpa responder aqui, mas penso que serve de resposta a este (http://lusorobotica.com/index.php?topic=2164.msg21122#msg21122) post tambem ;)
Cumprimentos
-
Boas, claro ^^ algum dia tinha de me iniciar...
Isto com o tempo vai lá :b
Tenho que fazer o esquema de novo que esse tá uma shit xD
-
Nessa lista de coisas que apresentaste não vejo o driver para os motores (L293D ou equivalente), e sem ele não podes controlar os motores.
-
Mas ele tem no esquema, por isso não se deve ter esquecido.
Não percebi uma coisa. Porquê 3 fontes no esquema? São 3 pilhas ou algo assim? :D
-
Sao, 3 caixas de 2 pilhas. 3x2= 6pilhas 6x1.5=9v
Eu nao me esqueci da H-Bridge, so me esqueci de a por no post xD
Mas ta no esquema. Quanto ao eagle nao percebo nada daquilo
-
Oras boas noites,
vou buscar a encomenda amanha aos ctt;
e enquanto espero pelo arduino decidi ir fazendo o meu primeiro código :P
int ledPin = 13; // led no pin 13
void setup ()
{
pinMode(13, OUTPUT); // output pin 13
}
void loop()
{
digitalWrite(13, HIGH); // serve para ligar o pin 13
delay(1000); // atraso 1s
digitalWrite(13, LOW); // desliga o pin 13
delay(1000); // como ta na função loop o led pisca de 1 em 1s
}
Estará correcto? :b
-
O famoso "Hello World" :)
Sim está correcto ;)
-
Quero começar por baixo :b
Assim as quedas sao mais pequenas :)
-
Quero começar por baixo :b
Assim as quedas sao mais pequenas :)
Fazes tu muito bem para poderes aprender a levantar-te ;)
-
PWM é so nos pinos analogicos certo? o 13 é digital correcto?
cumps, :D
-
PWM é só nos pinos que dizem pwm por baixo do numero, os analógicos são os onde podes fazer leituras com a ADC.
-
Noob question
;D
-
Todas as perguntas têm o direito de ser feitas, não tenhas vergonha em perguntar seja o que for, estamos todos aqui para aprender-mos uns com os outros.
-
vergonha? eu? ;D
Amanhã vai ser enviado o arduino, já ca tenho tudo. So falta mesmo o arduino, espero que sexta ja ca esteja :P
-
Boas Tardes ;D
Ontem adientei alguma coisa enquanto o arduino não chega. Montei a gear box e fiz a base para o robot...
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg534.imageshack.us%2Fimg534%2F6017%2Fdsc00214l.jpg&hash=f7ff091268d5715d13f5080af82a4578d1ca006a)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg706.imageshack.us%2Fimg706%2F2734%2Fdsc00216qv.jpg&hash=9039c5d9f23f247ec1073f85cedde1ff573041fc)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg156.imageshack.us%2Fimg156%2F1724%2Fdsc00218jq.jpg&hash=07d6bbfde13e2dd071e91f9316b65e10b4077cb6)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg405.imageshack.us%2Fimg405%2F715%2Fdsc00220k.jpg&hash=e781d58db6cd1d80597229fe66470b8b557a49ca)
Desculpa lá a má qualidade mas foram tiradas com o telemovel :/
Bem, agora uma pergunta. Que baterias/pilhas usar para a alimentar os motores, arduino e possiveis sensores? ::)
Cumprimentos, ;D
-
Começa por 4 pilhas AA ;)
A base está com bom aspecto!
-
A unica caixa de pilhas que tenho é de 6 e vou utilizar essa. Mas meto as 6 pilhas AA ou uso a 4 em serie e duas em paralelo? :)
A base do robot ainda precisa de uma limadela... :b
-
6 pilhas dá 9V o que é demasiado para esses motores.
Usa apenas 4 pilhas, e não metas umas em série e outras em paralelo que ainda te metes em alhadas ;)
-
Não concordo com o TigPT e acho que deves meter 4 em série e 2 em paralelo e se te meteres em alhadas hás-de aprender alguma coisa com isso ;)
-
Bem, os motores funcionam entre 3 e 6v. Então porque não por 3 em serial ligadas em paralelo com outras 3 em série? Assim fico com 4.5v que ja deve dar para os motores... E o arduino opera com que voltagem?
Cumps ;D
-
Com os 4.5 o Arduino até funcionava o problema é que é nos limites dos limites e o que vai aocntecer é que os motores no arranque vão pedir mais corrente e isso vai fazer com que a tensão baixe e o atmega faça reset e depois não sabes porque não funciona.
O Arduino funciona entre 7V e 12V recomendados se ligares esta tensão no jack de entrada ou no Vin, ou então os tais 4.5-5V no pino 5V.
-
Entao e se meter 9v no arduino e um regulador de voltagem para os motores? ou entao se alimentar os motores pelo arduino? :)
-
Sim,é uma boa ideia.
-
Mas qual delas? ;D a primeira ou a segunda? :)
-
O metRo_ referia-se à opção de 9V e regulador de 5V para os motores.
-
9V no Arduino e tirar os 5V do Arduino para os motores :)
-
Decidam-se ;D
-
Dissemos o mesmo ;)
-
Pelo que entendi deve ser ligar o mais das pilhas ao Vin e o menos ao GND. E a alimentação dos motores é feita no pin do arduino de 5v certo?
-
sim :)
-
Ora boas, depois de já ter lido algumas coisas e fazer algumas experiências ja fiquei um pouco mais familiarizado com o arduino:
Então segue-se as fotos do meu bot ;D
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00223.jpg&hash=4aef438399d51a5c81a29a6599e92a92bcb42593)
Aqui a placa que segura o arduino:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00221.jpg&hash=f9feda8d3f98d76156d4c78f9f1f446feabb0bf3)
parte de tras:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00227.jpg&hash=d94b9960e54578c5348d989b4f9d78eaeeeb1160)
Frente:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00237.jpg&hash=1a5905387f8cb791151d5e71e3cf93de1b8a5199)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00234.jpg&hash=84addbbf67c5eefb2c6478d46ec407d1d9f03461)
Lado:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00226.jpg&hash=62871431cdf37b66a2a8b14591d41225b7f08f87)
Cima:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fserial-gaming.org%2Fupload%2Fimages%2Fdsc00225.jpg&hash=ce74160fb5f1b263424476ffaf46eda8a137fa6e)
Bem, ainda lhe falta muita coisa.
Material que está para chegar:
-Sensor sharp + servo
-QRD1114 para o robot nao cair, ou seja para saber quando nao existe "chao"
-QTR-8RC Reflectance Sensor Array para seguir linhas
Digital Temperature Sensor Breakout - TMP102 para indicar a temperatura ambiente
Basic 16x2 Character LCD
Quando chegar o material dou novidades :b
Tenho de fazer uns videos do bicho a mexer-se :P
Cumps
-
Está muito bom. Essas rodas são brutais :o ;)
-
pois sao, so tem um defeito ::) é na zona em que a borracha esta em contacto com o plastico (amarelo). Não agarra bem ai. mas nada que um pingo de cola nao resolva.
De resto 5*, acho que foi uma boa compra.
-
está com bom aspecto, o que é aquilo por baixo da madeira e do arduino? battery pack?
-
Sim, é a caixa de pilhas :) Só que ainda não estão ligadas :P
-
Como está este projecto?
-
um pouco mais avancado, e já tenho algum codigo feito... logo meto fotos ;D
-
Aqui está
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg692.imageshack.us%2Fimg692%2F3691%2Fimg0962sx.jpg&hash=3b3587a532b931bae0203a8035d735349efbdf4a)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg143.imageshack.us%2Fimg143%2F9899%2Fimg0959r.jpg&hash=81d8a166f052f57a92cf2e0770c7d35251ad76d5)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg697.imageshack.us%2Fimg697%2F599%2Fimg0956r.jpg&hash=4fa2f2feb8f746fae77079e270c8904665a1c57f)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg204.imageshack.us%2Fimg204%2F1742%2Fimg0951h.jpg&hash=46d01376c86777c4606ab60d53914d3cda8efbd9)
O código vem mais logo com um video :b
-
/*
**************************************************************
Smalluino Advanced development code
v1.0 14/05/2010
by André Delgado
**************************************************************
*/
//inputs
#define sharp 2 // sensor ir no pino 2
int average = 0;
//outputs
#define led_vermelho 12 // led vermelho no pino 13
#define led_verde 13 // led verde no pino 12
int motor_esquerdo [] = {5,6}; // motor esquerdo nos pinos 5 e 6
int motor_direito [] = {9,10}; // motor direito nos pinos 9 e 10
int Speed = 0;
void setup () {
int i;
for(i = 0; i < 2; i++) {
pinMode(motor_esquerdo[i], OUTPUT); // motor esquerdo
pinMode(motor_direito[i], OUTPUT); // motor direito
}
pinMode(led_verde, OUTPUT);
pinMode(led_vermelho, OUTPUT);
digitalWrite(led_verde, HIGH); // led de aviso de movimento
delay(1000);
digitalWrite(led_verde, LOW); // blink
delay(1000);
digitalWrite(led_verde, HIGH); // blink
delay(1000);
digitalWrite(led_verde, LOW); // desligar o led de aviso
delay(20);
}
void loop () { // runs over and over
ler_sharp();
if(average > 200){
digitalWrite(led_vermelho, HIGH);
andar_tras();
delay(200);
virar_esquerda();
delay(110);
}
else {
digitalWrite(led_verde, HIGH);
andar_frente();
}
}
void ler_sharp() {
average = analogRead(sharp);
delay(20);
}
void motor_stop(){ // parar os motores
digitalWrite(motor_esquerdo[0], LOW);
digitalWrite(motor_direito[1], LOW);
digitalWrite(motor_direito[0], LOW);
digitalWrite(motor_direito[1], LOW);
delay(25);
}
void andar_frente(){
digitalWrite(motor_esquerdo[0], LOW);
digitalWrite(motor_esquerdo[1], HIGH);
digitalWrite(motor_direito[0], LOW);
digitalWrite(motor_direito[1], HIGH);
}
void andar_tras(){ // para trás
digitalWrite(motor_esquerdo[0], HIGH);
digitalWrite(motor_esquerdo[1], LOW);
digitalWrite(motor_direito[0], HIGH);
digitalWrite(motor_direito[1], LOW);
}
void virar_esquerda(){ // esquerda
digitalWrite(motor_esquerdo[0], LOW);
digitalWrite(motor_esquerdo[1], HIGH);
digitalWrite(motor_direito[0], HIGH);
digitalWrite(motor_direito[1], LOW);
}
void virar_direita(){ //direita
digitalWrite(motor_esquerdo[0], HIGH);
digitalWrite(motor_esquerdo[1], LOW);
digitalWrite(motor_direito[0], LOW);
digitalWrite(motor_direito[1], HIGH);
}
Estou a usar este codigo... mas os motores nao estão a fazer o que eu lhes mando :S
Alguem poderia corrigir o codigo? :P
Cumps
-
Quanto tempo achas que o arduino demora a executar uma instrução? Por exemplo aqui:
void andar_frente(){
digitalWrite(motor_esquerdo[0], LOW);
digitalWrite(motor_esquerdo[1], HIGH);
digitalWrite(motor_direito[0], LOW);
digitalWrite(motor_direito[1], HIGH);
}
Tu aqui não vais ver rigorosamente nada... isto executa tão rápido que nem os motores sabem o que aconteceu... terás de por um delay() aqui... É como nos leds. se tu fizeres digitalWrite(ledPin,HIGH); sem ser dentro de um ciclo infinito não vês absolutamente nada. o sinal é tão rápido (16MHz de freq) que não vês nada... terás de por um delay ou qualquer coisa do género... Nesta função e nas outras...
Para começar recomendo a testares uma coisa de cada vez... coloca-o só a andar para a frente durante 5 segs por exemplo... Só quando conseguires ter isso na perfeição é que vais para as outras funções...
Testas cada uma delas individualmente e só no fim é que intercalas todas as funções...
Percebeste o que quis dizer?
-
Ora viva AcidDagger,
Já experimentaste o Arduino ligado às pilhas? Se sim, quantas pilhas estás a usar (e de que tensão cada)?
Bom trabalho!
-
Esperimenta tirar o sensor, e fazer só um código com delays, tipo, frente, trás, direita esquerda, se não funcionar algo está mal ligado...
-
ta tudo bem ligado ;) experimentei o codigo do smalluino 1.5 e ta tudo ok
acho que é mesmo o que o oxygen disse. porque eu experimentei com dois leds a simular os motores e com os leds eles ligam/desligam quando o sensor detecta obstaculo.
Cumps
EDIT: Já agora alguem me dá um exemplo de um codigo: o robot andar sempre para a frente mas quando o sensor detectar algo o robot fique a andar sempre para tras.
So para experimentar e desenvolver a partir dai :P
-
Podes fazer através de uma interrupção... mas atenção que aí não podes usar a função delay()
Exemplo do código: Vou usar uma interrupção supondo que o sensor envia um sinal a High para o arduino.
Consulta Isto: http://www.arduino.cc/en/Reference/AttachInterrupt (http://www.arduino.cc/en/Reference/AttachInterrupt)
void andarParaFrente()
{
while(1){
attachInterrupt(0,andarParaTras,RISING); // Supondo que o sinal do sensor está sempre a LOW. O que esta interrupção faz é se detectar um sinal a subir (RISING) vindo do sensor, ele executa a função andarParaTras. o número "0" indica a linha de interrupções no pino 2.
// Aqui colocas as funções para o carro andar para a frente. Tem se ser dentro do ciclo infinito.
}
}
void andarParaTras()
{
While(1)
//Funções de andar para tras em ciclo infinito
}
-
boas alguem tem o programa do smalluino1.5
-
int motor1Pin1 = 5; // Ponte H
int motor1Pin2 = 6; // Ponte H
int motor2Pin1 = 10; // Ponte H
int motor2Pin2 = 11; // Ponte H
void setup() {
// Definir os pinos outputs:
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
}
void loop() {
//Vamos testar o gajo :)
digitalWrite(motor1Pin1, HIGH); // Este pino HIGH, em conjunto com o de baixo LOW
digitalWrite(motor1Pin2, LOW); // Fazem com que o motor da direita ande em frente
digitalWrite(motor2Pin1, LOW); // Este pino LOW, em conjunto com o de baixo HIGH
digitalWrite(motor2Pin2, HIGH); // Fazem com que o motor da esquerda ande em frente
delay (1500); // Tempo que vai ficar a fazer esta função
//Agora é inventar....fazer como quiserem...
//O ideal seria utilizar a funçao AnalogWrite para controlar a velocidade por PWM
//Mas o digitalWrite torna as coisas mais simples
//O inconveniente, é que anda sempre á velocidade máxima
//O resto do código vai fazer o Smalluino Mexer :D
//Dúvidas: www.lusorobotica.com (http://www.lusorobotica.com)
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
delay (1500);
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
delay (1500);
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
delay (1500);
}
-
ja fiz o codigo para uma primeira versao, amanha posto ;D
-
estava a experimentar codigos mais complexos e vi que os motores nao estavam a seguir as funçoes que eu lhes determinava.
Acho que a ponte H ta meio marada... ::)
const int motor1 = 5;
const int motor2 = 6;
const int motor3 = 10;
const int motor4 = 11;
void setup () {
pinMode(motor1, OUTPUT);
pinMode(motor2, OUTPUT);
pinMode(motor3, OUTPUT);
pinMode(motor4, OUTPUT);
}
void loop () {
digitalWrite(motor1, HIGH);
digitalWrite(motor3, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor4, LOW);
delay(5000);
digitalWrite(motor1, LOW);
digitalWrite(motor3, LOW);
digitalWrite(motor2, LOW);
digitalWrite(motor4, LOW);
delay(5000);
}
quando meto este codigo a correr os motores nao fazem o loop, ou seja chega ao fim e nao volta ao incio, ou entao ficam a andar para a frente infinitamente...
È da ponte H? ???
-
Não podes levar os dois punos da ponte H high, se não me engano isso vai fazer curto á bateria, mas talvez a ponte tenha alguma coisa para não deixar isso acontecer
é assim:
pino 1 high
pino 2 low
^^será num sentido
pino 1 low
pino 2 high
^^será no sentido oposto
pino 1 low
pino 2 low
^^ será parado.
-
como eu tenho os pinos acho que o codigo ta bem
-
Ola,
Antes de tudo parabens pelo teu projecto, vou estar atento para ver o video dele a andar 8). Tambem estou a espera de algum material para fazer o meu primeiro projecto (2 servos full rotation). Estou a pensar utilizar 2 servos como motores.
Ver o teu projecto levantou-me uma duvida, quais são os pros e contras entre utilizar 2 servos ou entao 2 motores DC ??? Qual é a melhor escolha ??? ???
Obrigado e continuação de bom trabalho.
-
Motores DC
Pros:
Baratos
Contras:
Precisam de Ponte H
Precisam de gear-box
Servos;
Pros:
Ligação facil
Nao precisam de gearbox
Contras:
Caros e tens de fazer um mod para ele rodar 360º
-
É são lentos, motores é para todos os gostos, lentos rápidos, etc.
-
Obrigado pelos esclarecimentos, a minha ideia era utilizar o servos porque pareciam mais faceis de utilizar para alguem com os meus conhecimentos mas a ideia seria mais tarde evoluir para os motores DC. Ainda nao tinha comprado os servos porque estavam esgotados na loja lusorobotica, pelo contrario todos os componentes para a solução motores DC estão disponiveis e pelo mesmo preco ate posso comprar as rodas ;D
Estou a pensar então fazer a seguinte encomenda:
-Dual Motor GearBox
-H-Bridge Motor Driver 1A
-Tamiya 70096 Off-Road Tires (2 tires)
-LM7805 5V Regulator (Pelo esquema parece que preciso disto) :-\
Acho que isto deve ser tudo o que preciso ??? vou estudar melhor o esquema colocado neste topico (Obrigado AcidDagger) mas não sei se me vou desenrascar sozinho :-[
-
Nós tamos aqui para ajudar! :)
COmo ponte H e visto que tas a começar podias usar uma http://loja.lusorobotica.com/componentes/15-h-bridge-motor-driver-1a.html (http://loja.lusorobotica.com/componentes/15-h-bridge-motor-driver-1a.html)
Que é muito mais barata :)
Sugiro tambem que veijas isto http://lusorobotica.com/index.php?topic=575.0 (http://lusorobotica.com/index.php?topic=575.0) ;D
-
ola
Estou a usar um pouco do teu codigo para o meu robo mas tenho uma duvida, o robo quase que nem se mexe quando digo para virar ou para a direita ou para a esquerda parece que nem força tem.
sera que o tempo de delay e pouco estou a testar com 5000ms ou mais...
ps: estou usar o codigo do rafhit
-
lol o codigo n é meu! é do fifas :P
mas tmb tou a ter o mesmo prob do andnobre!
tou a usar o kit Mr. Basic da DAGU...tipo se levanto o carrito no ar, ele la faz tudo que é suposto fazer...mas quando o ponho no chão ele caga-se todo pa andar e o l293d aquece mt! tipo ta a criar mt amperagem mas em cima do mr.basic so esta uma breadbord com a ponte h e o arduino....n era suposto ser do peso, ele havia de aguentar com isso tudo...digo eu lol
-
O mr basic deve ter motores baratos, costumam puxar muitos amps, a ld293d aguenta 1amp em continuo por canal?
Eu fiz assim para os motores da dual gearbox:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi40.tinypic.com%2F2cxzya9.jpg&hash=60dedc1031c7acf37ec3144354f67a784e03bb7b)
Assim não aquece(tanto), aquecimento é normal.
-
eu meti um dissipador por cima :P Tenho um amigo novo, uma v2 do meu Smalluino Advanced. :P
Entao vamos passar as fotos, o chassis ainda nao esta pronto, tem cerca de 10x10x10cm ;)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg707.imageshack.us%2Fimg707%2F3316%2Fimg0914yo.jpg&hash=934e8eaf920311c705a2190b8db51b88a30479eb)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg535.imageshack.us%2Fimg535%2F8786%2Fimg0917x.jpg&hash=bb6765ea3ce4b1c329719b5168f6189566cdd4f1)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg37.imageshack.us%2Fimg37%2F7793%2Fimg0918lw.jpg&hash=ab62ef460f962e02897f162f17b6a59d243b3468)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg685.imageshack.us%2Fimg685%2F6882%2Fimg0919s.jpg&hash=261e237bd1566985876ca091e088c8c1e46b8aab)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg189.imageshack.us%2Fimg189%2F266%2Fimg0920s.jpg&hash=23eed1224764a97eb62268ccae13a58df8b3c31a)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg180.imageshack.us%2Fimg180%2F8639%2Fimg0921h.jpg&hash=4f1976e3485021a210249ce4832682fee7172541)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg243.imageshack.us%2Fimg243%2F2337%2Fimg0922s.jpg&hash=8047708418c05666dbec8bf5fee0dea5d39d297c)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg18.imageshack.us%2Fimg18%2F8827%2Fimg0924dq.jpg&hash=8e4ba4be48b909c91831ab0865fcbbcfa7ef8ccf)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg121.imageshack.us%2Fimg121%2F1319%2Fimg0927od.jpg&hash=fddc4a525c9ac5cebc0c7aed5bc4342998fdf4b3)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg192.imageshack.us%2Fimg192%2F2491%2Fimg0928v.jpg&hash=1245d6b7d3c3e64797bc3adf5329a05e823ad343)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg535.imageshack.us%2Fimg535%2F1217%2Fimg0929c.jpg&hash=8c767828b13bf2e5db4280614892e1623542c83d)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg375.imageshack.us%2Fimg375%2F9013%2Fimg0930m.jpg&hash=97935325012d912805bef2de523d77a1b0b09367)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg202.imageshack.us%2Fimg202%2F9867%2Fimg0931v.jpg&hash=b988e5517031c05d8f7abf7acf855ff557b464c6)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg822.imageshack.us%2Fimg822%2F6755%2Fimg0932.jpg&hash=5906845bdf5be3801b41ef040caba8384fd68732)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg251.imageshack.us%2Fimg251%2F2341%2Fimg0933b.jpg&hash=bf58e6a2949cba9811cb1e6e810da6ff28d8df6f)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg692.imageshack.us%2Fimg692%2F2968%2Fimg0934b.jpg&hash=f15a1d940d3a2e4348ccfb689c3811b457a3bdbb)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg809.imageshack.us%2Fimg809%2F2224%2Fimg0935.jpg&hash=689715fba0d3428f3f791ef26112f27c66cf06e1)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg411.imageshack.us%2Fimg411%2F5194%2Fimg0936u.jpg&hash=f70439e9459dd76f6640e50db83e8c0b7ea1e8b5)
O meu arduino gosta de pousar para a camera :P
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg202.imageshack.us%2Fimg202%2F9651%2Fimg0937qk.jpg&hash=32b41a30199d778b6cf7cb729b1a29d82f49d8c1)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg202.imageshack.us%2Fimg202%2F2748%2Fimg0938x.jpg&hash=032e1ebf215be791d7db1bad4de08925b5f11897)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg718.imageshack.us%2Fimg718%2F3360%2Fimg0939k.jpg&hash=19979ddf51859db689699d63ee87d1c664823bbc)
-
Wow.. essas rodas ficam lindas com essa carcaça de malha de metal... muito muito bom. Está com óptimo aspecto.
Podemos vê-lo em acção?
Conseguiste que fique em 10x10 de tamanho? Era ideal para sumo mini!
-
neps, o chassis é 10x10, as rodas e que passa meio cm de cada lado, e nao da mesmo para encurtar mais :S
Logo vai ser noite de codigo :P
Agora voces perguntam tanta foto, mas nao veijo sensores nenhuns ???
Entao vamos lá
Led e receptores ir na parte de baixo para seguir linhas e detectar se o chão "acaba", para nao cair.
Sensor sharp para detectar obstaculos,
Breadboard shield, para poder testar prototipos :P
tambem vai ter um modo nao autonomo controlado pelo pc a partir de um gamepad :P
Obrigado ao fifas por me dar o comando do ubunto para inicializar a comunicação por serial
Qualquer perguntas estejam a vontade ;D
-
É uma pena estas engrenagens não terem menos 1~2cm de largura para o robot ficar 10x10.
Ainda tenho que ver se consigo fazer um mini sumo com estas gearboxes.
Está muito bom, e gostei mt das fotos!
-
estas rodas tem uma aderencia do catano :P
Acho que qualquer mini sumo ficaria logo derrotado ;D eheheh xD
-
Está altamente, com essas rodas de diametro pequeno tem mais força ainda.
Podes sempre cortar um pouco do eixo da gearbox, sempre tiravas esses 5mm de cada lado.
que camera usaste para as fotos? até faz uns macros jeitosos.
-
A maquina nao é nenhuma DSLR, é uma Canon Ixus 700, 7,2Mp + Tripe
As fotos ao arduino foram tiradas com ISO 50 :P
-
esse robô tá muito bonito ;)
-
Por enquanto e so um monte de peças empilhadas ;D
-
Está muito fixe ;)
Onde é que arranjaste essa placa de metal?
-
Eu sou modder... :P isto é da AC Ryan e chama-se mesh
-
Fixe,
mas isso é fácil de arranjar por cá? ???
-
Numa serralharia devem ter desse tipo de placa, é chapa perfurada, á com vários diametros de furos, diferentes espaçamentos, diferentes espessuras e tanto há em aluminio como em ferro/aço e até inox, compras de aluminio.
Tambem há delas que os furos são hexagonais e coisas assim, mas é mais complicado de arranjar.
-
Ok, obrigado pela dica :)
Quero ver se arranjo umas coisas dessas, tou farto de plásticos :P
-
Com umas calhas de aluminio e uns perfis em L e em U, um berbequim, parafusos porcas e varões roscados já fazes muita coisa.
-
ó AcidDagger, mesh da AcRyan num robô? Robô de luxo ein? ;D já vale mais só por causa disso :D
Não conseguias arranjar uma mais barata num Aki, ou Leroy Merlin ou assim? Tenho ideia que a da ACRyan é carota
-
Era a que tinha por aqui :) , é bastante leve :P
-
Ola a todos, estou a precisar de uma ajudinha se for possivel ;D
Em baixo esta uma fotografia com as ligações que fiz para testar os meus motores (são iguais aos utilizados neste topico pelo AcidDagger). O problema é que o arduino esta sempre a reiniciar :'(
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg808.imageshack.us%2Fimg808%2F3894%2Fpowerproblem.jpg&hash=94167f7a18ed7a8c9b30afa5aef72826be9d9b35)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg821.imageshack.us%2Fimg821%2F7971%2Fimag0061o.jpg&hash=b552c6f197a5508932d3ae64569256ef3c0fecf5)
Ainda pensei abrir um novo topico para expor o meu problema mas penso que tem tudo a ver com o que foi falado nas primeiras páginas deste, em que se discutia como alimentar os motores.
Pelo que consegui perceber segui todas as indicações dadas excepto o regulador de 5v.
Se alguem souber o que é que esta errado aqui, qualquer ajuda é bem vinda.
Obrigado.
Esqueci-me de dizer que com relação as ligações da ponte e ao codigo parece estar tudo a funcionar porque consigo por os motores a andar para frente, tras, virar, parar etc.... pelo menos ate o arduino reiniciar misteriosamente.
-
O arduino reinicia porque nao tem alimentação suficiente :)
Resolução simples, 1,5v + 1,5v +1,5v = 4,5v
O arduino para ser alimentado por ai precisa do minimo de 7v
Experimenta alimentar o arduino no pino 5v e gnd
Resolução mais complicada, DC Bost ou lá como se chama, para teres os 5v a partir da caixa de pilhas
EDIT: As tuas pilhas nem sao de 1,5v sao 1,2v. Mais me ajudas xD
Arranja uma caixa de 4 pilhas que resolves a questao :P
-
Pois, precisas de pelo menos um battery pack de 4 pilhas, se forem recrregáveis, dá, pois quando carregadas a tensão é muito perto dos 1.5v, os 1.2 é depois de algum uso.
-
Poix, na fotografia nao da para ver bem mas se virem bem a legenda aquilo é um pack de 6 pilhas.
Com 6 devia dar não devia ????
-
Devia sim,
a não ser que estiverem muito gastas?
esperimenta desligar os motores, e diz se ainda faz reset.
-
Obrigado pela resposta, se desligar os motores já não faz reset, alias o programa que estou a utilizar para testar os motores funciona com dados da porta de serie ou seja quando liga esta tudo parado e tubo bem se enviar a letra "f" anda para a frente se enviar "b" para tras e por ai fora .... o que acontece é que por exemplo quando digo aos motores para andar para a frente eles arrancam e depois o arduino reinicia isto esta a acontecer seja ligado com as pilhas seja ligado por USB.
Os fios dos motores não estão soldados estão apenas engatados nas patilhas dos motores fiz isto para os experimentar, não sei se é suposto soldar os fios ou se é melhor arranjar algum tipo de encaixe, achas que pode ser disto ????
-
Consegues tirar uma foto mais High Q. às ligações na breadboard?
Tira com luz natural sff ;)
-
Tens razao, tirei a fotografia ontem a noite e ficou muito mal ;D . Adicionei uma melhor em baixo da outra com os detalhes da ligação.
Acho que esta tudo bem ligado mas .... os motores vao para os pinos 5,6(Fios Amarelos) e 10,11(Fios Azuis) do arduino
Obrigado.
-
Não queres disponibilizar o codigo do teu robot? :P
-
Não é do código...
O problema é que estás a alimentar os motores com os mesmos 5v da lógica.
Tens de meter no pino mais à direita em baixo, nao os 5v, mas directamente a bateria.
Vais ligar esse pino do integrado ao pino Vin do Arduino e vais dizer se continua a festa to restart.
-
Muito muito muito muito obrigado, retirei aquele jumper cinzento e liguei esse pino do CI ao vin do arduino e funcionou perfeitamente.
Neste momento esta a funcionar ligado por USB ou seja o vin deve ter cerca de 5v mas quando ligar o pack das baterias o vin vai ter perto de 9v acho que os motores não vao gostar certo ??? devo usar um regulador para 5v ??? se sim como é que o ligo.
Com relação ao codigo, claro que o posso disponibilizar ;D para ja só serve para testar os movimentos e velocidades dos motores mas assim que conseguir montar isto a ideia é fazer um segue linhas com controlo PID depois tambem posso dar esse codigo.
Aqui vai o codigo que fiz para os teste
// Definiçao de pinos dos Motores
int motor_left[] = {5,6};
int motor_right[] = {10,11};
int max_vel = 70; // EStou a utilizar Pinos PWM em vez de escrever HIGH coloco os motores a 70.
void setup() {
Serial.begin(19200);
Serial.println("Inicio");
//Inicializar Pinos Motores
int i;
for (i=0;i<2;i++) {
pinMode(motor_left[i],OUTPUT);
pinMode(motor_right[i],OUTPUT);
}
motor_stop(); //Para os motores
}
void loop() {
/***********************************************************************
//Bloco Degub Motores com comandos serial */
if (Serial.available()) {
int val=0;
val=Serial.read();
if (val=='f') {
drive_forward(); // Andar para a Frente
}
if (val=='b') {
drive_backward(); //Andar Tras
}
if (val=='l') {
turn_left(); // Virara Esquerda
}
if (val=='r') {
turn_right(); // Virar Direita
}
if (val=='s') {
motor_stop(); // Parar
}
delay(500);
}
}
// Funcoes para Gestão dos Motores
void motor_stop() {
digitalWrite(motor_left[0],LOW);
digitalWrite(motor_left[1],LOW);
digitalWrite(motor_right[0],LOW);
digitalWrite(motor_right[1],LOW);
delay(25);
}
void drive_forward() {
analogWrite(motor_left[0],max_vel);
digitalWrite(motor_left[1],LOW);
analogWrite(motor_right[0],max_vel);
digitalWrite(motor_right[1],LOW);
}
void drive_backward() {
digitalWrite(motor_left[0],LOW);
analogWrite(motor_left[1],max_vel);
digitalWrite(motor_right[0],LOW);
analogWrite(motor_right[1],max_vel);
}
void turn_left() {
digitalWrite(motor_left[0],LOW);
analogWrite(motor_left[1],max_vel);
analogWrite(motor_right[0],max_vel);
digitalWrite(motor_right[1],LOW);
}
void turn_right() {
analogWrite(motor_left[0],max_vel);
digitalWrite(motor_left[1],LOW);
digitalWrite(motor_right[0],LOW);
analogWrite(motor_right[1],max_vel);
}
-
Os reguladores de tensão 7805 só aguentam 1.5 amp, os motores devem puxar mais ou menos isso cada um.
Pode é ter power supply separado, pilha de 9v para o arduino, e pilhas AA para os motores, separado do arduino.
-
Poix, na fotografia nao da para ver bem mas se virem bem a legenda aquilo é um pack de 6 pilhas.
Com 6 devia dar não devia ????
O problema é que estás alimentar os motores através do Arduino, e aqueles 5V onde estão ligados os motores são os mesmo 5V que alimentam o Atmega, no arranque os motores têm um pico de corrente e como o regulador não deve conseguir fornecer vai ter uma queda de tensão e isso faz com que o micro-controlador reinicie. Tenta colocar uns condensadores electrolíticos na breadboard onde estão os 5V e o GND. Ou então alimenta os motores directamente do pack! Não dos 7,2V mas tiras de lá do meio um fio com cerca de 5V.
-
Os reguladores de tensão 7805 só aguentam 1.5 amp, os motores devem puxar mais ou menos isso cada um.
Pode é ter power supply separado, pilha de 9v para o arduino, e pilhas AA para os motores, separado do arduino.
Os LM7805 só aguentam no máximo 1A contínuos e já convém ter um dissipador
Para 1.5A contínuos tem o LM317.
Cumps
-
Podes alimentar esses motores pequenos a partir de 7.2V (os motores devem ser de 3V), mas tens que usar PWM e manter o ciclo activo baixo (analogWrite(X) com X < 100).
Quanto aos RESET, se continuares a alimentar os motores pelos 5V do Arduino, podes nunca conseguir vir a resolver definitivamente esse problema. O teste "mais duro" é prenderes o veio dos motores (não os deixar rodar) e ligá-los e desligá-los repetidamente (uma só vez pode ser suficiente).
Mesmo que consigas resolver esse problema metendo um montão de condensadores, ele vai voltar a aparecer quando as pilhas começarem a ficar um bocadinho mais fracas. Resumindo, alimentar esses motores dos 5V do Arduino é pedir problemas e instabilidade.
Já agora, para passar 1A continuo, um 7805 tem que ter um dissipador de calor enorme.
-
Agradeco desde ja os conselhos de todos, já deve ter dado para perceber que é a primeira vez que faço isto e os meus conhecimentos de electronica são muito limitados.
Não sei se viram mas acho que ja consegui dar um pequeno passo em frente segui as indicações do microbyte (ver página anterior). Agora tudo funciona bem ligado por USB mas estou com medo de testar com as pilhas porque acho que o vin do arduino vai ficar com 7,2v e os motores so deviam levar com 3 a 6v. Tenho aqui dois 7805 se colocasse um entre o vin e o CI acho que iria baixar tudo para 5v e ficava tudo bem. Disse alguma coisa estupida ?? Os ultimos comentarios dão a entender que não é boa ideia porque vai aquecer muito por isso acho que estou meio perdido..... :-\
-
Já agora, para passar 1A continuo, um 7805 tem que ter um dissipador de calor enorme.
Isso é muito relativo.
Depende da tensão que lhe poes na entrada.
Tu sabes que P = U * I, imagina que o I=1A e que tens uma tensao de entrada de 7V logo U = (7-5)=2V
Logo P = 2 * 1 = 2W
Com o encapsulamento T0-220 e recorrento ao datashet no gráfico da potencia máxima ve-se que o integrado aguenta a 25ºC de temp ambiente 2,5W sem dissipador.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg576.imageshack.us%2Fimg576%2F4146%2F7805.jpg&hash=b5e6d08c7e9825ec7738bafc6b5bebaa6c211e1d)
Regra regal eu se usa-se a consumir 1A punha um dissipador, mas pelos vistos não é necessário.
-
FET, estás a ler mal o gráfico. Repara que os 2.5W ficam acima da linha.
De qualquer forma, se puseres um 7805 a dissipar 0.25W continuamente, ele aquece ao ponto de nem lhe conseguires pôr os dedos em cima. Agora imagina com 2.5W.
Na verdade este integrado não se queima com temperatura, porque ele chega a um ponto que desliga sozinho até arrefecer o suficiente.. Só que isto acontece muito depressa (pode ligar e desligar muitas vezes por segundo), e isso causa ainda mais "instabilidade" num circuito que o utilizador não entende de onde vem. Por isso let's keep it simple...
-
FET, estás a ler mal o gráfico. Repara que os 2.5W ficam acima da linha.
De qualquer forma, se puseres um 7805 a dissipar 0.25W continuamente, ele aquece ao ponto de nem lhe conseguires pôr os dedos em cima. Agora imagina com 2.5W.
Na verdade este integrado não se queima com temperatura, porque ele chega a um ponto que desliga sozinho até arrefecer o suficiente.. Só que isto acontece muito depressa (pode ligar e desligar muitas vezes por segundo), e isso causa ainda mais "instabilidade" num circuito que o utilizador não entende de onde vem. Por isso let's keep it simple...
Tal como eu disse pelo datasheet um heatsink não é necessário pois digamos que no gráfico estão 2W, segundo o datasheet isso é o maximo que ele aguenta sem dissipador e acredito que no datasheet já tenha alguma margem, agora é claro que ele deve aquecer mas não ao ponto de ficar a ferver que não lhe possas tocar, mas eu para essa corrente nunca o usaria sem um heatsink, em relação ao que disses-te de poder desligar e ligar mtas vezes por segundo penso que isso não será assim como pensas.
Não tenho a certeza mas penso que a protecção disse seja com histerese, algo do genero, quando ele chega aos 170ºC desliga-se e só volta a funcionar aos 120ºC, logo isso do ligar e desligar mtas vezes por segundo penso que nunca aconteceria. Não tenho a certeza se é isto que acontece mas é o que tem mais logica.
Cumps
-
Ola, o problema de reiniciar o arduino está resolvido ;D o motivo pelo qual isso acontecia esta muito bem explicado na resposta do metRo_ em cima. A solução passou por ligar o fio rosa (ver foto) no pino 9v(vin) do arduino em vez de o colocar nos 5v da breadboard.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg180.imageshack.us%2Fimg180%2F841%2Fpontehbb.jpg&hash=149aee2e610de45a1d8ec68dd132237d242baf34)
A ligação em cima funciona perfeitamente quando ligado por USB, o arduino não faz reset e tal como sugerido pelo Njay fiz alguns teste "duros" tipo frente,tras,direita,esquerda,frente,para tudo muito rápido.
Precisava agora de um conselho sobre qual a decisão mais correcta para a alimentação externa:
Opção 1: Ligar as baterias de 7,2v no jack do arduino e manter tudo como esta, nesse caso o vin vai passar a ter 7,2 o que não sei se pode danificar os motores.
Opção 2: Colocar aquele regulador que anda perdido na foto entre o vin e o pino do IC
Opção 3: Dedicar-me a pesca. ;D
Obrigado, abraço.
-
A datasheet só diz que o LM78xx desliga aos 150ºC, mais nada. Eu sei, por relatos de outros, que ele faz esse desligar/ligar muito rápido. Mas mesmo que o fizesse com um periodo de segundos, tás a ver a "cara" de espanto do pessoal sem perceber o que se passa...
Eu no teu lugar deixava tudo como está e usava PWM nos motores com ciclo activo abaixo de 100, preytender. Qualquer das outras soluções (incluindo a da pesca :)), é um desperdício de energia, ou seja as pilhas duram menos e tens componentes a aquecerem mais.
-
Obrigado pela rápida resposta... por acaso no meu codigo ja estou a utilizar PWM, em vez de utilizar digitalwrite(HIGH) faço analogwrite(70) para nao forçar muito os motores.
Tudo a funcionar e não cheira a queimado ;D ;D notei uma coisa engracada fazer analogwrite(70) quando ligado pelas baterias parece que anda mais rápido do que ligado por USB.
Muito obrigado a todos pela ajuda e para os principiantes como eu podem usar o esquema em cima que vai funcionar.
Peço desculpa ao AcidDagger por ter monopolizado o topico dele, fico a aguardar para ver essa v.2 esta com bom aspecto.
Abraço. ;D ;D ;D ;D
-
Dizes que o analogwrite(70) funciona diferente com a USB e com as baterias o que é bom porque quer dizer que está tudo a funcionar correctamente :)
Com a USB tens 5V, o analogwrite varia entre 0 e 255, logo 5V*(70/255)=1,37V.
Com a bateria tens 7,2V, logo 7,2V*(70/255)=1,97V.
Para alem de que a USB só consegue fornecer 500mA!
-
Amanha ja tenho uma versão do codigo para mostrar :P
-
Ora bem, aqui fica o codigo base para quem se quiser lançar na construção de um robot é bastante simples (:
void parar() { // para os motores
digitalWrite(motor_esquerdo[0], LOW);
digitalWrite(motor_esquerdo[1], LOW);
digitalWrite(motor_direito[0], LOW);
digitalWrite(motor_direito[1], LOW);
delay(50);
}
void frente() { // anda em frente
analogWrite(motor_esquerdo[0], velocidade_max);
digitalWrite(motor_esquerdo[1], LOW);
analogWrite(motor_direito[0], velocidade_max);
digitalWrite(motor_direito[1], LOW);
delay(50);
}
void tras() { // anda para tras
digitalWrite(motor_esquerdo[0], LOW);
analogWrite(motor_esquerdo[1], velocidade_max);
digitalWrite(motor_direito[0], LOW);
analogWrite(motor_direito[1], velocidade_max);
delay(50);
}
void direita() { // vira para a direita
analogWrite(motor_esquerdo[0], velocidade_max);
digitalWrite(motor_esquerdo[1], LOW);
digitalWrite(motor_direito[0], LOW);
analogWrite(motor_direito[1], velocidade_max);
delay(50);
}
void esquerda() { // vira para a esquerda
digitalWrite(motor_esquerdo[0], LOW);
analogWrite(motor_esquerdo[1], velocidade_max);
analogWrite(motor_direito[0], velocidade_max);
digitalWrite(motor_direito[1], LOW);
delay(50);
}
void acelerar_frente() { // acelera os motores do 0 à velocidade máxima
for(int valor_acelerar = 0 ; valor_acelerar <= velocidade_max; valor_acelerar +=10) {
analogWrite(motor_esquerdo[0], valor_acelerar);
digitalWrite(motor_esquerdo[1], LOW);
analogWrite(motor_direito[0], valor_acelerar);
digitalWrite(motor_direito[1], LOW);
delay(30);
}
}
void desacelerar_frente() { // desacelera os motores da velocidade máxima a 0.
for(int valor_desacelerar = velocidade_max ; valor_desacelerar >=0; valor_desacelerar -=10) {
analogWrite(motor_esquerdo[0], valor_desacelerar);
digitalWrite(motor_esquerdo[1], LOW);
analogWrite(motor_direito[0], valor_desacelerar);
digitalWrite(motor_direito[1], LOW);
delay(30);
}
}