Show Posts
Pages: [1] 2 3 ... 103
1  International / Portugues / Re: Como ler no arduino a porta serial criada pelo Bluetooth? on: July 17, 2014, 02:06:54 am
Quote
A questão é, quado eu faço o emparelhamento do módulo bluetooth com o meu pc é criado uma porta serial responsável por mostrar os dados enviados pelo bluetooth, mas como eu posso pegar esses dados e executar alguma ação no arduino 2?
Com o que tu nao queres fazer smiley-mr-green
Quote
Eu não queria fazer um programa em php, java, c#, etc para intermediar...
Não tens como fugir a isso!
Vais ter de fazer um programa numa linguagem que consigas programar(VB,C#,Delphi,Java,c++,c ....) e ficar a escuta nessa porta serie que o teu Bluetooth cria e eventualmente depois tratares isso  enviar para a outra porta serie onde esta o arduino 2

2  International / Portugues / Re: Sensor de Corrente de 100A mas motor no início vai até 150A on: July 16, 2014, 06:15:58 pm
Quote
Será que com esse sensor de 100A é o limite que ele lê ou será que pode estragar o sensor se for submetido a ler uma corrente superior a essa?
Olhando para o link que passas-te da pra ver que ele é constituído por uma bobine que mediante a corrente que passa dentro cabo que a bobine envolve este ira induzir uma tensão á bobine e por sua vez surgir uma tensão proporcional nos terminais da bobine.Assim sendo se ultrapassares a corrente que medes não ira destruir o sensor, ira sim induzir mais tensão e ai sim tens de garantir que o que vai ler essa tensão tolera esse valor.
3  International / Portugues / Re: arduino e Visual Basic on: July 16, 2014, 06:06:36 pm
Quote
agora mais só  consego ler 1 entrada analógica como faço para ler as outras 15 entradas
Em traços gerais crias um array que suporte todos os teus ints das entradas (ex int dataToSend[14]) e depois envias-lo todo pela Serie.No VB lês todos os bytes novamente para um array e separa-los para obteres os teus ints.
Nota que no VB um int são 4 bytes e no arduino um int são 2 bytes!
Como o Bubulindo te disse procura no fórum sobre protocolos de comunicação, pois para alem do que te disse convém colocares um carácter marcador de inicio e de fim nos dados que envias, de modo a saberes onde começam os dados e onde acabam.
Um bom material de estudo podes consultar aqui:
http://www.gammon.com.au/forum/?id=11425
4  Using Arduino / Networking, Protocols, and Devices / Re: Serial Comm With Security Panel on: July 16, 2014, 02:35:26 am
Pi and arduino both use TTL level on the pins.On Pi some of the pins are 3.3V
Since your alarm system uses RS232 it means the voltage signals are not 5V compatible, so in order for you to listen the "TX" line of the alarm system you need a RS232/TTL converter.
A good way to "see" the bytes of the communication is using a pc software like RealTerm and simply set the baud and watch what is passed on the TX wire connecting the RX pin of the RS232/TTL converter
This will give you a clear picture of the alarm system protocol
Then move to arduino programing
Ps:Looking for your picture I think the alarm uses rs485 not rs232 since rs232 is for small distances and does not allow to the wire be shared.Since the devices have addresses it should be rs485.Check it...
5  International / Portugues / Re: Sensor de Corrente de 100A mas motor no início vai até 150A on: July 14, 2014, 05:54:37 pm
Porque nao verificar no datasheet do sensor?
Em todo o caso também não acho boa ideia ter o componente sobre esse stress inicial, mas podes confirmar isso no datasheet do fabricante.
6  International / Portugues / Re: Entradas e saidas analogicas do Arduino Uno on: July 14, 2014, 05:51:07 pm
Quote
ou 0 - 20 ma. Como eu posso ligar na analógica do Arduino para que ele possa ler esses valores (tensão ou corrente).
Se optares por a ler o sensor através da corrente ( 0-20mA) podes usar uma simples resistência de 250 ohms de precisão e lês o valor de tensão nos terminais dela.A lei de ohm vai assegurar que teras 5V nos terminais dela quando esta estiver a ser atravessada por uma corrente de 20mA (V = RxI == 250x0.02 = 5V
Estes 5 volts estão de acordo com o que a analógica do arduino tolera, no entanto e bom colocares um ampop em ganho unitário(buffer) de modo a que tenhas um isolamento (Alta impedância de entrada e baixa impedância de saida) entre o circuito de corrente do sensor e a entrada do arduino.
Podes depois também adicionar um potenciómetro multi-voltas na malha de realimentação do ampop para compensar a tensão de off-set caso o ampop tenha uma tensão de off-set considerável ou para calibração ...
7  International / Portugues / Re: Como gravar na memória EEPROM os dados recolhidos pelos sensores? AJUDA SFF!! on: July 07, 2014, 08:51:03 am
Outra forma seria enviar os dados para um cartao SD  com a leitura , data, e hora.
Se guardares isso num ficheiro csv( Comma-separated values) depois podes abrir no excel e ate desenhar um gráfico por exemplo com os dados obtidos.
Em termos de hardware necessitas de ligar o cartao SD ao interface SPI e o RTC via I2C.
8  Using Arduino / Networking, Protocols, and Devices / Re: Two spi devices working on Same Arduino on: July 07, 2014, 05:26:35 am
Quote
Is SS the enable pin? Here is my device
Yes.In nrf24L01 module it is the pin 4(CSN).
9  International / Portugues / Re: Porta serial do Arduino Uno on: July 02, 2014, 02:50:39 pm
Quote
Eu nao entendi muito bem a parte dos ENUM
Bom o ENUM é uma forma de teres conjuntos de valores como se fossem constantes da linguagem
Um caso disso é o #define, mas o ENUM permite enumerar de uma só vez mais "constantes"

Quote
enum {       
        MB_CTRL,        /* Led control on, off or blink */
        MB_TIME,        /* blink time in milliseconds */
        MB_CNT,         /* count the number of blinks */
        MB_REGS       /* total number of holding registers on slave */
};
Isto equivale a estares a definir MB_CTRL = 0 MB_TIME = 1 MB_CNT = 2 MB_REGS = 3
Nao entendo é porque é que o autor não deu nomes á enumeraçao ...


Code:
int regs[MB_REGS];
int inputregs[MB_INPUTREGS];
bool coils[MB_COILS];
bool inputs[MB_INPUTS];
Isto equivale a isto:

Code:
int regs[3];
int inputregs[1];
bool coils[2];
bool inputs[1];
10  International / Portugues / Re: Porta serial do Arduino Uno on: July 02, 2014, 07:44:38 am
Quote
A proposito você usou que protocolo no seu sistema?
Concebi o meu proprio protocolo
Quote
Outra coisa, como vc comuta o Max485? Eu nunca usei um destes por isso eu estou perguntando.
O max485 tem 2 pinos (RE DE) que normalmente numa comunicação half-duplex os unes e os controlas com um pino no microcontrolador.Estes dois pinos basicamente server para colocar o max em escuta ou a enviar dados mediante o nivel logico.
Podes unir os dois pinos devido a um ter logica invertida(nota que ele tem o simbolo de negado).
Tal como te disse é importante acertar nos tempos e algo onde eu perdi algum tempo a depurar o meu código foi neste aspecto.
Em traços gerais sempre que queiras "ouvir" o barramento tens de ter pino que esta ligado aos (RE DE) em nível 0 e sempre que queiras enviar dados tens de o ter a nível 1.
Receber dados é relativamente simples, já o enviar tem um pormenor, é necessário assegurar que só voltas ao modo escuta quando efetivamente todos os bytes tiverem sido enviados, isto é, terem saído do serial buffer.
Em traços gerais usei isto assim:
Code:
  txMode();
  Serial.write(data,8);
  while (! TXC0); //Aguarda até esvaziar o buffer TX
  rxMode();
11  International / Portugues / Re: Compro programação com lcd I2C para arduino on: July 02, 2014, 07:28:31 am
Uhmm isso parece ser uma missão à James Bond ...
12  International / Portugues / Re: Porta serial do Arduino Uno on: July 01, 2014, 03:07:40 pm
Ola amigo.
Podes muito bem usar o RS485.Usares o ethernet pode te encarecer um pouco a solução.Quanto á distancia depende um pouco do baud-rate que utilizes no barramento RS485, mas no ultimo projecto onde o usei não tive problemas em cerca de 300 metros de cabo usando um baud-rate a 9600 bps.
Eu usei os MAX485 e so tive de desenvolver um simples protocolo de comunicação.O RS485 funciona na camada física do modelo OSI por isso so tens de garantir que trocas os bytes no bus comutando o max485 nos tempos certos enquanto os outros nós escutam.Basicamente tenho um nó master que interroga os slaves e eles quando detectam que a mensagem tem i ID que lhe pertence  responde no bus.
Nas mensagens trocadas faço controlo de CRC para verificar a veracidade dos dados.
Pra te dar uma idea do que fiz ficam umas fotos das placas que fiz

13  International / Portugues / Re: Máscara de bits on: June 30, 2014, 06:52:24 am
Quote
O que eu não entendi é como o Ci74.. sabe quais LEDS acenderem de acordo com o número que aparece.
Simples.
O shift register como deves ter reparado tem 8 pinos de saida(Q0 a Q7) que corresponde a um byte.Basicamente usando a operação de deslocamento (1<<X) estas a manipular o bit dentro do byte que estas a enviar para o shift register.
O resultado é que quando levantares o pino de latch(colocando este em high) o shift register vai colocar os leds de acordo com o que lhe envias-te serialmente.
Tu por exemplo constrões o byte ficando por exemplo 10101011 e envias para o shift register.Nota que o bit mais significativo( o mais a esquerda) esta a 1 logo o led ligado no Q7 vai ficar a 1 também, ja o Q8 vai ficar desligado .... o Q1 ligado e o Q0 ligado também.
14  Using Arduino / Programming Questions / Re: boolean doesn't response on: June 29, 2014, 04:51:34 am
Quote
Also do your self a favor and use the real bool, last night I found serious logic errors using the 'boolean' type ( as it is not at all a bool ):
This is an interesting thing to discuss.Would you like to share what you notice in boolean vs bool ?
15  Using Arduino / Programming Questions / Re: Int to string error (serial communication) on: June 29, 2014, 04:38:32 am
You should use char arrays instead of String objects.
Try to avoid Strings because they have some known ram problems

Your solution could be:
Code:
char incomingRawData[4];//I assume you only will pass 4 values like you say -> I send from RaspberryPi 178
uint8_t i = 0;
void setup()
{
  Serial.begin(9600);
}
void loop()
{
  if(Serial.available() && i <= 2){
    incomingRawData[i++] = Serial.read();
  }
  if(i== 3){
  //It means you have all bytes already in the incomingRawData array
  //lets process it
  Serial.print("The node number is ");
  Serial.println(incomingRawData[0]);
  incomingRawData[3] = '\0';
  char * stringValue = &incomingRawData[1];
  Serial.print("The value passed is ");
  Serial.println(stringValue);
  //reset the i variable
  i = 0;
  }
}

Pages: [1] 2 3 ... 103