sábado, 5 de abril de 2014

Projeto 21 - Servo motor lendo valores do terminal

Componentes necessários:

- Protobord
- Servo Motor
- Fios


Insira valores entre 0 e 180 utilizando 3 caracteres por exemplo:     
Para 0, digite 000                                                                                                                                                 Para 60, digite 060                                                                                                                                                 Para 180, digite 180
Deve ser feito como foi informado a cima pelo motivo de que é passado strings pelo terminal e não números, dessa forma o programa irá converter a string e se não for passado como descrito ocorre erro.
Parte da ideia para o funcionamento do modulo RF foi retirada desse link: http://ardufc.blogspot.com.br/2012/11/tutorial-controlando-servo-motor.html
Apesar de estar parecido, houve algumas modificações e terá uma versão nova em breve.


 //Projeto 21 - Servo motor lendo valores do terminal  
 //Este código é de domínio público   
   
 #include <Servo.h>  
   
 Servo servo1; // Cria uma variavel do tipo Servo que será  
 char buffer[4]; // Array de char que irá converter para int  
   
 int received; //Usada para identificar o tamanho str  
   
 void setup(){  
  Serial.begin(9600);  
  servo1.attach(8); // Atribui o servo ao pino 8 do Arduino  
   
  received = 0;  
  buffer[received] = '\0'; //A posição 0 do array recebe '\0'  
 }  
   
 void loop(){  
   
  if(Serial.available()){ //Verifica se algo foi digitado  
   buffer[received++] = Serial.read(); //Salva os dados digitados  
   if(received >= (sizeof(buffer)-1)){  
    int numero = atoi(buffer);// Converte o valor de "char" para "int"  
    servo1.write(numero); // Envia o comando para o Servo Motor  
    received = 0;  
   }  
   Serial.flush(); // Limpa o buffer da entrada serial  
  }  
 }  

segunda-feira, 31 de março de 2014

Projeto 20 - Controle simples de um motor CC

Componentes necessários:

- Protobord
- Motor CC
- TIP 120*
- Fios



*ou equivalente para a corrente do motor 

O layout da figura a cima foi feito com o transistor NPN. Porém pode ser feito com transistor PNP, más deverá ser feito alguns alterações nas conexões e pode ser observado na figura abaixo.


 //Projeto 20 - Controle simples de um motor CC  
 //Este código é de domínio público    
     
 int motor = 3;    
      
 void setup(){    
  pinMode(motor, OUTPUT);  //Define a saída do transistor  
 }    
      
 void loop(){    
  for(int i=0; i<=255; i++){ //Apenas um comando simples, para o   
   analogWrite(motor, i); // motor ir aumentando a velocidade  
   delay(200);      // gradativamente  
  }   
 }