Offline
Newbie
Karma: 0
Posts: 10
|
 |
« on: September 11, 2012, 02:00:01 pm » |
Estou usando a biblioteca servo.h para gerar um pulso minimo e uma máximo para uma saída pwm do Arduíno, pelo que me parece essa biblioteca é meio bugada, alguém conhece uma biblioteca melhor ou uma função na qual eu consigo gerar pulsos (mínimos e máximos) para uma saída pwm?
OBS: Preciso gerar um sinal aonde eu controlo o mim e o max em milissegundos.
|
|
|
|
|
Logged
|
|
|
|
|
Brasil
Offline
Sr. Member
Karma: 2
Posts: 306
|
 |
« Reply #1 on: September 11, 2012, 04:36:43 pm » |
|
|
|
|
|
Logged
|
4x Duemilanove (clone) Uno torrado (clone) Amiga 1200 40MB Windows XP
|
|
|
|
Portugal
Offline
God Member
Karma: 9
Posts: 746
Tomorrow I will know a BIT more than yesterday
|
 |
« Reply #2 on: September 12, 2012, 10:31:05 am » |
Se quiseres podes sempre tentar usar os registos para poderes atingir esse fim. Mas teras de fazer umas continhas à old school http://newbiehack.com/TimersandCountersDefaultandBasicUsage.aspxVê este video ALias recomendo ver todos eles muito bem detalhados sobre alguns registos. Deve fazer parte dos estudos de qualquer fan do arduino 
|
|
|
|
|
Logged
|
Debian,Mint,Ubuntu Arduino Mega 2560 Arduino Nano Arduino Duemilanove MAC OS Montain Lion Raspberry PI Model B
|
|
|
|
'round the world...
Offline
Edison Member
Karma: 20
Posts: 2308
|
 |
« Reply #3 on: September 12, 2012, 12:55:14 pm » |
Se quiseres podes sempre tentar usar os registos para poderes atingir esse fim.
Eu diria "deves" usar sempre os registos para atingir esse fim. É quase como o meu instrutor de condução disse acerca das mudanças automáticas: "Eu quero controlar o carro. Não quero que ele se controle a ele próprio."
|
|
|
|
|
Logged
|
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o. Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum). Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.
Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).
|
|
|
|
central nervous system
Offline
Full Member
Karma: 0
Posts: 125
Causing havoc inside your brain since 1980
|
 |
« Reply #4 on: September 12, 2012, 11:37:35 pm » |
Os analogWrite() e delay() não bastam para isso?
|
|
|
|
|
Logged
|
|
|
|
|
'round the world...
Offline
Edison Member
Karma: 20
Posts: 2308
|
 |
« Reply #5 on: September 13, 2012, 12:05:40 am » |
Os analogWrite() e delay() não bastam para isso?
Sabes quando o teu computador congela? Fica ali a processar e não te dá feedback nenhum ao input do rato e teclado? Isso é o que o delay faz... fica ali congelado a literalmente contar carneirinhos. Mas enquanto o teu computador faz isso por ficar demasiado carregado, o Arduino faria isso por má programacão. Achas isso boa prática? O analogWrite configura os pinos de saída dos timers como saídas PWM... e se for esse o caso, usar o delay é desnecessário. O problema é que o pwm pode ser rápido demais para controlar o servo.
|
|
|
|
|
Logged
|
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o. Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum). Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.
Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).
|
|
|
|
central nervous system
Offline
Full Member
Karma: 0
Posts: 125
Causing havoc inside your brain since 1980
|
 |
« Reply #6 on: September 13, 2012, 12:13:07 am » |
Um pulso mínimo é um pulso com duty cycle zero e um pulso máximo, com 100%. Qual seria o problema em gerar isso? Nem é preciso PWM, pode gerar com o digitalWrite() e o delay() mesmo. Além disso, o servo provavelmente vai precisar de pulsos da ordem de grandeza de milissegundos. Se o clock do Arduino estiver em 16 MHz, milissegundos equivalem a milhares de ciclos de CPU e tendo um delay() ou fazendo malabarismos para não tê-lo, dá na mesma, ou melhor, o último é muito mais complicado e pessoas não letradas em programação, coisa comum no mundo Arduino, não teriam conhecimento suficiente para fazê-lo.
|
|
|
|
« Last Edit: September 13, 2012, 12:18:01 am by neuron_upheaval »
|
Logged
|
|
|
|
|
'round the world...
Offline
Edison Member
Karma: 20
Posts: 2308
|
 |
« Reply #7 on: September 13, 2012, 09:31:47 am » |
Obviamente não percebes o quão errado é usar delay()... boa sorte com os teus projectos.
|
|
|
|
|
Logged
|
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o. Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum). Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.
Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).
|
|
|
|
|