Portas Lógicas com Transistor

Com este exemplo você irá aprender um pouco sobre o funcionamento do transistor como chave, e como demonstração, montará um circuito que funciona como as portas lógicas E e OU de duas entradas. O Arduino controlará as entradas dos dois circuitos e através do serial monitor você poderá acompanhar instantaneamente o estado da tabela da verdade.

 

Dificuldade:

Montagem:

Programação:


Material Utilizado:

Arduino Uno

Cabo USB A para B

Protoboard 830

Resistor 330Ω

Resistor 10kΩ

Transistor BC 337

LED Vermelho

LED Verde

Alguns Jumpers

A Montagem

O Sketch

#define A_AND 12 //Define A_AND como 12
#define B_AND 11 //Define B_AND como 11
#define A_OR 3 //Define A_OR como 3
#define B_OR 2 //Define B_OR como 2

void
setup()
{               

pinMode(A_AND, OUTPUT); //Configura pino 12 como saída   
pinMode
(B_AND, OUTPUT); //Configura pino 11 como saída   
pinMode
(A_OR, OUTPUT); //Configura pino 3 como saída   
pinMode(B_OR, OUTPUT); //Configura pino 2 como saída      

Serial
.begin(9600); //Inicia a serial com um baud rate de 9600   

}

void
loop()
{       

Serial
.println("| AND | OR |"); //Imprime na serial "| AND | OR |"   
Serial.println("| A | B | A | B |"); //Imprime na serial "| A | B | A | B |"      

//A B
  
//0 0
  
Serial.println("| 0 | 0 | 0 | 0 |"); //Imprime na serial "| 0 | 0 | 0 | 0 |"   
digitalWrite
(A_AND, LOW); //Desliga LED do pino 12   
digitalWrite
(B_AND, LOW); //Desliga LED do pino 11   
digitalWrite
(A_OR, LOW); //Desliga LED do pino 3   
digitalWrite
(B_OR, LOW); //Desliga LED do pino 2      

delay
(2000); //Aguarda 1 segundo      

//A B   
//0 1   
Serial
.println("| 0 | 1 | 0 | 1 |"); //Imprime na serial "| 0 | 1 | 0 | 1 |"   
digitalWrite
(A_AND, LOW); //Desliga LED do pino 12   
digitalWrite(B_AND, HIGH); //Liga LED do pino 11   
digitalWrite
(A_OR, LOW); //Desliga LED do pino 3   
digitalWrite
(B_OR, HIGH); //Liga LED do pino 2      

delay
(2000); //Aguarda 1 segundo      

//A B   
//1 0   
Serial.println("| 1 | 0 | 1 | 0 |"); //Imprime na serial "| 1 | 0 | 1 | 0 |"   
digitalWrite
(A_AND, HIGH); //Liga LED do pino 12   
digitalWrite
(B_AND, LOW); //Desliga LED do pino 11   
digitalWrite
(A_OR, HIGH); //Liga LED do pino 3   
digitalWrite(B_OR, LOW); //Desliga LED do pino 2      

delay
(2000); //Aguarda 1 segundo      //A B   //1 1   

Serial
.println("| 1 | 1 | 1 | 1 |"); //Imprime na serial "| 1 | 1 | 1 | 1 |"   
digitalWrite
(A_AND, HIGH); //Liga LED do pino 12   
digitalWrite(B_AND, HIGH); //Liga LED do pino 11   
digitalWrite(A_OR, HIGH); //Liga LED do pino 3   
digitalWrite(B_OR, HIGH); //Liga LED do pino 2      

delay
(2000); //Aguarda 1 segundo      

Serial
.print("\n\n\n\n\n"); //Pula 5 linhas   

}