Show Posts
Pages: [1] 2 3 ... 107
1  International / Portugues / Re: Multi-tarefa no Arduino Mega on: September 18, 2014, 05:40:46 am
Quote
Os pinos GPIO do RPi vão receber os pinos IO do mega? E com isto a lógica será feita no RPi?
Nao.O RPI tem por exemplo I2C e o arduino tambem.Com apenas 2 fios consegues ligar o teu RPI ao teu mega e trocar informaçao por la.Constroes o teu programa no arduino que interage com o teu hardware e eventualemente podes mandar informaçao para o RPI via I2C ou o RPI a fazer um polling de informaçao ao arduino tambem por I2C.
2  International / Portugues / Re: Multi-tarefa no Arduino Mega on: September 17, 2014, 03:04:57 pm
Pergunta estupida, se tens um raspberry pi com muitos mais recursos que o mega porque é que queres uma pagina a correr num cartao sd no mega?
o raspberry tambem tem GPIO que podes usar para eventualemente interligares ao teu mega.
Em resumo com um só core NUNCA vais ter multitask!
3  International / Portugues / Re: como ligar um motor com um rele e desligar o motor atraves de um timer on: September 13, 2014, 05:02:29 pm
Á uns anos atras tive algo semelhante em maos e a forma que eu encontrei para resolver foi a seguinte.
No meu cenario eu tinha de guardar uma variavel que contava peças mas caso falha-se a energia nao perder a contagem pois tal como tu se a perdesse iria perder o controlo da variavel o que invalidava todo o sistema.
O que fiz foi usar um dos pinos do micro para detectar a tensao de alimentaçao e alimentei o avr com 2 condensadores de 2200uF em paralelo, o que da uns 4400uF.Como o micro tem um consumo super reduzido os condensadores suportam o micro durante uns preciosos segundos e o que fiz foi, caso deteta-se que fiquei sem energia (neste momento a minha fotocelula tambem ficou e todo a contagem parou) gravo o valor da minha variavel na eeprom e deixo o avr num loop infinito até que esgote a energia dos condensadores.Desta forma asseguro que gravo o valor apenas uma vez e a posso reaver no momento de arranque com uma flag tambem na eeprom que marca que existiu uma falha de energia.O loop infinito no final da gravaçao da eeprom verificava  o pino da alimentaçao pois se ela durante esses segundos voltar quebrava o while e tudo voltava ao normal.Desta forma aumentei a vida util da eeprom pois por cada falha de energia so la escrevia 2 vezes, ou se entretanto a energia volta-se no momento da falha tambem 2 vezes.
Penso que podes usar este mesmo principio para o teu caso.
4  Using Arduino / Networking, Protocols, and Devices / Re: Problem with arduino, bluetooth module and c++ on: September 10, 2014, 06:20:12 am
What opeartion system are you running?
In windows you could simply go to device manager and see what COM port you have assigned to the bluetooth under COM Ports

5  Using Arduino / Programming Questions / Re: how to avoid float variables? on: September 10, 2014, 03:36:49 am
There is a written library for the bmp180 already
Why not just try to use it.
https://github.com/sparkfun/BMP180_Breakout/archive/master.zip
Looking to your function it seams some rocket sience is happening there  smiley-mr-green
Anyway since I never play with that sensor I could be wrong.
Try to compare the library with your code ...
6  International / Portugues / Re: Problema de detecção da Porta COM!!! on: September 09, 2014, 05:23:33 am
Só contigo ... smiley-grin
O que reportas nao é normal se é isso que queres saber.No entanto nao das informações suficientes para que algo mais possa ser dito
7  International / Portugues / Re: como ligar um motor com um rele e desligar o motor atraves de um timer on: September 08, 2014, 05:32:05 pm
Quote


delay(1800000); // Aguardamos o intervalo de 30 minutos ( convertido em milisegundos)

Sem ofensa mas acho isto ridiculo.Sei que a tua intençao em ajudar é boa, mas um delay desses é sem duvida ridiculo
Ja te foi dada todas as informaçoes para fazer o que queres.
Code:
#define  MILISECONDS_IN_MINUTE  60000UL
#define MY_SETPOINT_IN_MINUTES 2 //2 minutos
#define CLOCK_TIMER (MILISECONDS_IN_MINUTE * MY_SETPOINT_IN_MINUTES)


byte rele = 8;
byte BOTAO = 0;
byte MOTOR = 0;
byte PORTA_B = 10;
unsigned long motorStartedAt = 0;
void setup()
{
  pinMode(PORTA_B, INPUT);
  digitalWrite(PORTA_B,1);
  pinMode(rele, OUTPUT);
  digitalWrite(rele,0);

}

void loop()
{

  BOTAO = digitalRead(PORTA_B);
  if(BOTAO == 0)
  {
    digitalWrite(rele,MOTOR);
    motorStartedAt = millis();
  }
  if((millis() - motorStartedAt )>= CLOCK_TIMER)
  {
    digitalWrite(rele,0);
  }

}
Retira o sumo desta laranja ... smiley-wink
8  Using Arduino / Networking, Protocols, and Devices / Re: Problem with arduino, bluetooth module and c++ on: September 07, 2014, 04:23:26 pm
Quote
i need to send by c++ a serial data with bluetooth, how can i do?
So in C++ make an  instance   of type SerialPort and call the write method on it.
Something like:
Code:
using System.IO.Ports;
....
myserialPort = new SerialPort(COM3,9600);
myserialPort.Open ();
myserialPort.Write("x");//where x  is what you want to send
....

For more info see this:
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-1
Hope it helps

9  International / Portugues / Re: Porta Serial no Linux on: September 06, 2014, 02:42:36 pm
Ou no momento que ligas o cabo USB ao arduino tenta ver o que escreve no fim do syslog usando o tail -f
10  International / Portugues / Re: Poderiam me ajudar a desenvolver um código ?? on: September 03, 2014, 03:37:30 pm
Bem este menino merece premio ja que nunca vi algo assim por aqui.Até tava para lhe aumentar o karma pelo descaramento. smiley-lol
Quote
Dicas: procurem como usar I2C entre arduinos, como montar teclados no arduino;
O master ficará responsavel pela seleção de misturas e armazenar as receitas, passando para o slave, o que fazer, em que tempo, quanto;
O Slave trata-ra as saídas analógicas para aquecer a agua e exibirá no display lcd o que esta ocorrendo;
Usem entradas analógicas para verificar se a água já esta na temperatura selecionada;
Para os dozadores busquem por uso de servos com arduino;
Quando li isto escangalhei-me a rir...
Amigo se ja tens as dicas nao devias ser tu a segui-las só assim por acaso?
Talvez seja melhor fazeres uma carta ao Pai Natal tal como as crianças a pedir os chocolates para a  epoca...
Boa sorte!


11  International / Portugues / Re: AttachInterrup e Variável Global on: September 02, 2014, 06:40:18 am
Como "rule of the tumb" nunca deves executar nada que demore precioso tempo dentro de uma rotina de interrupçao.As comunicaçoes serie sao muitoooo leeentttasssssss .....
Portanto nao podes fazer isto:
Quote
void funcao()  {

   Serial.print(valor); // Mas não consegue ler aqui

}
A soluçao passa por colocar uma flag dentro da rotina de interrupçao.
Algo isto:
Code:
nt valor;
bool flagDeInterrupcao = false;

void setup()
{
  pinMode(2, INPUT);
  attachInterrupt(0, funcao,RISING); 
}

void loop() 
{
  valor = analogRead(A0); // O valor atribui certo aqui
  if(flagDeInterrupcao)imprimeValor();
}

void funcao() 
{
  flagDeInterrupcao = true;
}
void imprimeValor()
{
  Serial.print(valor);
  flagDeInterrupcao = false;
}
12  International / Portugues / Re: variavel tempo e calculo velocidade on: September 02, 2014, 06:33:26 am
Quote
A variável tempo vai ser usada para mostrar um valor em segundos
Mais usando o delay isso estaria certo?
Nao.para obteres o tempo em segundos usas a funçao millis() que te devolve um valor em milisegundos desde que o teu arduino ligou.Se quiseres o valor em segundos algo assim dá:
Quote
unsigned long tempo = millis() /1000;
Quote
Uma outra dificuldade seria de como calcular a velocidade sendo que:
velocidade = metros / tempo

Como eu faria para fazer esse calculo dentro de um certo tempo (1 segundo), exemplo:
A tua resposta depende um pouco de qual a precisao que queres fazer esse calculo.Podes usar o millis() tambem para saber se ja passou um segundo, mas isto quer dizer que o teu calculo muitas das vezes nao vai ser feito logo apos um segundo, pode ser um segundo e uns 3 milisegundos ou mais, quero isto dizer que ele vai fazer o teu calculo apenas apos o 1 segundo.Se no entanto te for imperativo fazer o calculo nos 1000 milisegundos certinhos o melhor é usares um dos timers e configura-lo para gerar uma interrupçao quando o timer fizer overflow.Esta interrupçao vai por si marcar uma flag para que seja executada a funçao da velocidade.Nota que tambem este metodo pode fugir aos 1000 milisegundos, mas é o mais aproximado que iras conseguir em termos de exatidao perto dos teus 1000 milisegundos.
Para usares o millis isto deve te dar uma idea de como podes fazer.
Quote
long intervalo = 1000;         
long previousMillis = 0; 
int metros = 0;
void setup()
{
Serial.begin(9600);
   
}

void loop()
{

  unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis > intervalo) {

    previousMillis = currentMillis; 
Serial.print(funcCalculavelocidade());
Serial.println("ms");

  }
}


int funcCalculavelocidade()
{
  //fazes as tuas contas ....
  return metros/ 1000;
}
13  International / Portugues / Re: Função loop dentro do void loop() on: August 29, 2014, 03:22:16 pm
Quote
para o estressadinho, alterei o post para que fique agradável aos seus olhos.

como eu tenho um pouco mais de respeito do que você não vou pronunciar o que de fato seria apropriado.
e reporte à moderação, e aproveita e peça para me banir.

usuário de merda!
bruno_km4 penso que nao necessitavas de entrar a pé juntos para responderes à critica que o colega LuisSilva te fez.
Ele tem razao, ninguem lê e apesar do teu post ser percetivel do meu ponto de vista devias ter apenas formatado o codigo ...
Ok nao o fizeste, nao considero que isso fosse ultra grave para te banir o post ...
Nota que o LuisSilva é um bom membro deste forum e nota-se que ele dedica o seu tempo a ajudar outros sem nada em troca, como tal ele é digno de mais respeito.Eu estava mesmo agora a responder a tua questao, quando o submeti vi que deste esta resposta...
Agora devo concordar que sim deves ser banido ja que tu foste duplamente um mau user ...
Eu nao te ia atirar a "pedra" pelo teu post mal formatado mas agora atiro...
Errar é humano mas ter humildade é algo que só alguns têm ...
14  International / Portugues / Re: Algum problema em controlar Fan/Cooler via PWM? on: August 29, 2014, 03:05:42 pm
Depende de como montas o circuito.Tens de calcular as resitencias e assegura-te que o teu transistor consegue "aguentar" com a corrente que a tua FAN vai consumir com o PWM no maximo.Nota que quando um transistor excede os seus limites ele entra em curto logo isso pode ser uma boa fonte de fumo branco a aparecer em algumas partes ....
15  International / Portugues / Re: Dá para ligar uma bateria de 7.4V a dois servos? on: August 25, 2014, 01:06:08 pm
Quote
Já agora sabem dizer-me qual será a voltagem aconselhada à saída?
Pelo que percebi visto os servos funcionarem a 5V a tensao a que eu ajustaria o regulador seriam os 5V.
Quote
Estou a pensar 7V quando a bateria estiver totalmente carregada, o que me dizem?
Isto nao percebi ...
Pages: [1] 2 3 ... 107