Mostrando postagens com marcador Programação. Mostrar todas as postagens
Mostrando postagens com marcador Programação. Mostrar todas as postagens

segunda-feira, 13 de junho de 2011

Código fonte

void setup(){
  Serial.begin(9600);
  Serial.println("1- Ler valor de luz de fundo.");
  Serial.println("2- Ler valor de luz.");
  Serial.print("\n");
}

void exibe(float valor, float condutancia){
  Serial.print("Valor em volts = ");
  Serial.print(valor,4);
  Serial.print(" V");
  Serial.print("\n");
  Serial.print("Valor da condutancia = ");
  Serial.print(condutancia,4);
  Serial.print(" mS");
  Serial.print("\n");
}

float leitura(){
 const int portaAnalogica = 0;
 int valorLido, k;
 float valorVolts;
 valorLido = analogRead(portaAnalogica); // Leitura da porta analogica
 valorVolts = valorLido * 0.0048876; // Conversão do valor analogico em volts
 return(valorVolts);
}

float calculaCondLuzFundo(float luzFundo){
  float voltResistor, corrente, resistenciaLuzFundo, condLuzFundo;
  voltResistor = 5.0000000 - luzFundo; // calcula voltagem no resistor
  corrente = voltResistor/4.7; // calculo da corrente
  resistenciaLuzFundo = luzFundo/corrente;
  condLuzFundo = (1/resistenciaLuzFundo);
  return(condLuzFundo);
}

float calculaCondLDR(float condLuzFundo, float voltLDR){
  float voltResistor, corrente, resistenciaLDR, condLDR;
  voltResistor = 5.0000000 - voltLDR;
  corrente = voltResistor/4.7;
  resistenciaLDR = voltLDR/corrente;
  condLDR = (1/resistenciaLDR) - condLuzFundo;
  return(condLDR);
}

void loop(){
  int opt;
  float luzFundo, voltLDR, condLuzFundo, condLDR;
  if (Serial.available() > 0) {
    opt = Serial.read(); 
    switch(opt)
      {
        case 49 :
          luzFundo = leitura();
          condLuzFundo = calculaCondLuzFundo(luzFundo);
          exibe(luzFundo, condLuzFundo);
          break;
        case 50 :
          voltLDR = leitura();
          condLDR = calculaCondLDR(condLuzFundo, voltLDR);
          exibe(voltLDR, condLDR);
          break;
      }
  }
}

segunda-feira, 16 de maio de 2011

Mudanças no projeto

Vamos trocar o circuito do projeto, o eletroscópio sofre muito com interferência então por sugestão da professora Marisa, usaremos um LRD e uma fonte de luz, pois a lei da distancia ao quadrado também se aplica nas variações de intensidade de luz.

Computação:
 - Calcular a condutancia da luz de fundo.
 - Utilizar a voltagem que passa no resistor (valor da porta analogica) para calcular a corrente do circuito (i = V/R)
 - Calcular a resistencia do LDR (5v - Vresistor = Vldr) (R = Vldr/i)
 - Calcular a condutancia do LDR (1/R)

Mostrar a tabela com os valores da distancia e condutancia equivalentes.

Imagem ilustrativa do novo circuito, usando o LDR. 

segunda-feira, 18 de abril de 2011

Arduino :Recebimento de valores pela porta analógica

Conversando com o grupo do Jean na qual possui semelhanças em nossos projetos.
Eles me mostraram um código para o arduino receber valores pela entrada analógica e imprimir o valor.
Pelo que eles me explicaram esse programa deve receber sempre um valor da tensão pela antena
e receberá um valor pré-definido caso não haja uma tensão negativa se aproximando
O programa que eles me mostraram:

#include <Servo.h>

Servo servo;
const int PinoEletroscopio = 0;
int Eletroscopio = 0;

void setup(){
  servo.attach(3);
  Serial.begin(9600);
}
void loop(){
  Eletroscopio = analogRead(PinoEletroscopio);
  Serial.print("Valor do Eletroscopio = ");
  Serial.println(Eletroscopio);
  if (Eletroscopio > 290){
    servo.write(180);
  }else if (Eletroscopio != 0 && Eletroscopio < 400){
  servo.write(0);
  }

  delay(1000);
}

Também chequei que um boa maneira do arduino de receber o valor da tensão seria o programando como um voltímetro e ligando ele paralelamente(de acordo com a explicação da professora e o projeto desenhado).

Links:
http://rexpirando.blogspot.com/2011/01/volt-amperimetro-com-arduino-parte-1.html
http://rexpirando.blogspot.com/2011/01/volt-amperimetro-com-arduino-parte.html

Agradecimentos ao grupo projeto Arduino.

Linguagem usada na programação em arduino

Aqui temos os comandos da linguagem de programação utilizada no Arduino.
As estruturas de referências são:

  • Estruturas de controle (if, else, break, ...)
  • Sintaxe básica (de ne, include, ; , ...)
  • Operadores aritméticos e de comparação (+, -, =, ==, !=, ...)
  • Operadores booleanos (, ||, !)
  • Acesso a ponteiros (*, )
  • Operadores compostos (++, {, +=, ...) 
  • Operadores de bits (|, ' ,...)
  • Os valores de referências são:
  • Tipos de dados(byte, array, int , char , ...)
  • Conversões(char(), byte(), int(), ...)
  • Variável de escopo e de qualificação (variable scope, static, volatile, ...)
  • Utilitários (sizeof(), diz o tamanho da vari avel em bytes)

 É bom citar que o software que vem no Arduino já provê várias funções e constantes para
facilitar a programação.

  • setup()
  • loop()
  • Constantes (HIGH | LOW , INPUT | OUTPUT , ...)
  • Bibliotecas (Serial, Servo, Tone, etc.)

-Thiago A.-Visualizar

segunda-feira, 28 de março de 2011

sábado, 26 de março de 2011

Programação com Arduino - Sketch

Viajando no Fim de semana, to em Santos na casa dos meus pais ... mas como praia é para os fracos, eu resolvi postar alguma novidade.

A interface de programação do Arduino, conhecida como Sketch, utiliza linguagem C/C++.

Encontrei na internet um blog que mostra algumas informações sobre o assunto, e achei interessante mostra-las aqui.

http://compuworldnew.blogspot.com/2010/05/tutorial-interface-de-programacao.html
algumas informações sobre a interface

http://compuworldnew.blogspot.com/2010/05/programacao-acender-led-arduino.html
codigo para acender um LED ...

acender LED não é muito util para a nossa proposta de projeto, mas quando se trata de sintaxe toda informação é bem vinda

-Caio-