sábado, 22 de março de 2014

Projeto 17 - LED IR captando sinal

Componentes necessários:

- Protobord
- Receptor IR
- Fios




 //Projeto 17 - LED IR captando sinal  
 //Este código é de domínio público   
   
 #include <IRremote.h>  
   
 int RECV_PIN = 2;     //Declarando o pino 2 como RECV_PIN  
 IRrecv irrecv(RECV_PIN);  //  
 decode_results results;  
   
 void setup(){  
  Serial.begin(9600);  
  irrecv.enableIRIn();   // Inicializa o receptor  
 }  
   
 void loop() {  
  if (irrecv.decode(&results)) { //Se algum valor for lido, será imprimido  
   Serial.println(results.value, BIN); //Pode trocar BIN para DEC, HEX...  
   irrecv.resume();    //Limpa da memória o valor lido  
  }  
 }  
   

sexta-feira, 21 de março de 2014

Projeto 16 - Servo motor com Potenciômetro

Componentes necessários:

- Protobord
- Potenciômetro
- Servo Motor
- Fios


 //Projeto 16 - Servo motor com Potenciômetro  
 //Este código é de domínio público  
   
 #include <Servo.h>   
    
 Servo servo1; //Cria o objeto Servo  
    
 void setup(){   
  servo1.attach(5); //Envia pelo pino 5 os valores dos ângulos  
 }   
    
 void loop(){   
  int angulo = analogRead(0); //lê o valor do potenciômetro  
  angle=map(angle, 0, 1023, 0, 180); //mapeia os valores lidos, convertendo entre 0 e 180 graus  
  servo1.write(angle); // envia o ângulos para o servo  
  delay(15);  
 }   
   

quinta-feira, 20 de março de 2014

Projeto 15 - LED 7 segmentos

Componentes necessários:

- Protobord
- LED de 7 segmentos
- 8 resitores de 100 ohms*
- Fios

*Verificar o resistor para o led, pois o valor pode ser diferente.

OBS: - Verificar se o LED 7 Segmentos é anodo ou catono comum;
        - Observar as saídas para não ocorrer representação nos números.


 //Projeto 15 - LED 7 segmentos  
 //Este código é de domínio público   
   
 // Cria uma matriz para os números  
 byte matriz_digits[10][7] = { { 0,0,0,0,0,0,1 }, // = 0  
             { 0,0,1,1,1,1,1 }, // = 1  
             { 1,0,0,0,0,1,0 }, // = 2  
             { 0,0,0,0,1,1,0 }, // = 3  
             { 0,0,1,1,1,0,0 }, // = 4  
             { 0,1,0,0,1,0,0 }, // = 5  
             { 0,1,0,0,0,0,0 }, // = 6  
             { 0,0,0,1,1,1,1 }, // = 7  
             { 0,0,0,0,0,0,0 }, // = 8  
             { 0,0,0,1,1,0,0 }  // = 9  
            };  
    
 void setup() {          
  pinMode(4, OUTPUT);  
  pinMode(5, OUTPUT);  
  pinMode(6, OUTPUT);  
  pinMode(7, OUTPUT);  
  pinMode(8, OUTPUT);  
  pinMode(9, OUTPUT);  
  pinMode(10, OUTPUT);    
  pinMode(11, OUTPUT);  
 }  
    
 void numeros(byte digito) {  
  byte pin = 5;  
  for (byte coluna = 0; coluna < 7; ++coluna) {  
    digitalWrite(pin, matriz_digits[digito][coluna]); //Coloca em nivel alto ou baixo os pinos  
    ++pin;                      //Percorrendo a linha, muda apenas a coluna   
   }   
   delay(100);  
 }   
    
 void loop() {    
  for (byte count = 10; count > 0; --count) {    //Para fazer uma contagem 0 - 10  
   delay(1000);  
   numeros(10 - count);   
  }  
    
  delay(4000);  // Espera 4 segundos para recomeçar novamente  
 }  

quarta-feira, 19 de março de 2014

Projeto 14 - Deslocador de bits com 74HC595

Componentes necessários:

- Protobord
- 8 LEDs de 5 mm
- CI 74HC595
- 8 resistores 100 ohms*
- Fios

*Verificar o resistor para o led, pois o valor pode ser diferente.

Explicação sobre o funcionamento do CI.

     Para ativar o registrador de deslocamento, o pino latch deve estar em LOW para receber os bits e ai depois deve ser colocado como HIGH para ativar as suas saídas.
     Nesse meio tempo entre a passagem do pino latch LOW para HIGH, observa-se que se possui os pinos clock e data, e são com esses pinos que são ativados em nível alto ou baixo cada saída. O clock deve ficar em LOW e o data (aqui aonde que se envia os dados para as portas Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7) e é definada como LOW ou HIGH e após de ser escolhido o estado da data o pino clock deve ser colocado como HIGH. Um ponto para ser observado é o seguinte, cada vez que o pino clock é colocado como LOW e depois como HIGH a saida é mudada, se estava na porta Q0 ele muda para Q1 e assim por diante.

 //Projeto 14 - Deslocador de bits com 74HC595  
 //Este código é de domínio público   
   
 int latchPin = 8; //Pino connectado no Pino 12 do 74HC595 (Latch)  
 int clockPin = 12; //Pino connectado to Pino 11 do 74HC595 (Clock)  
 int dataPin = 11; //Pino connectado no Pino 14 do 74HC595 (Data)  
   
 void setup() {  
  pinMode(latchPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);  
  pinMode(dataPin, OUTPUT);  
 }  
   
 void loop(){  
  digitalWrite(latchPin, LOW);  
  liga();  
  desliga();  
 }  
   
 void liga(){  
  for (int i=0; i<=7; i++){  
   digitalWrite(clockPin, LOW);  
   digitalWrite(dataPin, HIGH);   
   digitalWrite(clockPin, HIGH);  
   digitalWrite(latchPin, HIGH);  
   delay(1000);  
   digitalWrite(latchPin, LOW);  
  }  
 }  
   
 void desliga(){  
  for (int i=0; i<=7; i++){  
   digitalWrite(clockPin, LOW);  
   digitalWrite(dataPin, LOW);   
   digitalWrite(clockPin, HIGH);  
   digitalWrite(latchPin, HIGH);  
   delay(1000);  
   digitalWrite(latchPin, LOW);  
  }  
 }