Show Posts
Pages: 1 ... 89 90 [91] 92 93 ... 215
1351  International / Portugues / Re: Problemas com relé on: February 13, 2013, 04:27:55 pm
no loop para ele sempre estar verificando se o sensor esta conectado porque em caso de um contato ruim a temperatura vai zerar, e assim o aquecedor vai ligar porque entende que a temperatura esta abaixo.... entao a cada loop ele verifica se o sensor esta marcando a temperatura, caso contratio desliga tudo e me alerta.

Isto parece-me estranho... tens a certeza que a funcão de leitura não retorna um erro se tirares a ligacão do sensor? Só dá zero? Se bem me lembro no interface one wire, havia um handshake que dava para entender se o sensor estava ligado ou não.
Podes tirar os if antes do while já que estás a chamar a mesma funcão e assim o programa também trava ali.



1352  International / Portugues / Re: Notificador de E-Mail, Ajuda na leitura do parsing da string enviada. on: February 13, 2013, 07:54:47 am
Sim... ou vbNewLine

http://msdn.microsoft.com/pt-br/library/microsoft.visualbasic.constants.vbnewline.aspx
1353  Using Arduino / Programming Questions / Re: controlling loops with separate pushbuttons on: February 12, 2013, 10:24:49 pm
What should happen if you push two buttons at the same time?

Is there a priority to the sequences that you want to implement, or do you just want to run if there is a single selection made?

If that is the case...

Code:
while ((inputSequence == HIGH) && (inputDial == LOW) && (inputOn == LOW)){
    Sequence();
  }

This guarantees that for any lights to turn on you need to only have one selection made. But if this is a selection switch... this isn't useful.

How did you hook up your selection switch? Any Pull-up resistors there?

Try this:
Code:
  pinMode(inputSequence, INPUT);
  pinMode(inputDual, INPUT);
  pinMode(inputOn, INPUT);
  digitalWrite(inputSequence, HIGH);       // turn on pullup resistors
  digitalWrite(inputDual, HIGH);       // turn on pullup resistors
  digitalWrite(inputOn, HIGH);       // turn on pullup resistors

Apart from the pull-up resistors can't think of anything that would cause this not to work.
You must understand that once you change the selection, the function has to end running before the new sequence can start. That can take a couple of seconds.
1354  International / Portugues / Re: Problemas com relé on: February 12, 2013, 03:45:08 pm
Eu não olhei para o script, mas fiquei a pensar porque é que fazes a procura do sensor no loop.

Não devias fazer isso no setup para verificar que o sensor está lá e depois tentar ler dele? Certamente que a funcão de leitura dá um erro se o sensor não estiver lá, certo?

1355  International / Portugues / Re: Duvida para ler uma trama on: February 12, 2013, 03:42:37 pm
Podias melhorar fazendo com que essa funcão verificasse se a trama é válida ou não.

Mas em todo o caso, ainda bem que servimos de ajuda. smiley
1356  International / Portugues / Re: Notificador de E-Mail, Ajuda na leitura do parsing da string enviada. on: February 12, 2013, 06:13:50 am
Para isso vais precisar duma biblioteca para esse LCD...

Depois disso, tens de definir um protocolo para a transmissão de dados. Percebes o que quero dizer com protocolo de dados?
1357  International / Portugues / Re: Usar Digital Pin como GND funciona assim ou danifica o Arduino? on: February 11, 2013, 08:55:40 pm
Porto é o conjunto de "8" pinos.

Se vires no datasheet existe o Porto A, B, C...

Normalmente, as correntes máximas são definidas em termos de porto e pino... um pino talvez aguente com 40mA, mas 8 pinos num porto não aguentaram 40mA individualmente.

40mA é um Absolute Maximum Rating (nunca se deve olhar para estes valores como referência).

Mais abaixo no datasheet tem isto:

Quote
Although each I/O port can sink more than the test conditions (20 mA at VCC = 5V, 10 mA at VCC = 3V) under steady state conditions (non-transient), the following must be observed:
ATmega48PA/88PA/168PA/328P:
1] The sum of all IOL, for ports C0 - C5, ADC7, ADC6 should not exceed 100 mA.
2] The sum of all IOL, for ports B0 - B5, D5 - D7, XTAL1, XTAL2 should not exceed 100 mA.
3] The sum of all IOL, for ports D0 - D4, RESET should not exceed 100 mA. If IOL exceeds the test condition, VO

Although each I/O port can source more than the test conditions (20 mA at VCC = 5V, 10 mA at VCC = 3V) under steady state conditions (non-transient), the following must be observed:
ATmega48PA/88PA/168PA/328P:
1] The sum of all IOH, for ports C0 - C5, D0- D4, ADC7, RESET should not exceed 150 mA.
2] The sum of all IOH, for ports B0 - B5, D5 - D7, ADC6, XTAL1, XTAL2 should not exceed 150 mA. If IIOH exceeds the test condition, VOH may exceed the related specification. Pins are not guaranteed to source current greater than the listed test condition.


1358  International / Portugues / Re: Usar Digital Pin como GND funciona assim ou danifica o Arduino? on: February 11, 2013, 08:33:56 pm
Desde que você observe o limite de 40mA, não há problema em fazer isso.

40mA se não me engano é para o porto todo, correcto?
Eu costumo dimensionar os meus circuitos de LED para 20mA por causa das coisas.

Olá pessoal,
Desculpem a noobisse, sou iniciante...
Sei que isso é estranho, mas gostaria de saber se posso fazer um circuito inverso do normal com um "led" usando DigitalPin como Ground.
Com isso o LOW acenderia e o HIGH apagaria o led ou isso poderia danificar meu Arduino?

Sim, a isso chama-se lógica invertida. smiley
1359  International / Portugues / Re: Arduino + Android + Amarino on: February 11, 2013, 06:45:15 am
Eu vejo duas coisas...

Segundo isto:

http://www.mathias-wilhelm.de/arduino/projects/bluetooth-amarino/?PHPSESSID=iuu4b974luemd815eh21dmbma2

o método receive é feito para processar eventos. Aliás, o método receive apenas retorna um bool, logo não é daí que ela vai ler os valores.
No entanto, seria interessante, ver o que é que esse método retorna.

Depois vejo algo que pode não estar correcto ou pelo menos não condiz com o teu código.

Tu no Android, mandas o valor 0 ou 1.

Code:
if (tbOnOffEsq.isChecked()) {
        EsqOnOff = 1;
        } else {
        EsqOnOff = 0;
        }

Mas depois fazes um analogWrite... um analogWrite de 0 ou 1 é a mesma coisa.
Experimenta fazer digitalWrite...

Code:
void led2(){  //Não precisas de parametros aqui. Aliás, isto deveria dar um warning... 
  int rec = meetAndroid.getInt();
  digitalWrite(ledPin2,  rec);
  Serial.println("led2 enter");
  Serial.println((int) rec);
}

Chegas a ver algo impresso no Serial Port? A julgar pelo teu código deverias ver 0 e 1 a chegar... Experimenta a função como eu a coloquei em cima. Com a função escrita assim deverás ver se o evento foi processado e ver "led2 enter"impresso no Serial Port.

A julgar pelo exemplo do link que coloquei em cima, isto é realmente a única coisa que está a faltar. :\

Experimenta e diz o que vês.
1360  International / Portugues / Re: Duvida para ler uma trama on: February 10, 2013, 12:16:23 pm
isso não importa... para o arduino os dados serão sempre binários. Hex, ou decimal ou octal ou binario é como te dá mais jeito a ti ver.

queres explicar o que é a carta de entrada\saida que estás a usar para ver se conseguimos ajudar mais?

Isto:

Code:
if (temp == 0xbb)//

é igual a isto:

Code:
if (temp == 187)//
1361  International / Portugues / Re: Duvida para ler uma trama on: February 09, 2013, 03:11:24 pm
O meu código não envia nada... apenas recebe.

Se tu envias e ele responde, os dados ficam no buffer e depois esse código deve encontrar os dados uqe pretendes.

Já meteste um serial.print para veres se recebes realmente alguma coisa após enviares o comando?
1362  International / Portugues / Re: Duvida para ler uma trama on: February 09, 2013, 01:20:34 pm
Code:

void loop(){
   char trama[18];
   
   if ( 0 == receive(trama)) {
      Serial.print("ERRO");
   }else{
      //o teu programa.

   }
}

#define RX_FRAME_SIZE    18

unsigned char receive(char * str){
unsigned char temp=0;

if (Serial.available()> RX_FRAME_SIZE) {//temos bytes suficientes...
   while(Serial.read() != 0xBB); //encontrar o inicio da trama.
     if (Serial.read() != 0xCC) {
         return 0;
     } else { //inicio da trama
        for (temp = 0; temp<RX_FRAME_SIZE-2; temp++) {
            str[temp] = Serial.read();
        }
return temp; //faltou-me isto.
}

1363  International / Portugues / Re: Duvida para ler uma trama on: February 09, 2013, 12:29:12 pm


Code:
#define RX_FRAME_SIZE    18

unsigned char receive(char * str){
unsigned char temp=0;

if (Serial.available()> RX_FRAME_SIZE) {//temos bytes suficientes...
   while(Serial.read() != 0xBB); //encontrar o inicio da trama.
     if (Serial.read() != 0xCC) {
         return 0;
     } else { //inicio da trama
        for (temp = 0; temp<RX_FRAME_SIZE-2; temp++) {
            str[temp] = Serial.read();
        }
}

Algo assim?
1364  International / Portugues / Re: Problemas com relé on: February 09, 2013, 07:10:18 am
Boas.

Não prestei muita atenção ao código, mas assim de repente podes melhorar isto:

Code:
const char estados[2][10] = {"ON ", "OFF"};

//por isto...

const char estados[2][4] = {"ON ", "OFF"}; //pormenores, eu sei... mas são 12 bytes que poupas :P

1365  International / Portugues / Re: Novo projecto maquina de corte de etiquetas - iniciante on: February 09, 2013, 05:36:44 am
Quanto as proteções tambem tou a pensar nisso mas como este é um prototipo a ser utilizado apenas por mim cá em casa não é algo que tenha já a ter em conta.

Eu tenho uma cicatriz de queimadura na mão esquerda por pensar assim...

O motor de passo não comunica a posição. Apenas são mais simples de fazer movimentos controlados. Daí teres de encontrar um sensor que te dê a posição do sistema. (pelo menos para o calibrares de início).

Depende da electroválvula...

Mais uma vez, o motor de passo não dá feedback da posição. Então tens decontar o número de passos dados pelo motor no programa. Isso é simples.
Pages: 1 ... 89 90 [91] 92 93 ... 215