Loading...
  Show Posts
Pages: [1] 2 3 4
1  Using Arduino / General Electronics / Schematic - ethernet shield - enc28j60- ekitszone on: March 25, 2013, 11:19:27 am
Hello!

I need the Schematic of the ethernet shield for Arduino Mega made by ekitszone.

The manufacturer's website is offline at the moment.

Below a picture of the shield which I refer.



Someone who has the saved file can help me?

Sorry for english.

Thank you.

Fernando Garcia
2  International / Proyectos / Re: Que necesito para hacerme un controlador on: March 08, 2013, 10:15:36 am
Mi proyecto.

https://github.com/FernandoGarcia

http://reefcorner.org/forum/topic.asp?TOPIC_ID=135383&whichpage=2
3  International / Portugues / Re: Problemas com relé on: February 16, 2013, 04:16:15 pm
Olá!

Tem alguma função deste tipo no seu código?

Code:
void(* resetFunc) (void) = 0; //declare reset function @ address 0


Tentei usar está função como cão de guarda no meu programa e acontecia a mesma coisa que relatou.

Abraço.
4  International / Portugues / Re: Controlar aquario on: February 14, 2013, 08:51:21 pm
Olá!

Se quiser algo mais elaborado dê uma olhada nisto:

https://github.com/FernandoGarcia/Ferduino_Portuguese



Abraço.
5  International / Portugues / Re: Demora ao compilar os Sketch´s on: December 30, 2012, 10:36:09 pm
Olá!

Uma coisa que também pode fazer a compilação demorar muito ou até mesmo dar erros é ter 3 pontos de exclamação consecutivos em uma string.

Aqui se mandar imprimir algo como "Alarme!!!" no LCD a compilação demora muito e na maioria das vezes dá erro.
Abraço.
6  Development / Suggestions for the Arduino Project / Re: And What about a Mega Ethernet on: December 02, 2012, 01:27:39 pm
Hello!

A shield like this would be great.



Best regards.
Fernando Garcia
7  International / Portugues / Re: Nova IDE... on: December 01, 2012, 10:03:44 am
Olá!

Na verdade maria mole é o nome de um doce brasileiro semelhante ao "marshmallow".

Acho que não vai conseguir uma tradução muito adequada.

Abraço.
8  Community / Exhibition / Gallery / Re: LED and aquarium controller with TFT LCD touch screen on: November 28, 2012, 10:02:03 pm
Hello Vasco!

I am writing a program based on your code. He was very helpful.

If you want to know my project can find it here:

https://github.com/FernandoGarcia/Ferduino

Here's more information but, in Portuguese. Sorry.

http://reefcorner.org/forum/topic.asp?TOPIC_ID=135383&whichpage=2

Thank you for your provided code.

Hug.

Fernando Garcia
9  International / Portugues / Re: Detectar corrente com Arduino on: November 28, 2012, 09:27:20 pm
Olá!
Primeiramente quero dizer que você está trocando a palavra tensão por corrente que são coisas bastantes distintas.

Dito isso, é necessário saber o modelo do arduino (não lembro de ter visto).

O arduino mega pode consumir até 800 mA se não estou enganado.

Agora se está falando de tensão, 9 v é o suficiente.

Abraço.
10  International / Portugues / Re: Detectar corrente com Arduino on: November 27, 2012, 07:05:37 pm
Olá!

Ricardo, usar um Arduino para ligar/desligar um gerador é muito perigoso.

O que pode acontecer com seus equipamentos caso haja uma falha e você tenha duas fontes de energia? Um curto circuito, que pode causar um incêndio.

Compre um quadro de comando que é bem melhor, apesar de ser caro.

Eles utilizam um intertravamento que impede que duas fontes de energia sejam ligadas simultaneamente.

Abraço.
Fernando Garcia
11  International / Portugues / Re: Adicionar separador em uma matriz de caracteres on: November 26, 2012, 12:33:21 pm
Olá!
bubulindo,obrigado pelas suas resposta.
Com base na sua sugestão consegui resolver o meu problema.

Fica aqui o código completo caso alguém necessite.

Code:
const int multiplexPIN1 = A14; // S0
const int multiplexPIN2 = A15; //S1

char inData[150];
char *inParse[150];
int index = 0;
int contador = 0;
boolean stringComplete = false;

int  int_valor_1 = 0;
float  float_valor_1 = 0;

short ph1=0; //Y0
short ph2=1; //Y1
short orp=2; //Y2
short ec=3; //Y3

int ORP = 0;
int DEN = 0;
float PHA = 0.0;
float PHR = 0.0;

void setup()
{                                                             
  Serial.begin(38400);                                                     
  Serial3.begin(38400);
  pinMode(multiplexPIN1, OUTPUT);
  pinMode(multiplexPIN2, OUTPUT);

  Open_channel(ph1);
  Serial3.print("L0");
  Serial3.print('\r');
  delay(500);
  Serial3.flush();
  Serial3.print("c");
  Serial3.print('\r');

  Open_channel(ph2);
  Serial3.print("L0");
  Serial3.print('\r');
  delay(500);
  Serial3.flush();
  Serial3.print("c");
  Serial3.print('\r');

  Open_channel(orp);
  Serial3.print("L0");
  Serial3.print('\r');
  delay(500);
  Serial3.flush();
  Serial3.print("c");
  Serial3.print('\r');
/*   
   Open_channel(ec);
   Serial3.print("L0");
   Serial3.print('\r');
   delay(500);
   Serial3.flush();
   Serial3.print("c");
   Serial3.print('\r');*/
}
long millis_antes = 0;

void loop()
{
  if((millis() - millis_antes) >= 10000)
  {
    millis_antes = millis();
    check_parametro_ph_aquario();
    check_parametro_ph_reator();
    check_parametro_orp();
   // check_parametro_densidade();
  }
}

void check_parametro_ph_aquario()
{
  char *str;   
  int count = 0;

  Serial3.flush();

  Open_channel(ph1);
  do
  {
    if (Serial3.available()>3)
    {
      char inChar = Serial3.read();
      inData[index] = inChar;
      index++;     
      if (inChar == '\r')
      {
        contador ++;
      }
      if(contador == 20)
      {
        inData[index] = '\0';
        contador = 0; 
        stringComplete = true;
      }
    }
  }
  while(stringComplete == false);

  for (int i= 0; i <= index; i++)
  {
    if (inData[i] == '\r')
    {
      inData[i] = ',';
    }
  }
  index = 0;
  char *p = inData;

  if (stringComplete == true)
  {

    while ((str = strtok_r(p, ",", &p)) != NULL)
    {   
      inParse[count] = str;
      count++;     
    }
    p = NULL;

    for(int i= 12;i <=19; i++)
    {
      float_valor_1 += atof(inParse[i]);
    }
    float_valor_1 /= 8;

    stringComplete = false;
    PHA = float_valor_1;
    Serial.print("PH do aquario:");
    Serial.println(PHA);
    Serial.print("[");
    Serial.print(inParse[12]);
    Serial.print(", ");
    Serial.print(inParse[13]);
    Serial.print(", ");
    Serial.print(inParse[14]);
    Serial.print(", ");
    Serial.print(inParse[15]);
    Serial.print(", ");
    Serial.print(inParse[16]);
    Serial.print(", ");
    Serial.print(inParse[17]);
    Serial.print(", ");
    Serial.print(inParse[18]);
    Serial.print(", ");
    Serial.print(inParse[19]);
    Serial.println("]");
    float_valor_1 = 0;
  }
}

void check_parametro_ph_reator()
{
  char *str;   
  int count = 0;

  Serial3.flush();

  Open_channel(ph2);
  do
  {
    if (Serial3.available()>3)
    {
      char inChar = Serial3.read();
      inData[index] = inChar;
      index++;     
      if (inChar == '\r')
      {
        contador ++;
      }
      if(contador == 20)
      {
        inData[index] = '\0';
        contador = 0; 
        stringComplete = true;
      }
    }
  }
  while(stringComplete == false);

  for (int i= 0; i <= index; i++)
  {
    if (inData[i] == '\r')
    {
      inData[i] = ',';
    }
  }
  index = 0;
  char *p = inData;

  if (stringComplete == true)
  {

    while ((str = strtok_r(p, ",", &p)) != NULL)
    {   
      inParse[count] = str;
      count++;     
    }
    p = NULL;

    for(int i= 12;i <=19; i++)
    {
      float_valor_1 += atof(inParse[i]);
    }
    float_valor_1 /= 8;

    stringComplete = false;
    PHR = float_valor_1;
    Serial.print("PH do reator:");
    Serial.println(PHR);
    Serial.print("[");
    Serial.print(inParse[12]);
    Serial.print(", ");
    Serial.print(inParse[13]);
    Serial.print(", ");
    Serial.print(inParse[14]);
    Serial.print(", ");
    Serial.print(inParse[15]);
    Serial.print(", ");
    Serial.print(inParse[16]);
    Serial.print(", ");
    Serial.print(inParse[17]);
    Serial.print(", ");
    Serial.print(inParse[18]);
    Serial.print(", ");
    Serial.print(inParse[19]);
    Serial.println("]");
    float_valor_1 = 0;
  }
}

void check_parametro_orp()
{
  char *str;   
  int count = 0;

  Serial3.flush();

  Open_channel(orp);
  do
  {
    if (Serial3.available()>3)
    {
      char inChar = Serial3.read();
      inData[index] = inChar;
      index++;     
      if (inChar == '\r')
      {
        contador ++;
      }
      if(contador == 20)
      {
        inData[index] = '\0';
        contador = 0; 
        stringComplete = true;
      }
    }
  }
  while(stringComplete == false);

  for (int i= 0; i <= index; i++)
  {
    if (inData[i] == '\r')
    {
      inData[i] = ',';
    }
  }
  index = 0;
  char *p = inData;

  if (stringComplete == true)
  {

    while ((str = strtok_r(p, ",", &p)) != NULL)
    {   
      inParse[count] = str;
      count++;     
    }
    p = NULL;

    for(int i= 12;i <=19; i++)
    {
      int_valor_1 += atoi(inParse[i]);
    }
    int_valor_1 /= 8;

    stringComplete = false;
    ORP = int_valor_1;
    Serial.print("ORP:");
    Serial.println(ORP);
    Serial.print("[");
    Serial.print(inParse[12]);
    Serial.print(", ");
    Serial.print(inParse[13]);
    Serial.print(", ");
    Serial.print(inParse[14]);
    Serial.print(", ");
    Serial.print(inParse[15]);
    Serial.print(", ");
    Serial.print(inParse[16]);
    Serial.print(", ");
    Serial.print(inParse[17]);
    Serial.print(", ");
    Serial.print(inParse[18]);
    Serial.print(", ");
    Serial.print(inParse[19]);
    Serial.println("]");
    int_valor_1 = 0;
  }
}

void check_parametro_densidade()
{
  char *str;   
  int count = 0;

  Serial3.flush();

  Open_channel(ec);
  do
  {
    if (Serial3.available()>0)
    {
      char inChar = Serial3.read();
      inData[index] = inChar;
      index++;     
      if (inChar == '\r')
      {
        contador ++;
      }
      if(contador == 20)
      {
        inData[index] = '\0';
        contador = 0; 
        stringComplete = true;
      }
    }
  }
  while(stringComplete == false);

  for (int i= 0; i <= index; i++)
  {
    if (inData[i] == '\r')
    {
      inData[i] = ',';
    }
  }
  index = 0;
  char *p = inData;

  if (stringComplete == true)
  {

    while ((str = strtok_r(p, ",", &p)) != NULL)
    {   
      inParse[count] = str;
      count++;     
    }
    p = NULL;

    for(int i= 12;i <=19; i++)
    {
      int_valor_1 += atoi(inParse[i]);
    }
    int_valor_1 /= 8;

    stringComplete = false;
    DEN = int_valor_1;
    Serial.print("Densidade");
    Serial.println(DEN);
    Serial.print("[");
    Serial.print(inParse[12]);
    Serial.print(", ");
    Serial.print(inParse[13]);
    Serial.print(", ");
    Serial.print(inParse[14]);
    Serial.print(", ");
    Serial.print(inParse[15]);
    Serial.print(", ");
    Serial.print(inParse[16]);
    Serial.print(", ");
    Serial.print(inParse[17]);
    Serial.print(", ");
    Serial.print(inParse[18]);
    Serial.print(", ");
    Serial.print(inParse[19]);
    Serial.println("]");
    int_valor_1 = 0;
  }
}

void Open_channel(short channel)
{
  switch (channel)
  {
  case 0:
    //open channel Y0
    //S0=0
    //S1=0
    digitalWrite(multiplexPIN1, LOW);
    digitalWrite(multiplexPIN2, LOW);
    break;

  case 1:
    //open channel Y1
    //S0=1
    //S1=0
    digitalWrite(multiplexPIN1, HIGH);
    digitalWrite(multiplexPIN2, LOW);
    break;

  case 2:
    //open channel Y2
    //S0=0
    //S1=1
    digitalWrite(multiplexPIN1, LOW);
    digitalWrite(multiplexPIN2, HIGH);
    break;

  case 3:
    //open channel Y3
    //S0=1
    //S1=1
    digitalWrite(multiplexPIN1, HIGH);
    digitalWrite(multiplexPIN2, HIGH);
    break;
  }
  Serial3.print('\r');
  return;
}


Os circuitos utlizados são esses:

http://atlas-scientific.com/product_pages/embedded/rs-232.html
http://atlas-scientific.com/product_pages/embedded/ph.html
http://atlas-scientific.com/product_pages/embedded/orp.html
http://atlas-scientific.com/product_pages/embedded/ec.html

Aqui o esquema da ligação



Caso alguém queira conhecer meu projeto pode encontrá-lo aqui: https://github.com/FernandoGarcia/Ferduino

Abraço.
Fernando Garcia
12  International / Portugues / Re: Adicionar separador em uma matriz de caracteres on: November 25, 2012, 03:36:27 pm
Isso não é resposta... já experimentaste o strtok com o \r?

Desculpe, a resposta completa para sua pergunta é:

Não, porque penso que esta função vai transformar os valores em uma string e não conseguirei buscar uma posição específica.

Abraço.
13  International / Portugues / Re: Detectar corrente com Arduino on: November 25, 2012, 12:24:13 pm
Adicionalmente o que precisa fazer é ligar uma fonte de 5V dessas de celular a uma tomada 110/220 V.

E ele vai ligar isto ao mesmo sítio onde o transformador vai estar ligado?



Olá!
Não se entendi bem a sua pergunta mas, aqui no Brasil transformador e fonte é a mesma coisa.

Os componentes da montagem que sugeri são:

Arduino;
Servo;
Resistor;
Fonte (ou transformador) 110/220 V AC para 5 V DC.
Bateria(ou pilha) 9 V.

O servo e o arduino serão alimentados pela bateria (ou pilha) em caso de falta de energia na rede pública.

A fonte (ou transformador) ficará sem energia em caso de falha na rede pública logo, o valor lido na porta analógica será menor que 400.

Abraço.


14  International / Portugues / Re: Adicionar separador em uma matriz de caracteres on: November 25, 2012, 12:05:25 pm
Quote
Respondeste a isto?

Porque penso que esta função vai transformar os valores em uma string e não conseguirei buscar uma posição específica.
Algo do tipo:

(225.24325.24295.24275.24625.24525.24265.24825.24125.24)

Quote
E quais são exactamente os teus valores? Podes dar um exemplo? Talvez seja mais fácil para contextualizar o teu código. :\

Os valores podem ser qualquer um.

Algo do tipo:

(225.24'\r'325.24'\r'295.24'\r'275.24'\r'625.24'\r'525.24'\r'265.24'\r'825.24'\r'125.24'\r')

Quote
Em todo o caso, quando tens um array conhecido... podes fazer isto:

Não consigo saber quantos caracteres vão estar disponíveis no momento da leitura.

Obrigado.

15  International / Portugues / Re: Detectar corrente com Arduino on: November 25, 2012, 11:54:06 am
Olá!

A sua idéia esta certa.

Adicionalmente o que precisa fazer é ligar uma fonte de 5V dessas de celular a uma tomada 110/220 V.

Depois leva os 5v para uma porta analógica do arduino.
coloque um resistor entre os 5 V eo arduino.

Lembre-se de interligar o GND do arduino com o da fonte.

Você também pode deixar o arduino ser alimentado pela fonte e quando faltar energia ele muda automaticamente para a bateria de 9V. Isso se seu arduino não for dos modelos antigos que tem um "jumper" para selecionar a fonte de alimentação.

Neste caso nem precisa baixar a tensão de 9 para 5 V.

O programa fica mais ou menos assim:

Code:
const int pino_analogico = A0;
const int pino_servo = 10;

void setup()
{
  pinMode(pino_servo,OUTPUT);
}
void loop()
{
  if(analogRead(pino_analogico) < 400)
  {
    digitalWrite(pino_servo, HIGH);
  }
  if(analogRead(pino_analogico) > 400)
  {
    digitalWrite(pino_servo, LOW);
  }
}

Abraço.
Pages: [1] 2 3 4