terça-feira, 13 de março de 2012

Cronograma

Apresentação do cronograma / Definição de projeto 13/03/12
Pesquisa de materiais/ encomenda – importação 14/03–19/03
Pesquisa de técnicas e recursos 20/03 – 26/03
Apresentação inicial dos projetos 27/03/12
Postagens/ Inicio de montagem 28/03– 02/04
Apresentação do blog: 03/03/12
Montagem, programação e começar a escrever o artigo 04/4– 11/04
12/04–19/04
20/04– 27/04
Testes e Postagens no blog 28/03– 06/05
Apresentação do Blog II 07/05/12
Oficina Arduino 08/05/12
Testes/ Montagem em placa de fenolite 09/05-16/05
Montagem em placa de fenolite II 17/05-21/05
Apresentação Intermediária 22/05/12
Finalizar animações 23/05-30/05
Últimos retoques 31/05-10/06
Apresentação Final 11/06/12

Descrição e objetivos do projeto

Nesse projeto o objetivo é o desenvolvimento de um cubo 3D composto de Leds que possam ser controlados por arduíno, como o da imagem a seguir:




Por mais que o projeto pareça ter seu foco apenas na parte visual,  pensamos também nos diferentes tipos de animações que podemos realizar com um essa ferramenta a partir de inúmeras combinações possíveis de serem feitas com os leds. Alguns exemplos de animações interessantes :





Especificações e materiais:

Arduino Uno
Leds *
Arame
Resistores *
protoboard
Ferro de Solda
Fios
Caixa de acrílico

* O numero de Leds(e portanto, o de resistores), assim como sua coloração e tipo (normal/RGB) ainda não foram definidos.







quinta-feira, 8 de março de 2012

Relatório 4

Arduino com Som


O código abaixo funciona com o os LEDs em sequencia feitos no Relatório 1 Complementar em conjunto com o esquema acima.

//início
int LDR; //declara a variavel  DR;
int som; // variavel som para o alarme

void setup(){ 
  pinMode(A0, INPUT); 
  Serial.begin(9600); 
  pinMode(13, OUTPUT); //porta do LED
  pinMode(12, OUTPUT);  //porta do LED
  pinMode(11, OUTPUT);  //porta do LED
  pinMode(9,OUTPUT); //porta do Som

void loop(){ 
  LDR = analogRead(A0); 
  Serial.print("Valor lido no LDR:\t"); 
  Serial.println(LDR); 
  delay(250); 
  
if ( LDR<85){
  noTone(9);
  digitalWrite(13, HIGH);
  digitalWrite(12, HIGH);
  digitalWrite(11, HIGH);
}
      
if (LDR>=85 && LDR<=100){
  digitalWrite(13, LOW);
  digitalWrite(11, HIGH);
  digitalWrite(12, HIGH);
  som = map(LDR, 80.0, 180.0, 264, 264);
  tone(9, som, 10000);
}     
       
if(LDR>100 && LDR<115){
  digitalWrite(13, LOW);
  digitalWrite(12, LOW);
  digitalWrite(11, HIGH);
  som = map(LDR, 80.0, 180.0, 297, 297);
  tone(9, som, 10000);
}
       
if(LDR>=115){
  digitalWrite(13, LOW);
  digitalWrite(12, LOW);
  digitalWrite(11, LOW);
  som = map(LDR, 80.0, 180.0, 352, 352);
  tone(9, som, 10000);
}     
}
//fim

quarta-feira, 7 de março de 2012

Relatório 3

Arduino com LDR

Código modificado do Relatório 1 e do Relatório 2. Imprime mais informações que os dois anteriores:

//início
int LDR; //declara a variável 
unsigned int tempo; 
double volt;
double tensao;
double corrente;
double resistenciaLDR;
double potenciaLDR;
double potenciaT;
double resistenciaU = 0.0;

void setup() {
  pinMode(A0, INPUT);
  Serial.begin(9600);
}
                       
void loop() {

  if (Serial.available() > 0) {
    resistenciaU = Serial.read();
    Serial.print("resistencia: ");
    Serial.println(resistenciaU, 6);
  }

  tempo = millis(); // base de tempo para a coleta
  LDR = analogRead(A0);
  volt = LDR * (5.100000/1024);
  tensao = 5.10 - volt;
  corrente = (tensao / resistenciaU) * 1000;
  resistenciaLDR = volt / (corrente / 1000.0);
  potenciaLDR = volt * (corrente / 1000);
  potenciaT = 5.10 * (corrente / 1000);

  Serial.print(LDR);
  Serial.print("    ");
  Serial.print(volt,6);
  Serial.print("    ");
  Serial.print(tensao,6);
  Serial.print("    ");
  Serial.print(volt+tensao,6);
  Serial.print("    ");
  Serial.print(corrente,6);
  Serial.print("    ");
  Serial.print(resistenciaLDR,6);
  Serial.print("    ");
  Serial.print(potenciaLDR,6);
  Serial.print("    ");
  Serial.print(potenciaT,6);
  Serial.print("    ");
  Serial.print(tempo);
  Serial.print("    "); // introduz um espaço para as colunas
  
  Serial.println(); // imprime em linhas
  delay(250);
}

//fim

terça-feira, 6 de março de 2012

Relatório 2

Arduino com LDR

Código do Arduino com LDR do Relatório 1 modificado. Esse código imprime mais informações:

//início
int LDR; //declara a variável 
int tempo; 
double volt;
double tensao;

void setup() {
  pinMode(A0, INPUT);
  Serial.begin(9600);
  }
                                                                        
void loop() {
 tempo= millis(); // base de tempo para a coleta 
  LDR = analogRead(A0); 
  volt = LDR * (5.0/1024.0);
  tensao = 5-volt;

  Serial.print(LDR); 
  Serial.print("    ");
  Serial.print(volt);
  Serial.print("    ");
  Serial.print(tensao);
  Serial.print("    ");
  Serial.print(volt+tensao);
  Serial.print("    ");
  Serial.print(tempo);
  Serial.print("    "); // introduz um espaço para as colunas


  Serial.println(); // imprime em linhas
    delay(250);
}
/fim

segunda-feira, 5 de março de 2012

Relatório 1 Complementar

Este é um circuito montado para leitura no LDR, acoplado a um dispositivo Físico em que há uma sequencia de leds acendendo conforme a distancia de bloqueio de luz no LDR.

 


O código do experimento:

/******************************************************************/
int LDR;
void setup(){

pinMode(A0, INPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
Serial.begin(9600);

}

void loop(){

LDR = analogRead(A0);

Serial.println(LDR);

delay(250);
  if ( LDR <= 300){
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);

    }
  else if ((LDR > 300 )&&( LDR <400)){
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    }

  else if  ((LDR  >= 400)&&( LDR <500)){
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);

   }
   else if  (LDR  >= 500){
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
   }

}

/******************************************************************/

domingo, 4 de março de 2012

Relatório 1

Usando um LED


Código para fazer o LED do arduino piscar:


//início
void setup() {               
  pinMode(13, OUTPUT); 
  }
Void loop()
{
  digitalWrite(13, HIGH);  //LED acende;
  delay(1000); //intervalo de tempo;
  digitalWrite(13, LOW);  //LED apaga;
  delay(1000);
     }
//fim


Código que utiliza o Monitor Serial para alterar o estado do LED (digite "L" ou "H" para alterar o estado do LED):


//início
int ledPin = 13; //define o pino em que o led está ligado

char leitura;  //define a variável leitura que corresponde a uma letra o teclado 

                      //definido por char


void setup() {
  pinMode(ledPin, OUTPUT);  //define que o pino 13 será uma saida
  Serial.begin(9600);
}

void loop() {
 
    leitura = Serial.read(); // a variável leitura será obtida através do teclado
    if (leitura == 'L') {
        digitalWrite(ledPin, LOW);
    }
    else if (leitura == 'H') {
        digitalWrite(ledPin, HIGH);
    }
}  
//fim



________________________________________________

Usando um LDR


Código que lê os valores do LDR:


//início
int LDR; //declara a variavel

void setup(){
  pinMode(A0, INPUT);
  Serial.begin(9600);
  }
                                                                       
void loop(){
  LDR = analogRead(A0);
  Serial.print("Valor lido no LDR:\t");
  Serial.println(LDR);
       delay(250);
         }
//fim


Código que imprime o tempo e o valor do LDR:


//início
int LDR; //declara a variável
int tempo;

void setup() {
  pinMode(A0, INPUT);
  Serial.begin(9600);
  }
                                                                       
void loop() {
 tempo= millis(); // base de tempo para a coleta
 LDR = analogRead(A0);
{
  Serial.print(tempo);
  Serial.print("    "); // introduz um espaço entre as colunas
  Serial.print(LDR);
}
Serial.println(); // imprime em linhas
    delay(250);
         }
//fim