Tradutor

Pesquisar este blog

segunda-feira, 1 de abril de 2013

Carro detecta ima


-Componentes: slot de pilhas + sensor de ima + fios + Radio frequência apc220 + Arduíno.

-Descrição: O carro foi feito no proposito de deslizar em um trilho que contem uma especie de régua e a cada 25 cm desta "régua" contem um ima, cada vez que o carro passa pelo ima o sensor vai informar o tempo da passada.




Código:

#define sensorPin 4    

int sensorState;                    // variável a guardar estado do botão
int lastsensorState;                // variável a guardar o último estado do botão
long startTime ;                    // momento de partida do cronômetro
long elapsedTime ;                  // tempo decorrido no cronômetro
int fractional;   
int cont = 0;
int i = 0;
int valor = 0;

void setup()
{
  Serial.begin(9600);
  pinMode(sensorPin, INPUT);     
  digitalWrite(sensorPin, LOW); 
  lastsensorState = LOW;
}


void loop(){

  if(digitalRead(sensorPin) == HIGH){ 
    startTime = millis();
    delay(300);
    while( cont < 3){
      sensorState = digitalRead(sensorPin);
      if(sensorState==HIGH && lastsensorState==LOW){
        elapsedTime = millis() - startTime;  // guarde tempo decorrido
        // rotina para exibir tempo decorrido 
        Serial.print( (int)(elapsedTime / 1000L));         // divida por 1000 para converter a segundos - e então converta a inteiro
        Serial.print(".");                   // imprima ponto decimal

        // use operador módulo para obter parte fracionária part do tempo 
        fractional = (int)(elapsedTime % 1000L);

        // preencha com zeros à esquerda - não seria ótimo se 
        // a linguage Arduino tivesse algo específico para tratar disso? :)
        if (fractional == 0)
          Serial.print("000");      // inclua 3 zeros
        else if (fractional < 10)
          Serial.print("00");       // inclua 2 zeros
        else if (fractional < 100)
          Serial.print("0");        // inclua 1 zero

        Serial.println(fractional); 
        cont ++;
        delay(300);
      }
      lastsensorState = sensorState;
    }
    cont = 0;
  }
}


segunda-feira, 18 de março de 2013

Carro com variação de velocidade.

-Componentes: Arduíno + 2 motores + fios + protoboard + suporte para pilha + dois TIP122 + 2 resistores.

-Descrição: Um projeto básico, mas que nos faz entender melhor a funcionalidade dos motores.
Este carro tem a seguinte ação, o motor começa com sua velocidade minima e ao passar do tempo sua velocidade é aumentada e mostrada no monitor.





Codigo:


int PortPin2 = 2;    // Motor 1
int PortPin3 = 3;    // Motor 1
int PortPin5 = 5;    // Motor 2
int PortPin6 = 6;    // Motor 2
int vel=0;
boolean lol=true;

void setup() {
  Serial.begin(9600); 
  pinMode(PortPin2, OUTPUT);
  pinMode(PortPin3, OUTPUT);
  pinMode(PortPin5, OUTPUT);
  pinMode(PortPin6, OUTPUT);
  analogWrite(PortPin3, LOW);  
  analogWrite(PortPin5, LOW); 
}

void loop() {
  if(lol == true){
    if(vel<255){
      for(int i=0;i<=255;i++){
        vel=i;
        analogWrite(PortPin3, vel);     //Motor 1
        analogWrite(PortPin5, vel);     //Motor 2
        Serial.println(vel);
        delay(100);

      }
    }
    else{
      delay(3000);
      for(int i=255;i>0;i--){
        vel=i;
        analogWrite(PortPin3, vel);     //Motor 1
        analogWrite(PortPin5, vel);     //Motor 2
        Serial.println(vel);
        delay(100);
      }
      lol= false;
    }
  }
}

quarta-feira, 16 de janeiro de 2013

Motor-de-passo com CI ULN2803.

-Componentes: 1 Motor de Passo, 4 leds, 4 resistores de 5 volts, 1 CI ULN2803, 4 resistores 1k, fios, arduino.

-Descrições: Projeto utilizando CI ULN2803 para controlar motor-de-passo bipolar, o leds foram usados para imitar o que esta acontecendo com as bobinas dentro do motor-de-passo.

Imagens: 

Código:


//PASSO COMPLETO

int time=100;

void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
}
void loop()
{
digitalWrite(3,HIGH);
delay(time);
digitalWrite(3,LOW);
delay(time);
digitalWrite(4,HIGH);
delay(time);
digitalWrite(4,LOW);
delay(time);
digitalWrite(5,HIGH);
delay(time);
digitalWrite(5,LOW);
delay(time);
digitalWrite(6,HIGH);
delay(time);
digitalWrite(6,LOW);
delay(time);
}



//MEIO PASSO:

int time= 100;

void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
}
void loop()
{
digitalWrite(3,HIGH);
delay(time);
digitalWrite(4,HIGH);
delay(time);
digitalWrite(3,LOW);
delay(time);
digitalWrite(5,HIGH);
delay(time);
digitalWrite(4,LOW);
delay(time);
digitalWrite(6,HIGH);
delay(time);
digitalWrite(5,LOW);
delay(time);
digitalWrite(3,HIGH);
delay(time);
digitalWrite(6,LOW);
}