Show Posts
Pages: 1 ... 9 10 [11] 12 13 ... 34
151  International / Portugues / Re: Webserver sem ethernet shied? on: July 19, 2013, 05:16:46 pm
Contrariando os colegas!

Sim é possível, só tens de produzir um circuito que faça o mesmo que a shield  smiley-razz

Só será muito mais complexo, e como tempo é dinheiro, dependendo do valor do teu tempo, mais caro smiley-wink
152  International / Portugues / Re: LER DATA E HORA NO ARDUINO . Erro no código on: July 19, 2013, 05:13:13 pm
Fiquei pensando: "como conseguirá tirar amostragens a cada 3 minutos se o programa estiver em um delay de 15 minutos?" smiley-wink

Se fizeres o cálculo terás 19 minutos e não 15 que é o que estavas a dizer.

Exorciza esses delays, rapaz!!! xD

Pensa que o arduino pode tirar amostragens de três em tês minutos armazenado a média e mandar mensagem para o PC pela serial, somente quando o computador solicitar ou a cada x tempo sem ficar travadão. É necessário um protocolo master simples e o teu trabalho ficará muito mais elegante!
153  International / Portugues / Re: Arduino compatíveis ou originais? on: July 19, 2013, 06:52:52 am
Ainda não tive coragem de pagar o preço de um italiano, mas não tive problemas com compatíveis (UNO e MEGA).

Hoje tenho usado os chips ATMEGA328 na veroboard, usando o bootloader do arduino e os componentes mínimos indicados, o único inconveniente é soldar os componentes ^^ http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard

Compre um chinguino e seja feliz smiley-wink
154  International / Portugues / Re: Velocimetro com arduino como faço para medir a velocidade? on: July 19, 2013, 06:40:02 am
Progra,

Não consigo perceber pois a variável voltas só é incrementada quando o estado da porta muda e essa mudança é para LOW.

O funcionamento seria Igual ao de um botão, botão pressionado (pino norte = HIGH) ou solto (pino norte = LOW)

Como estão as conexões do teu circuito?
Em repouso (sem imã por perto) o sensor é HIGH, certo?

Tenta usar o resistor pull up da porta para manter a porta HIGH (evitar oscilações) até que o sensor a coloque LOW, pode se isso.

Code:
int estadoanterior = 1; //O estado HIGH
int voltas = 0;
unsigned long tempo = 0;
int norte=13;

void setup(){
  Serial.begin(9600);
  pinMode(norte, INPUT); //define a porta como input
  digitalWrite(norte, HIGH); // ativa o resistor pullup
}

void loop(){
  unsigned long agora;
 
  agora = millis();
  int estado = digitalRead(norte);
  int rotacao = 0;
 
  if (estado != estadoanterior){ //Se o estado da porta mudou
    if(estado == LOW) //Se o estado mudou para LOW
    {
      Serial.println("polo sul");
      voltas++; //Incrementa 1
    }
    else
      Serial.println("polo norte");
  }
 
  if (agora - tempo >= 1000){ //1000 milesegundos = 1 segundo
    rotacao = voltas/1000; //rotação por segundos
    Serial.print("passou um segundo e ");
    Serial.print(voltas);
    Serial.print(" voltas");
    Serial.print(", ");
    Serial.print(", RPS ");
    Serial.println(rotacao);
    tempo = agora; //guarda o tempo atual para que a mensagem apareça um segundo depois
    voltas = 0; //zera o contador
  }
}

Teu código ficou parecido com o acima? Qual resultado agora? Infelizmente estou no trabalho, mas, a não ser que eu precise de internação imediata, deve funcionar rs

Ou o Hugo pede para trazerem a camisa de força smiley-wink
155  International / Portugues / Re: Velocimetro com arduino como faço para medir a velocidade? on: July 18, 2013, 05:44:42 pm
conforme o exemplo que colocou ele vai contar de acordo o tempo que o polo estiver no imã nao?
eu precisarei indentificar os pulsos.

Progra,

Por favor, não me entenda mal, eu gosto de brincar e me esqueço que pela internet pode não parecer brincadeira. Não se  desculpe, eu sou novato e entendo como é iniciar em algo smiley-wink

Eu disse que não sabia mais qual era a tua dúvida, porque se lermos com cuidado aqueles posts, vemos a tua a pergunta "como faço para medir a velocidade?" respondida smiley

Sobre o meu rascunho de código, que o Hugo gentilmente corrigiu, eu coloquei quase que o mesmo que você, só que adicionei condições para evitar que o arduino conte um estado LOW mais de uma vez e depois coloquei um if comparando o tempo que passou para que seja avisado via serial quantas voltas o sensor capturou.

O loop do arduino ficará a detectar a mudança de estado do sensor (cada mudança é um pulso, certo?). Cada vez que o sensor mudar de estado o código adiciona +1 na variável voltas.

Quando passar 1 segundo ele envia para a serial quantas voltas (pulsos) ele contou e começa a contar novamente. Nessa parte que você pode fazer as contas, comparando a distancia percorria, para ter milímetros/centímetros/metros, o número de voltas e o tempo.

Mas como eu disse é só um rascunho, para você ver a lógica da minha sugestão. Minha dica agora é: Dá uma lida com calma no que foi colocado (nos dois tópicos), faça testes (o arduino aceita muitos e muitos uploads, não precisar temer  smiley-cool) e veja o resultado na serial, tenta melhorar o programa/lógica e veja os resultados no serial monitor.

Depois você nos conta quais foram os resultados e as novas dúvidas (se tiver) smiley-wink
156  International / Portugues / Re: Velocimetro com arduino como faço para medir a velocidade? on: July 18, 2013, 05:17:34 pm
Penso que por laspo te enganaste no &, pois apenas um & é uma operaçao de bitwise AND

Obrigado Hugo, estou mesmo pancada da cabeça rs
157  International / Portugues / Re: Arduino e controlador de motor L298N e 4 motors on: July 18, 2013, 02:13:18 pm
Esses motores são grandes vilões no que se refere a consumo, se tiverem de fazer esforço, veja esse da pololu http://www.pololu.com/catalog/product/1120/specs
Free-run current @ 6V:    70 mA
Stall current @ 6V:    800 mA

Faça a medição da corrente que o teu projeto consome com um amperímetro, isso te dá noção de quanto vai te consumir de pilhas/bateria.

158  International / Portugues / Re: Arduino e controlador de motor L298N e 4 motors on: July 18, 2013, 10:07:53 am
majully,

O problema ai não é a tenção, mas a corrente, pois dependendo do tipo de motor vão-se muitos amperes ^^

Por isso perguntei qual a corrente que os motores consomem. Se forem aqueles DC usados em brinquedos, podem consumir até 800mA. Você testou com as pilhas alimentando o motor e a bateria alimentando o arduino? (o arduino consome pouca corrente, a bateria não é pouco para ele)

Se as pilhas forem de 1,2v -> 6 x 1,2v = 7,2v, em termos de tensão esta acima da média (mas tensão muito alta pode reduzir a vida útil dos motores)...

159  International / Portugues / Re: VirtualWire RF 433 - problemas com função on: July 18, 2013, 09:58:43 am
Se o código funcionava no loop e você apenas o moveu para uma função, não tem porque não funcionar.
Code:
void loop(){
  radio();
}
você fez o acima e não funcionou? Você recebe alguma mensagem de erro ao compilar ou compila e nada acontece com o arduino rodando?

Como o Legend sugeriu, posta o código completo para vermos o que se passa.
160  International / Portugues / Re: LER DATA E HORA NO ARDUINO . Erro no código on: July 18, 2013, 09:52:07 am
Pedro,

Como o PC ficará o tempo todo conectado ao arduino, você pode seguir a sugestão do bubulindo e economizar com o RTC. Envia a solicitação de dados do PC para o arduino ('M') e o arduino imprime na serial os dados que já estás a ler.

Vá estudando, faça testes isolados (um sketch para testar a comunicação via serial, um para testar a livraria time, etc), tente entender cada linha do código de cada parte e depois junta tudo para o teu projeto final. Assim você encontra a forma que você acha melhor para fazer o que queres.
161  International / Portugues / Re: LER DATA E HORA NO ARDUINO . Erro no código on: July 17, 2013, 09:08:23 pm
dentro da pasta Examples estarão os exemplos que o HugoPT falou smiley-wink

dente eles o "\Arduino\libraries\Time\Examples\TimeSerial"
Code:
/*
 * TimeSerial.pde
 * example code illustrating Time library set through serial port messages.
 *
 * Messages consist of the letter T followed by ten digit time (as seconds since Jan 1 1970)
 * you can send the text on the next line using Serial Monitor to set the clock to noon Jan 1 2010
 T1262347200 
 *
 * A Processing example sketch to automatically send the messages is inclided in the download
 */
 
#include <Time.h> 

#define TIME_MSG_LEN  11   // time sync to PC is HEADER followed by unix time_t as ten ascii digits
#define TIME_HEADER  'T'   // Header tag for serial time sync message
#define TIME_REQUEST  7    // ASCII bell character requests a time sync message

void setup()  {
  Serial.begin(9600);
  setSyncProvider( requestSync);  //set function to call when sync required
  Serial.println("Waiting for sync message");
}

void loop(){   
  if(Serial.available() )
  {
    processSyncMessage();
  }
  if(timeStatus()!= timeNotSet)   
  {
    digitalWrite(13,timeStatus() == timeSet); // on if synced, off if needs refresh 
    digitalClockDisplay(); 
  }
  delay(1000);
}

void digitalClockDisplay(){
  // digital clock display of the time
  Serial.print(hour());
  printDigits(minute());
  printDigits(second());
  Serial.print(" ");
  Serial.print(day());
  Serial.print(" ");
  Serial.print(month());
  Serial.print(" ");
  Serial.print(year());
  Serial.println();
}

void printDigits(int digits){
  // utility function for digital clock display: prints preceding colon and leading 0
  Serial.print(":");
  if(digits < 10)
    Serial.print('0');
  Serial.print(digits);
}

void processSyncMessage() {
  // if time sync available from serial port, update time and return true
  while(Serial.available() >=  TIME_MSG_LEN ){  // time message consists of a header and ten ascii digits
    char c = Serial.read() ;
    Serial.print(c); 
    if( c == TIME_HEADER ) {       
      time_t pctime = 0;
      for(int i=0; i < TIME_MSG_LEN -1; i++){   
        c = Serial.read();         
        if( c >= '0' && c <= '9'){   
          pctime = (10 * pctime) + (c - '0') ; // convert digits to a number   
        }
      }   
      setTime(pctime);   // Sync Arduino clock to the time received on the serial port
    } 
  }
}

time_t requestSync()
{
  Serial.print(TIME_REQUEST,BYTE); 
  return 0; // the time will be sent later in response to serial mesg
}

As vezes as respostas estão muito mais próximas que as perguntas smiley-wink
162  International / Portugues / Re: Arduino e controlador de motor L298N e 4 motors on: July 17, 2013, 09:03:01 pm
verdade, 4 motores com uma bateria de 9v (quantos mAh? 400mAh?), assim não pode, assim não dá! rs

qual a tensão e corrente exigidas pelos motores?

Se botar a bateria no arduino e as pilhas nos motores deve ficar menos pior smiley-wink
163  International / Portugues / Re: Velocimetro com arduino como faço para medir a velocidade? on: July 17, 2013, 08:51:52 pm
(...)alguem me ajudasse a fazer essa mediçao de velocidade.(...)

esse Delay(50); me imcomoda!!! rs

uma solução é usar uma das interrupções do arduino a outra é guardar o estado anterior da porta para que ela não seja contada mais de uma vez e comparar o millis para o momento do cálculo das rotações.

vejo um probleminha em teu código e sugiro algo como o abaixo (se não for usar interrupções)

o delay pode fazer você perder um pulso ^^
Code:
//tipo:
int estadoanterior = 1; //HIGH
int voltas = 0;
unsigned long tempo = 0;

void loop(){
unsigned long agora;
int estado = digitalRead(norte);
int rotacao = 0;

if (estado == LOW & estado != estadoanterior){
Serial.println("polo sul");
voltas++;
}else if (estado == HIGH & estado != estadoanterior){
Serial.println("polo norte");
}

agora = milles();
if (agora - tempo => 1000){ //1000 milesegundos = 1 segundo
rotacao = voltas/1000; //rotação por segundos
Serial.print("passou um segundo e ");
Serial.print(voltas);
Serial.print(" voltas");
Serial.print(", ");
Serial.print(", RPS ");
Serial.println(rotacao);
tempo = agora; //guarda o tempo atual para que a mensagem apareça um segundo depois
voltas = 0; //reinicia a contagem para o próximo segundo
}
}

para o velocímetro você só precisa saber quantos centímetros, metros, milímetros ou outra medida que tua roda percorre até percorrer o angulo de 360 smiley-wink

Tira apenas a ideia do código, pois estou quase caindo de sono e nem consigo ler o que escrevi rs

Teve um post, pouco tempo atrás, onde um carinha tinha uma dúvida relacionada ao cálculo de velocidade e estava usando uma interrupção do arduino: http://forum.arduino.cc/index.php?topic=167998.0 diz se ele ajuda em algo.

Ops, acabo de checar que você passou por lá, desculpe-me, qual é a tua duvida mesmo? o.O
164  International / Portugues / Re: Ajuda, botão + Rele on: July 17, 2013, 08:14:12 pm
Eu tirei um rele de uma sucata aqui e o estado sem tensão era ligado... e demorou para cair a ficha rs
165  International / Portugues / Re: VirtualWire RF 433 - problemas com função on: July 17, 2013, 08:11:52 pm
te falta o LOOP smiley-wink
Pages: 1 ... 9 10 [11] 12 13 ... 34