Show Posts
Pages: 1 ... 108 109 [110] 111 112 ... 220
1636  International / Portugues / Re: Como percorrer dados obtidos da serial? on: November 17, 2012, 02:28:03 pm
O exemplo que postei... retornou isto:

Quote
These are the external arrays:
str_1 = 6
str_2 = 6
str_3 = 10
These are the local arrays:
str_1 = 6
str_2 = 6
str_3 = 10

Queres meter o código que usaste?
1637  International / Portugues / Re: Arduino + Ethernet W5100 + php on: November 17, 2012, 01:26:14 pm
Estás a fazer mal o pedido...

Dá uma vista de olhos aqui...

http://www.opencalais.com/HTTPexamples

e aqui

http://www.jmarshall.com/easy/http/#postmethod

e aqui

http://ruturajv.wordpress.com/2005/12/25/http-post-request/

Tens de usar o post... e fazer o pedido correctamente. Lembra-te também que existem \n e \r para adicionar para o pedido ser considerado correcto.

Se quiseres mais...

http://blog.thiseldo.co.uk/?p=418

Este último exemplo já tem o código do Arduino e um script php para testar. Eu tenho código para isto também, mas está no meu computador em casa... e eu não estou em casa. smiley-sad
1638  International / Portugues / Re: LED + Resistencia on: November 16, 2012, 02:32:14 pm
A diferenca é aquilo que se chama de sinking ou sorcing. Quando o LED connecta no mais e no microcontrolador, o uC está a fazer sinking, ou seja, a corrente vai para dentro do micro controlador. Neste caso, ligas o LED escrevendo 0 para o pino. Consegues explicar porquê?

Quando o LED liga entre o microcontrolador e o GND, estás a fazer sourcing, ou seja, o uC está a fornecer a corrente. Neste caso ligas o LED escrevendo 1 para o pino.

Quando olhas para o pino do uC, ele não é mais do que um interruptor, logo podes ligar das duas maneiras, né?
Uma diferenca é que por vezes a corrente que o micro pode fornecer pode ser mais baixa do que a que pode receber.

Para o cálculo da resistência, eu uso o cálculo 20mA a passar pelo LED. (5 - queda do LED)/20mA

Se a queda for, imagina 1,5V... resistência = 175Ohm. Eu costumo, por defeito, meter uma de 220.
1639  International / Portugues / Re: Problemas com serial.read() on: November 16, 2012, 02:27:00 pm
De repente não me lembro, não. :\

Eu passei por estes tutoriais para o fazer:

http://www.ladyada.net/make/xbee/configure.html
https://sites.google.com/site/xbeetutorial/xbee-introduction/zigbee_setup
http://www.embedded.arch.ethz.ch/xbee-setup.pdf

Eu lembro que na altura passei um bom bocado de tempo e acabei por ler o manual para ver exactamente o que cada parâmetro queria dizer. Talvez valha a pena porque facilita. O que me aconteceu foi que elas precisam dum setup que supostamente viria de fábrica, mas näo vinha. Elas estavam brancas.

Já agora, tens a certeza que não é um problema de bauds?
1640  International / Portugues / Re: Problemas com serial.read() on: November 16, 2012, 10:23:57 am
Algumas questões:

- Já experimentaste comunicacão entre o computador e o Arduino com as Xbees?

- Configuraste as XBee? Isso é bastante parecido com o que eu tinha nas minhas. Depois de as configurar, funcionam bem.
1641  International / Portugues / Re: Como percorrer dados obtidos da serial? on: November 16, 2012, 08:09:52 am
Experimenta isto


Code:
char str_1[] = "hello";
char str_2[6] = {'h', 'e', 'l', 'l', 'o', '\0'};
char str_3[10];

void setup() {

char str_1_local[] = "hello";
char str_2_local[6] = {'h', 'e', 'l', 'l', 'o', '\0'};
char str_3_local[10];

Serial.println("These are the external arrays:");
Serial.print("str_1");
Serial.println(sizeof(str_1));
Serial.print("str_2");
Serial.println(sizeof(str_2));
Serial.print("str_3");
Serial.println(sizeof(str_3));

Serial.println("These are the local arrays:");
Serial.print("str_1");
Serial.println(sizeof(str_1_local));
Serial.print("str_2");
Serial.println(sizeof(str_2_local));
Serial.print("str_3");
Serial.println(sizeof(str_3_local));

}

void loop() {}

Eu suspeito que tem a ver com o facto de todo o código do Arduino correr dentro duma funcão (setup ou loop) e não directamente na main. Nada como experimentar esse código em cima e ver as diferencas. Outra coisa que convém teres em atencão tem a ver com o facto que o compilador para AVR pode ou não obedecer às convencões do C para computadores e não sabes exactamente as opcões de optimizacão que activaram no compilador. Tudo isso são possibilidades para explicar isto.

Isto é uma maneira de passar esse problema. Também podes usar um string terminator e percorrer a string até o encontrar. Normalmente usa-se '\0'.

Code:
#define ARRAY_SIZE   10
char array[ARRAY_SIZE];
unsigned char chars_in_array = 0;


array[chars_in_array++] = Serial.read();


for (i = 0; i< chars_in_array; i++) {
  Serial.println(array[i]);
}

Algo assim...

Edit:

No site tinha isto:

Quote
Note that sizeof returns the total number of bytes. So for larger variable types such as ints, the for loop would look something like this. Note also that a properly formatted string ends with the NULL symbol, which has ASCII value 0.
Logo parece-me que o sizeof vai procurar por um \0 para retornar um valor.
1642  International / Portugues / Re: RASTREADOR SOLAR!!! URGENTE... on: November 14, 2012, 03:16:29 am
O mais importante num segredo... é não informar que existem segredos... smiley-wink
1643  International / Portugues / Re: Como comparar dados da serial com um protocolo? on: November 14, 2012, 12:55:32 am
Da maneira que está, funciona se mudares a imprimeMsg para o que estava. O que tens de ter em atenção é não imprimires o que ainda não recebeste
1644  International / Portugues / Re: DPWS (Device Profile for Web Services) on: November 13, 2012, 02:22:08 pm
Procura por AVR-GCC... tu podes usar os ficheiros .c e .h no arduino. Mas para isso precisas de saber um pouco de C. Se quiseres, podes fazer como referi e usar o AVR-GCC. Mas para isso, ainda precisas de saber mais de C.

Logo a questão é, que sabes de C?

Nota que para o Arduino estar na internet, vais precisar do Arduino e dum shield Ethernet ou Wi-fi. O interface com essas placas, normalmente também ocupa um bom bocado de código pelo que convém ter isso em atencão.
1645  Using Arduino / Project Guidance / Re: individual modules with RF and logic on: November 13, 2012, 02:09:03 pm
One option... use a relay in series with the light bulb and the contact connected to the microcontroller... that means you'll use two relays for the same purposee.

Another option might be something like this: http://www.fairchildsemi.com/ds/MI/MID400.pdf the problem is that the lightbulb will draw quite some current and you might end up dissipating lots of power on that resistor.

The other is an LDR, but that might be strange to implement in a house.

Is it that important to know that you have power in the house or that the lightbulb is not broken?
1646  International / Portugues / Re: DPWS (Device Profile for Web Services) on: November 13, 2012, 01:29:12 pm
Sinceramente, não consegui perceber o que é que isso faz ou se é para usar num microcontrolador ou no computador... tu sabes?

O Arduino, corre programas compilados em C e C++, no entanto, para tal, tem de obedecer aos limites do chip e ao hardware disponível. Apesar de ser C, o printf(), por exemplo não funciona como num computador.

Se calhar talvez seja melhor procurares os requerimentos dessa tecnologia antes de tentares meter isso num Arduino.
1647  International / Portugues / Re: Como comparar dados da serial com um protocolo? on: November 13, 2012, 12:52:32 pm
Experimenta isto:

Code:
const int N = 10;
char inMsg[N+1];

void setup()
{
  Serial.begin(9600);
  inMsg[N] = 0;
}

void loop()
{
  if(Serial.available() >= 10)
  {
    int i = 0;
    while(( i < 10))
    {
      inMsg[i++] = Serial.read();
     
    }
   
    // teste: imprime array para verificar o conteudo
    imprimeMsg();
  }
}

void imprimeMsg(){
    Serial.println(inMsg);
   
}

A tua funcão imprime mensagem está errada... certamente que se correres isto várias vezes vais obter resultados diferentes...

O problema ocorre quando fazes isto:

i < (sizeof(inMsg) / sizeof(char))

sizeof(inMsg) é igual a 10... sizeof(char) é sempre igual a 1...

Quando recebes algo na porta série, o if passa a ser válido... mas se só recebeste um valor, para que vais tentar imprimir os valores todos?



1648  International / Portugues / Re: Ferramentas para eletrônica on: November 13, 2012, 05:07:43 am
Tambem ando a ver a minha prenda para o Natal e ando entre um Logic Analiser e um Osciloscopio da Rigol. Penso que quer um ou outro é indispensavel para se poder subir um nivel de aprendizagem.Estou mais inclinado  para o Logic Analiser da Saleae Logic 8.Ate abri um post sobre este tema aquihttp://arduino.cc/forum/index.php/topic,131557.0.html.
No entanto o meu conselho é começares aos poucos e vai vendo no ebay o que necessitas e compra la.(Bons negocios lá...)
Para dispensar algum dinheiro nestes tempos de crise a minha tecnica é sempre que recebo umas gorjas de reparaçoes coloco dentro de uma caixinha azul, que é o meu porquinho mealheiro smiley-money para ir comprando peças e afins smiley-mr-green.

Bom conselho o da breadboard.

Eu estive a ver essa thread e realmente o Nick focou em algo muito interessante... eu assim de repente não tenho interesse nenhum num osciloscópio porque não estou a planear ver sinais analógicos, mas sim digitais (tempos, PWM, etc...) e nesse aspecto um analisador lógico é muito mais interessante que o multimetro por causa do preco. O chato é que eu nem sempre quero andar com o portátil às costas para analisar sinais.

Vou repensar isso um pouco. :\

Quanto trabalho fazes em casa comparado com a Universidade? Provavelmente o que precisares na Universidade é uma boa indicacão para o que precisas de adquirir. smiley-wink
1649  International / Portugues / Re: Radiofrequencia on: November 13, 2012, 05:00:14 am
Eu estava mnesmo para comprar desses módulos da XRF, pois são metade do preco das XBee, mas depois vi algumas criticas que não me agradaram acerca de buffer overruns, etc... e acabei por comprar XBees... que, por muita pena minha, estão a apanhar pó lá por casa. :\

Os que eu estava a falar eram estes:

http://www.ebay.co.uk/itm/2-PCS-NRF24L01-2-4GHz-RF-Wireless-Transceiver-Module-for-Arduino-K-/190676509436?pt=UK_Computing_Other_Computing_Networking&hash=item2c6534a2fc

Podes ver que são baratos... mas não sei até que ponto são bons.
1650  International / Portugues / Re: Servo motores on: November 13, 2012, 04:50:55 am
Eu acho que provavelmente isso não está implementado... o servo como é um dispositivo de controlo de posicão e não velocidade, provavelmente não tem isso implementado na biblioteca.
Pages: 1 ... 108 109 [110] 111 112 ... 220