collapse collapse

* Links de Robótica

* Posts Recentes

Identificar 2 componentes por almamater
[30 de Julho de 2025, 19:31]


+ LASERs por dropes
[16 de Julho de 2025, 12:38]


Cerca eléctrica por SerraCabo
[14 de Junho de 2025, 23:26]


Alguém arranja motores? por almamater
[10 de Junho de 2025, 22:34]


Condensador 4.7uF 0603 por brunus
[09 de Junho de 2025, 15:52]


Lenovo IdeaPad 3 Não liga por jm_araujo
[07 de Maio de 2025, 19:10]


Identificar Diodo Zenner por filjoa
[01 de Maio de 2025, 23:07]


Meu novo robô por dropes
[18 de Março de 2025, 14:51]


JBL partybox On-The-Go por almamater
[21 de Fevereiro de 2025, 23:32]


Talking Reverse Engineering with an Absolute Legend! por SerraCabo
[13 de Fevereiro de 2025, 09:56]

* LusoRobótica - Robótica em Portugal

A robótica é uma das ciências mais desafiantes. A perfeita fusão harmoniosa entre um sem fim número de ciências faz da robótica um excelente desafio, que nos convida a imergir neste grandioso mundo da tecnologia, e utilizar a construção de robots como uma forma única de explorar todas as ideias que nos surgem no dia-a-dia.

Junta-te a nós e aprende como a robótica pode mudar a maneira como observas o mundo. Ajuda-nos a desmistificar a robótica em Portugal!
19 de Outubro de 2009, 21:40 por TigPT | Visualizações: 8635 | Comentários: 2



Mais informação em:
http://spectrum.ieee.org/
17 de Outubro de 2009, 17:13 por TigPT | Visualizações: 10015 | Comentários: 0

Sugerido pelo SamPereira e com muita razão, a aderência à troca de informação sobre as instituições em que as pessoas estudam/trabalham tem sido bastante.

Assim no campo de perfil é agora possível preencher o campo "Ensino/Empresa".

Podem depois na pesquisa encontrar as pessoas por este campo, mas nada como deixar umas imagens e os links para estas opções:



Perfil: http://lusorobotica.com/index.php?action=profile
Pesquisa de Utilizadores: http://lusorobotica.com/index.php?action=mlist;sa=search
17 de Outubro de 2009, 00:01 por nunosilvarocha | Visualizações: 19439 | Comentários: 16

Dando continuação a minha descoberta do arduino decidi montar uma ponte H para poder controlar a velocidade e a direcção de dois motores dc.
O IC que tinha disponivel comigo era o L293E, e tive que procurar o datasheet do mesmo.
Podem visualiza-lo no link abaixo:
 http://www.st.com/stonline/books/pdf/docs/1328.pdf

Depois de analisado o resultado ate agora é este:

L293E na breadboard


Ligação dos pinos 15 e 16 ao GND


Ligação dos pinos 14 e 17 ao GND (no datasheet diz para usar resistência mas não usei)


Diodos para protecção do motor
Ligados dos pinos 13 e 18 ao GND



Diodos para protecção do motor
Ligados dos pinos 13 e 18 ao pino 20


Como para já não vou regular a velocidade do motor ligamos o pino 11 aos +5V



Os pinos 12 e 19 dão-nos o sinal da direcção do motor, esta informação provem do arduino


É nos pinos 13 e 18 que ligamos ao nosso motor


Ligamos o pino 20 ao +5V, (esta pode ser ligada a uma fonte externa se necessário)



O L293E pode controlar 2 motores, para tal basta repetir a montagem no lado contrario.
Já testei e o motor rodou nos dois sentidos.
De momento é o que tenho feito.
Já tenho mais algumas coisas em mente para continuar isto, agora o que e preciso e tempo.
Os entendidos que falem sobre a minha experiência!

Actualização 18/10/2009

Bem hoje decidi juntar ao circuito que tinha montado na breadboard o arduino e um motor dc. E com algum codigo a mistura o resultado foi este:




O código que utilizei é um código simples, pois apenas faz o motor rodar para um lado e depois para o outro, como era apenas para testar se estava tudo bem acho que é o suficiente
Código: [Seleccione]
int motorL = 12;
int motorR = 11;

void setup()
{
  pinMode(motorL, OUTPUT);
  pinMode(motorR, OUTPUT);
}

void loop()
{
  digitalWrite(motorR,LOW);
  digitalWrite(motorL,HIGH);
  delay(5000);
  digitalWrite(motorL,LOW);
  digitalWrite(motorR,HIGH);
  delay(5000);
}

Acho que ainda vou ter muito a batalhar para melhorar isto, pois tenho algumas ideias para os próximos passos neste projecto agora o que é preciso e tempo para desenvolve-las.
Queria pedir ajuda aos mais entendidos da electronica, pois gostava de saber o que devia melhorar na circuito da breadboard para este funcionar melhor!

Actualização 20/10/2009

Hoje tive mais um tempinho para brincar com o arduino.
Na actualização anterior era o programa que sequencialmente fazia o motor rodar para um lado e depois para outro.
Hoje decidi implementar dois botões na breadboard, um liga e desliga o motor, o outro faz o motor mudar o sentido de rotação.
A montagem é bastante simples, o programa é que foi um pouco mais complicado apenas porque tive que procurar uma maneira de retirar o ruido do botão, pois quando clicava no botão o programa rodava mais rápido do que o meu click e assumia como tivesse dado vários clikes, o que com a criação deste filtro isso deixa de acontecer.
Se alguém tiver ideia de um filtro mais simples estou aqui para ouvir sugestões.
Agora vamos é a resultados concretos:

Montagem:
O arduino liga a ponte H pelos pinos 11 e 12.
Os botões enviam sinal para o arduino pelos pinos 6 e 7


E agora o material em acção:


O código que utilizei foi:
Código: [Seleccione]
int motorL = 12;
int motorR = 11;
int botaoD = 7;
int botaoS = 6;
int valD = 0;
int valS = 0;
int d = 0;
int e = 0;
long time = 0;         
long debounce = 200;
int pvd = HIGH;
int pvs = HIGH;

void setup()
{
  pinMode(motorL, OUTPUT);
  pinMode(motorR, OUTPUT);
  pinMode(botaoD, INPUT);
  pinMode(botaoS, INPUT);
  Serial.begin(9600);

}

//-------- funcao principa --------
void loop()
{
  valD=digitalRead(botaoD);
  valS=digitalRead(botaoS);
  if ((valD==LOW && pvd==HIGH && millis() - time > debounce) ||(valS==LOW && pvs==HIGH && millis() - time > debounce))
  {
    if ((valD==LOW)&&(e==1))
    {
      direcao();
    }
    if (valS==LOW)
    {
      liga();   
    }
    time = millis();
  }
  pvd = valD;
  pvs= valS; 
 
}
//----------------

//-------- muda de diração --------
void direcao()
{
  if (d==0)
  {
    digitalWrite(motorR,LOW);
    digitalWrite(motorL,HIGH);
    d=1;
  }
  else
  {
    digitalWrite(motorL,LOW);
    digitalWrite(motorR,HIGH);
    d=0;
  }
}
//--------------------

//-------- liga ou desliga motor --------
void liga()
{
  if (e==0)
  {
    digitalWrite(motorR,LOW);
    digitalWrite(motorL,HIGH);
    e=1;
    d=1;
  }
  else
  { 
    digitalWrite(motorL,LOW);
    digitalWrite(motorR,LOW);
    e=0;
  }
}
//----------------

Para já e o que tenho desenvolvido. Mas ainda tenho mais uma ideia para desenvolver um pouco mais isto. Agora o que preciso é de um pouco de tempo e logo novas noticias aqui chegaram.


Actualização 21/10/2009
Bem, hoje conclui a minha ponte H, pelo menos as ideias que tinha para aprender com ela já estão usadas.
Montei uma ponte com o IC L293E, controlei o motor desligando e ligando o mesmo por um switch, fiz o motor mudar o sentido de rotação por um switch.
Tudo isto ligado ao arduino.
A minha ultima ideia era controlar a velocidade de rotação do motor com um potenciómetro, e o resultado foi este:

O potenciómetro liga ao pino '0' analógico do arduino.
A saida PWM 5 liga ao pino 20 da ponte (srve para controlar a velocidade de rotação)
O resto das ligações mantém-se igual ao da actualização anterior.


A montagem em acção:


A programação usada é esta:
Código: [Seleccione]
int motorL = 12;
int motorR = 11;
int botaoD = 7;
int botaoS = 6;
int valD = 0;
int valS = 0;
int d = 0;
int e = 0;
long time = 0;         
long debounce = 200;
int pvd = HIGH;
int pvs = HIGH;
int pot = 0;
int potv = 0;
int reg = 5;

void setup()
{
  pinMode(motorL, OUTPUT);
  pinMode(motorR, OUTPUT);
  pinMode(botaoD, INPUT);
  pinMode(botaoS, INPUT);
  analogWrite(reg,255);

}

//-------- funcao principa --------
void loop()
{
  valD=digitalRead(botaoD);
  valS=digitalRead(botaoS);
  potv=analogRead(pot);
  potv = map(potv, 0, 1023, 0, 179);
  analogWrite(reg,potv);
  if ((valD==LOW && pvd==HIGH && millis() - time > debounce) ||(valS==LOW && pvs==HIGH && millis() - time > debounce))
  {
    if ((valD==LOW)&&(e==1))
    {
      direcao();
    }
    if (valS==LOW)
    {
      liga();   
    }
    time = millis();
  }
  pvd = valD;
  pvs= valS; 
 
}
//----------------

//-------- muda de diração --------
void direcao()
{
  if (d==0)
  {
    digitalWrite(motorR,LOW);
    digitalWrite(motorL,HIGH);
    d=1;
  }
  else
  {
    digitalWrite(motorL,LOW);
    digitalWrite(motorR,HIGH);
    d=0;
  }
}
//--------------------

//-------- liga ou desliga motor --------
void liga()
{
  if (e==0)
  {
    digitalWrite(motorR,LOW);
    digitalWrite(motorL,HIGH);
    e=1;
    d=1;
  }
  else
  { 
    digitalWrite(motorL,LOW);
    digitalWrite(motorR,LOW);
    e=0;
  }
}
//----------------


Para já as minhas aventuras com a ponte H estão terminadas.
Páginas: 1 ... 89 90 [91] 92 93 ... 187

* Quem está online

  • user Google

* Estatística LusoRobótica

  • stats Total de Membros: 4.072
  • stats Total de Mensagens: 106.835
  • stats Total de Tópicos: 9.101
  • stats Total de Categorias: 8
  • stats Total de Quadros: 71
  • stats Recorde utilizadores online: 1.666