Show Posts
Pages: [1]
1  International / Portugues / Re: erro: expected initializer before 'void'.... alguém me ajuda? on: April 18, 2013, 11:39:41 am
bubulindo...eu também reparei nesse pormenor, realmente deixou de dar esse erro...mas depois compilei com esse ";" e dava-me erro no compilador devido á linha de codigo
Code:
byte fecth_humidity_temperature(unsigned int *p_Humidity, unsigned int *p_Temperature);

eliminando essas duas linhas e testando o sensor, trabalhou bem..

abraço
2  International / Portugues / Re: erro: expected initializer before 'void'.... alguém me ajuda? on: April 17, 2013, 10:30:51 am
valeu....já tinha reparado que uma dessas dessa linhas estava a mais...e afinal eram as duas...obrigado
3  International / Portugues / erro: expected initializer before 'void'.... alguém me ajuda? on: April 17, 2013, 09:14:46 am
vou deixar aki o programa que estou a desenvolver, no qual me aparece esse tal erro que falei no titulo do topico.
alguma ajuda ou dica seria bem vinda...

Code:
#include <Wire.h>

byte fecth_humidity_temperature(unsigned int *p_Humidity, unsigned int *p_Temperature);
void print_float(float f, int num_digits)

#define TRUE 1
#define FALSE 0

void setup(void)
{
  Serial.begin(9600);
  Wire.begin();
  //pinMode(4, OUTPUT);
  //digitalWrite(4, HIGH);
  delay(5000);
  Serial.println("<<<<<<<<<<<<<<<");
}

void loop(void)
{
  byte _status;
  unsigned int H_dat, T_dat;
  float RH, T_C;
 
  while(1)
  {
      _status = fecth_humidity_temperature(&H_dat, &T_dat);
 
    switch(_status)
    {
    case 0: Serial.println("Normal.");
            break;
    case 1: Serial.println("Stale Data.");
            break;
    case 2: Serial.println("In command mode.");
            break;
    default: Serial.println("Diagonostic.");
    }
 
 
    RH = (float) H_dat * 6.10e-3;// equação para calcular humidade relativa
    T_C = (float) T_dat * 1.007e-2 -40.0;// eq. para calcular temperatura
 
    print_float (RH,1);
    Serial.print("  ");
    print_float (T_C, 2);
    Serial.println();
    delay(1000);
  }
}

byte fetch_humidity_temperature(unsigned int *p_H_dat, unsigned int *p_T_dat)
{
    byte address, Hum_H, Hum_L, Temp_H, Temp_L, _status;
    unsigned int H_dat, T_dat;
    address = 0x27;
    Wire.beginTransmission( address);
    Wire.endTransmission();
    delay(100);
   
    Wire.requestFrom((int)address, (int) 4);// pedido de 4 bytes a partir do dispositivo slave com endereço "address"
    Hum_H =Wire.read();
    Hum_L =Wire.read();
    Temp_H =Wire.read();
    Temp_L =Wire.read();
    Wire.endTransmission();
   
   
    _status = (Hum_H >> 6) & 0x03;
    Hum_H = Hum_H & 0x3f;
    H_dat = (((unsigned int) Hum_H) <<8) | Hum_L;
    T_dat = (((unsigned int) Temp_H) <<8) | Temp_L;
    T_dat = T_dat / 4;
    *p_H_dat = H_dat;
    *p_T_dat = T_dat;
    return(_status);
}

void print_float( float f, int num_digits)
{
    int f_int;
    int pows_of_ten[4] = {1, 10, 100, 1000};
    int multiplier, whole, fract, d, n;
   
    multiplier = pows_of_ten[num_digits];
    if (f < 0.0)
    {
        f = -f;
        Serial.print("-");
    }
    whole = (int) f;
    fract = (int) (multiplier * (f- (float)whole));
   
    Serial.print(whole);
    Serial.print(".");
   
    for (n=num_digits-1; n>=0; n--)
    {
      d = fract / pows_of_ten[n];
      Serial.print(d);
      fract = fract % pows_of_ten[n];
    }
}
 
4  International / Portugues / Re: a programar um mux 8:1 problemas nas portas de saida on: January 29, 2013, 07:42:02 pm
ok...estou a usar o arduino nano, em que os pinos 5,6 e 7 da placa correspondem ás i/o digtais d2,d3,d4 respectivamente.
ou seja serão etas saidas que irei utilizar para mapear as entradas do mux, 8 entradas para uma saída.

o ciclo "for" serve para correr todas essas entradas do mux, por isso que vai de 0...7.
o que eu faço no codigo com a função bitRead:

ele lê o valor da variavel count em binario
0=000
1=001
2=010
.
.
.
7=111

por isso qd faço
    r0 = bitRead(count,0);------>lê o 1º bit e guarda em r0
    r1 = bitRead(count,1);------>lê o 2º bit e guarda em r1
    r2 = bitRead(count,2);------>lê o 3º bit e guarda em r2


é com este ciclo que vou repruduzir a tabela de verdade para correr todas as entradas do mux ,em que a as saidas d2,d3,d4 que corresponde aos pinos 5,6,7 da placa ficarão com o valor das variaveis r0,r1,r2..
5  International / Portugues / Re: a programar um mux 8:1 problemas nas portas de saida on: January 29, 2013, 06:20:53 pm
eu já utilizei o mux, mas não tive resultados lógicos. portanto nesta fase estou a testar as saidas digitais do arduino atraves de leds, que estão ligados a essas mesmas saidas, mas não estou a conseguir que eles acendam....acho que com o codigo que apresentei, isso deveria acontecer não é verdade, em q atraves dos leds deveria  conseguir ver a evolução da" tabela de verdade" que faz selecionar todas as entradas do mux.
6  International / Portugues / Re: a programar um mux 8:1 problemas nas portas de saida on: January 29, 2013, 01:28:59 pm
a minha duvida é, será que qd faço digitalWrite(5,ro) essa saída D5 fica com 5v qd r0=1 e 0v quando r0=0? será que essa função faz isso?
7  International / Portugues / a programar um mux 8:1 problemas nas portas de saida on: January 29, 2013, 12:55:04 pm
Boas Pessoal,
o que me trás aki é o seguinte, estou a a fazer um programa que me permita comandar as portas de selcção de um  mux de 8:1(dm 74151an). para os que estão mais dentro do funcionamento do mux, ele uma 3pinos que fazem a selecção da entrada que está a ser lida. no meu programa atraves da porta serie consigo ver isso a acontecer mas quando ligo 3 leds aos pinos do arduino que me fazem essa selecção nada me acontece. não estou a conseguir com que as saidas digitais liguem esse leds com a sequencia que implementei.
vou deixar ai o meu codigo pra vcs darem uma vista de olhos a verem se descobrem onde errei.

Code:
int sensorPin = A0; // pino analogico por onde irá receber os valores dos sensores
int sensorValue = 0; // variavel q armazena o valor lido pelo A0


int r0 = 0; // valor do pino (s0) do 4051
int r1 = 0; // s1
int r2 = 0; // s2

int count = 0; // contador



void setup()
{
 
 
 
 
  pinMode(5, OUTPUT); // define o pino digital 2 como saida s0
  pinMode(6, OUTPUT); // s1
  pinMode(7, OUTPUT); // s2
 
  Serial.begin(9600); // inicia a comunicação serie
}


void loop()
{
  for ( count=0; count<=7; count++)
  {
   
    r0 = bitRead(count,0);
    r1 = bitRead(count,1);
    r2 = bitRead(count,2);
   
    Serial.print("r0");
    Serial.print(r0);
    Serial.print("r1");
    Serial.print(r1);
    Serial.print("r2");
    Serial.print(r2);
   
   
    digitalWrite(5, r0);
    digitalWrite(6, r1);
    digitalWrite(7, r2);
   
    sensorValue = analogRead(sensorPin); //a varialvel fica com valor lido pino A0
    float voltage = sensorValue * (5.0 / 1023.0);
    Serial.print("sensor"); // escreve sensor
    Serial.print(count+1); // correspondente ao sensor que está a ser lido entre sensor0 a sensor 7
 
    Serial.print("=");
    Serial.print(voltage);
    Serial.println("volts");
 
    delay (2000);
  }
}
8  International / Portugues / ajuda a nível de electronica on: January 23, 2013, 11:05:58 am
Boa tarde colegas,
Será que alguém me pode ajudar aqui numa duvida?
é o seguinte, existe algum circuito de electrónica que me permite converter uma tensão de 5v para -5v?
meu projecto usa uma bateria de 9v para o tornar autonomo, mas na montagem de um ampop com topologia inversora, necessito de utilizar uma tensão de -5v. como tou usando o arduino e lá tem uma saida de 5v, queria saber se existe algum circuito qie me permita converter essa tensão de 5v para uma de -5v. pois assim evito de ter que usar duas baterias independentes.

aguardo sugestões...abraço
9  International / Portugues / preciso de conselhos acerca da utilização de cartão SD on: January 09, 2013, 08:45:51 am
Boa tarde a todos os colegas,

para aqueles que tem experiência em usar cartão SD e também LabView, vou expor o trabalho que tou a desenvolver.

no meu projecto estou a usar o  arduino NANO para efectuar recolha de leituras e em seguida gravá-los num cartão SD. estou a usar sensores de pressão, no caso 8, e um sensor de temperatura/humidade.
depois irei utilizar o labview para  ler esses dados e com eles construir graficos e afins de forma a poder monitorizá-los.
a minha questão é, devo gravar todas as leituras num só ficheiro, ou criar um ficheiro para cada sensor. qual será q melhor forma de os gravar para depois me facilitar o tratamentos desses dados no labview. onde terei que criar graficos separadamente para cada sensor.
alguma dica?

abraço e obrigado a todos
10  International / Portugues / protocolo i2c on: October 09, 2012, 12:16:25 pm
boas a todos,
Preciso que me digam se é possível construir um protocolo i2c sem utilizar as entradas analógicas já preparadas para esse efeito (no caso do Arduino Nano são os pinos analógicos 4(sda) e 5(slc)). posso por exemplo construir esse protocolo em 2 pinos digitais? se sim, como poderei fazer isso? alguma sugestão?

eu pergunto isso porque   no meu projecto necessito de utilizar todas as entradas analógicas para recolher os dados de 8 sensores de carga e preciso de um protocolo i2c para recolher dados de um sensor de temperatura/humidade.

obrigado e abraço
11  International / Portugues / duvidas acerca do I2C on: July 05, 2012, 06:52:08 am
boas pessoal, gostaria que me tirassem uma duvida relativamente á comunicação I2C. Sei que na placa Arduino NaNo existem duas I/O analógicas já defenidas para a sua utilização pino 4 (SDA) e 5(SCL). A minha questão é se posso implementar este tipo de recepção de dados nas I/O digitais, por exemplo, pino 2 e 3? que tipo de modificações de programação terei que fazer? onde poderei encontrar soluções?
Abraço
12  International / Portugues / protocolo I2C on: June 04, 2012, 11:53:02 am
Ola  a todos, estou com um problema de logística relativamente ao arduino Nano que é o seguinte. pretendo utilizar 8 sensores de pressão com output analógico e um sensor de humidade/temperatura com output usando protocolo I2C para efectuar a recolha das leituras através do arduino nano. como é sabido esta placa oferece 8 entradas analógicas mas em contrapartida 2 dessas entradas também são usadas para efectuar o protocolo I2C, ou seja, assim perco 2 entradas para os sensores de pressão... o que eu desejava saber é se é possível criar um protocolo I2c através de software com as entradas digitais para assim conseguir libertar as 2 entradas analógicas para os sensores de pressão? se sim, como poderei fazer isso?
abraço e obrigado
Pages: [1]