Show Posts
Pages: 1 [2] 3 4 ... 18
16  International / Portugues / Re: "Pegar" a porta COM. on: June 23, 2014, 07:46:26 am
Amigo, infelizmente o que deseja não é tão trivial, você teria que configurar uma espécie de "handshake", algo do tipo:
1) verifica as portas disponíveis,
2) para cada porta, envia um "Hello" e aguarda 1 segundo pela resposta (por exemplo), se não receber, fecha a porta e abre a próxima.
3) no Arduino, ele trava em um while esperando o "Hello", quando recebe responde "I'm alive" e inicia a execução do código.
4) no pc de novo, quando recebe "I'm alive", salva as configurações da porta e inicia o código

Veja, esta é uma forma que encontrei de fazer isto, pode tanto não funcionar dependendo de o que você tem ligado nas outras portas do PC, quanto pode haver maneiras mais simples ou algo pronto na internet.

ps.: perceba que "Hello" e "I'm alive" no caso é apenas uma espécie de protocolo que acabei de inventar, você pode simplificar para um sinal qualquer

ps2.: no momento que abri seu tópico não havia a segunda resposta do luizsilva, ele disse a mesma coisa que eu basicamente smiley
17  International / Portugues / Re: Me ajude por favor. Como escrever o número de passos de um motor com um teclado? on: June 23, 2014, 07:36:24 am
Não consegui acompanhar a evolução do seu problema aqui, depois eu leio com mais calma... mas quanto ao passo = passo*10+teclaPressionada;
É só uma maneira de digitar o valor que você quer com mais de um digito, ex.:
Se você quer entrar o valor 210 apertando '2' '1' e '0' e depois 'enter' ficaria:

//(passo inicialmente é 0. Apertou 2)
passo = 0*10 + 2 ;// passo igual será 2

// (apertou 0)
passo = 2*10 + 1;  // passo será 21

// (apertou 0 novamente)
passo = 21*10 + 0;  // passo será 210 como desejado smiley

Depois é só confirmar da maneira que achar melhor, no seu caso você definiu 3 casas decimais sempre, mas poderia ter uma tecla enter, ou um timer para confirmar o valor.

ps.: o que você quer fazer é algo parecido com isto > https://www.youtube.com/watch?v=cKmPvY475Uc?
Fiz este projeto em 2009, No video não aparece mas tinha um LCD e um teclado como o seu onde selecionava-se modo de operação (automático ou manual). Infelizmente não tenho mais o código, talvez esteja em meus backups
18  International / Portugues / Re: Alimentação para L298N e motores on: June 06, 2014, 09:11:53 am
Sim, como é obvio tenho os GND ligados. Eu fui metendo pilhas em série e experimentando e só consegui fazer o robot quando tinha 9 pilhas. Porém não eram todas iguais e apenas estavam a fornecer 12V.
Interessante, me parece então que seu problema é mecânico, possivelmente seus motores estão sobrecarregados, por isso precisam de excessiva corrente para mover. Quando você dobra a tensão de especificação, dobra a corrente e aumenta consideravelmente o torque (não sei de cabeça em qual relação).
Perceba que com 9 pilhas em série você não aumenta a corrente máxima que elas fornecem, pelo contrário.
Quanto à eles não terem partido mesmo com as rodas livres quando você testou com 4 pilhas, possivelmente foi por causa da especificação do L298N como citei.

ps.: Desculpe as perguntas, mas quando se trata de eletrônica temos que considerar todas as possibilidades, uma de cada vez até "cercar" o problema.
19  International / Portugues / Re: Alimentação para L298N e motores on: June 05, 2014, 02:28:29 pm
E o GND da Ponte está ligado ao GND do Arduino? Teoricamente pilhas, mesmo as mais ruins, fornecem bastante corrente, as vezes mais até que adaptadores de parede, desculpe se estou sendo chato batendo na tecla, mas não consigo ver o problema se não for montagem, a menos que seus motores puxem MUITA corrente ( o que não é o caso), mas aí mesmo a ponte H haveria de dar problema

edit:
Acabo de ver que a tensão mínima do L298 é 6V. Apenas mais uma pilha em série deve servir (fique tranquilo que motores aguentam normalmente sobretensão de até 100% desde que não fique funcionando o tempo todo)
20  International / Portugues / Re: Me ajude por favor. Como escrever o número de passos de um motor com um teclado? on: June 04, 2014, 03:11:21 pm
1)
int passo=teclaPressionada*50;
está errado, a variável passo deve ser global
crie também
int incremento = 50;

2)
faça
passo = 0;
fora do while
faça
passo =  passo*10 + teclaPressionada
fora de
if (entrada == 3)
mas dentro do while.

3)
no lugar de
int passo=teclaPressionada*50;
faça
passo = passo*incremento;

4) me pague uma cerveja smiley
21  International / Portugues / Re: Alimentação para L298N e motores on: June 04, 2014, 02:53:46 pm
Quote
O transformador estava a fornecer 6V. Liguei no GND e no +12V da ponte. Penso que a ligação está bem feita.
Mas qual pino do Arduino? Vin ou 5V? Se estiver em Vin provavelmente não vai funcionar, adaptadores de tomada fornecem geralmente um pouco acima da especificação, enquanto pilhas descarregam com o tempo... tensão minima para ligar em vin se não me engano é 6V, mas não é garantido, recomendado acho que 9V. Tenho quase certeza que seu problema está aí
22  International / Portugues / Re: [Ajuda] Programação de servo com joystick. on: June 04, 2014, 02:46:50 pm
Seu problema parece bem simples amigo, provavelmente na programação está explicito que o servo deve acompanhar o valor lido do joystick. Bastaria mudar para algo como "(if > centro) vá para direita, (if <centro) vá para esquerda". Fica difícil explicar mais detalhado sem o software, mas a lógica é esta

Sem querer pedir muito. mas poderia dar uma analisada nesse codigo? peguei ele pronto na net e estou tentando entender a logica de programação a partir dele. eu poderia modifica-lo para essa função?

//Programa : Controle servo motor com joystick
//Autor : FILIPEFLOP
 
#include <Servo.h>
 
//Cria objeto para controlar o servo base
Servo servo_base;
//Cria objeto para controlar o servo inclinacao
Servo servo_inclinacao;
 
int pino_x = A4; //Pino ligado ao X do joystick
int pino_y = A5; //Pino ligado ao Y do joystick
int val_x;   //Armazena o valor do eixo X
int val_y;   //Armazena o valor do eixo Y
 
void setup()
{
  //Define a porta a ser ligada ao servo base
  servo_base.attach(7);
  //Define a porta a ser ligada ao servo inclinacao
  servo_inclinacao.attach(smiley-cool;
}
 
void loop()
{
  //Recebe o valor do joystick, eixo X
  val_x = analogRead(pino_x);
  //Converte o valor lido para um valor entre 1 e 180 graus
  val_x = map(val_x, 0, 1023, 1, 180);
  //Move o servo base para a posicao definida pelo joystick
  servo_base.write(val_x); 
  //Recebe o valor do joystick, eixo Y
  val_y = analogRead(pino_y);
  //Converte o valor lido para um valor entre 1 e 180 graus
  val_y = map(val_y, 0, 1023, 1, 180);
  //Move o servo inclinacao para a posicao definida pelo joystick
  servo_inclinacao.write(val_y);
  //Aguarda a movimentacao do servo e reinicia a leitura
  delay(15);
}



Code:

  val_x = analogRead(pino_x);

  val_x = map(val_x, 0, 1023, 1, 180);

  if(val_x  >  100)
  {
    servo_base.write(val_x);
  }
 
  else if (val_x < 80)
  {
    servo_base.write(val_x);
  }
  // faz o mesmo para val_y
}

Este é só um esboço amigo, mas o caminho é este, o resto é matemática. Pode ajustar os valores do if, pode adicionar delay, pode ser que precise criar uma outra variavel que se soma ou subtrai ao valor do servo...

Só uma dica, se esforce um pouco mais para entender como funciona do que fazer funcionar em si, vai valer a pena futuramente smiley-wink
23  International / Portugues / Re: Alimentação para L298N e motores on: June 02, 2014, 12:14:03 pm
Qual  a especificação do adaptador de tomada que você usava? Em quais pinos você o ligava? Penso que o problema pode estar na ligação mais provavelmente do que nas pilhas em si
24  International / Portugues / Re: IRremote multiplos transmissores on: June 02, 2014, 11:58:23 am
Já pensou em usar um mux? A menos que você precisa controlar todos simultaneamente, você configura a saída do mux usando três portas, e manda o sinal usando uma.

Dá uma olhada no CI CD4851  ou CD4051 / 74HC4851/74HC4051 (todos são iguais)
25  International / Portugues / Re: [Ajuda] Programação de servo com joystick. on: June 02, 2014, 11:56:19 am
Seu problema parece bem simples amigo, provavelmente na programação está explicito que o servo deve acompanhar o valor lido do joystick. Bastaria mudar para algo como "(if > centro) vá para direita, (if <centro) vá para esquerda". Fica difícil explicar mais detalhado sem o software, mas a lógica é esta
26  International / Portugues / Re: Alternativa para abaixar tensão em linha serial 5v/3v3 on: February 19, 2014, 10:49:00 am
Aqui tens o efeito de cada uma dessas configurações medindo com o osciloscópio.
http://jamesreubenknowles.com/level-shifting-stragety-experments-1741/comment-page-1
O que tu queres é que o sinal seja o mais próximo possível a uma onda quadrada.

wowww muito obrigado, excelente link!
27  International / Portugues / Re: Alternativa para abaixar tensão em linha serial 5v/3v3 on: February 19, 2014, 09:19:07 am
Eu não usaria resistores para reduzir a tensão, pois o valor será variável de acordo com a amperagem. Você pode usar diodos em série, pois é sabido que eles têm uma queda de tensão de +- 0.6V.

Porque não pode usar CI? Existem várias opções que fazem essa redução facilmente para você.

Abraços,

Usando diodos seria quase a mesma ideia da ligação (A), mas teria que por um pull down do "lado 3v3" ao invés de pull up. Ou  seja, ficaria lento para abaixar ao invés de para subir.

Não quero usar CIs pois é pra ser uma solução rápida, por exemplo, já vi várias empresas vendendo placas que usam resistores 10K em série para abaixar, limitando assim a corrente no diodo de clamp do CI 3v3.

Eu iria de lógica B, acho mais seguro trabalhar com transistores (já que nos arduinos temos o pino 3.3v)
É olhando também acho que parece a melhor opção, mas também sei que todas funcionam (umas melhor outras pior). Gostaria de saber quais os eventuais problemas das outras, de repente para controlar um 54hc595 qualquer uma serve e estou preocupado atoa não é.

Obrigado pelas respostas smiley
28  International / Portugues / Alternativa para abaixar tensão em linha serial 5v/3v3 on: February 19, 2014, 08:57:16 am
Olá galera, alguém pode me ajudar, preciso controlar um shift register 3v3, usando um Arduino com 5V, alguém sabe qual a melhor alternativa (sem usar CI) para fazer isto levando em consideração a "alta velocidade" de clock do shift register?

As opções que pensei até agora são as seguintes, aí queria saber qual é a melhor em termos de velocidade, proteção, etc.
Lembrando que a direção do sinal é do 5v (esquerda) para 3v3 (direita).



E aí, A, B, C ou D (ou outra ideia)?

edit: Resolvido! Apenas colocando em evidência o link postado pelo amigo HugoPT para referências futuras
http://jamesreubenknowles.com/level-shifting-stragety-experments-1741/comment-page-1
29  Using Arduino / Motors, Mechanics, and Power / Re: SMPS driver for 65V output, low current, as simple as possible on: November 25, 2013, 12:10:53 pm
Thanks, I'll try it!  smiley
30  Using Arduino / Motors, Mechanics, and Power / Re: SMPS driver for 65V output, low current, as simple as possible on: November 21, 2013, 12:57:11 pm
Thanks for the tip UnoDueTre, I will take a look on these Meanwell power sources.

And, what do you think about this linear project:

TIP42c is 2W, maybe if I put 2 or 3 in parallel...
Pages: 1 [2] 3 4 ... 18