Portas Digitais e Analógicas | Semelhanças, diferenças, descrição e exemplo de códigos.
Portas Digitais e Analógicas
Olá pessoal!! Nesse post eu irei falar um pouco sobre as portas digitais e analógicas. "Quem são?" "Como são?" "Para quem serve?" São algumas perguntas que eu irei responder nesse post, então se você quer saber essas respostas continue lendo!!
--------------
PORTAS DIGITAIS
As portas digitais são pequenos "furinhos" , elas estão numeradas de 0 a 13, porém a 0 e 1 tem funções "especiais", (se quiserem que eu faça um post delas comenta aí) elas processam apenas duas respostas "sim" e "não",
"ligado" ou "desligado" digamos que não existe meio termo, por isso, sensores não podem ser conectadas nelas.
Nelas conectamos LEDs, botões, interruptores, motores, entre outros componentes, para facilitar a compreensão uma dica é fazer a seguinte relação, as portas digitais são como esportes radicais, ou você sabe e vai super bem, ou você perde!
---------------
PORTAS ANALÓGICAS
As portas analógicas também são pequenos furinhos, essas são numeradas de 0 a 5, elas podem processar diversos valores , são nelas que conectaríamos um sensor de temperatura, por exemplo, pois ele traz diversas informações para a porta ler (12°C, 25°C, 30°C), se conectamos ela em uma porta digital, a porta não compreenderia as informações e "enlouqueceria".
Nelas conectamos sensores principalmente. Para entender melhor o que é uma porta analógica a dica é fazer a seguinte relação, as portas analógicas, são como pessoas meditando, você dá os problemas ou informações e ela, como está relaxada, interpreta e dá uma reposta, independentemente de qual a informação ela sempre responderá em vez de "enlouquecer".
------------
DIFERENÇAS
A diferença mais marcante são as informações que você pode dar para elas para processar. Para as digitais, apenas "Sim" ou "Não" ("PD6 o seu LED está ligado") e para as analógicas ("PA3 seu sensor de temperatura está passando 12°C").
Também são diferenciados os componentes que podemos conectar nela, nas Portas Digitais componentes que não passem informações variadas; como LEDs, botões, motores, buzzer, entre outros; já as analógicas podemos usar sensores (temperatura, luz e distância por exemplo) e potenciômetros.
Suas numerações também são diferentes, as portas analógicas são numeradas de A0 a A5, as digitais tem apenas números que vão de 0 a 13 (lembrando que a 0 e 1 são especiais).
---------------
SEMELHANÇAS
A semelhança mais marcante são suas "funções", ambas tem a função de ler a informação e interpretá-la, por mais que sejam informações diferentes.
Outra semelhança é que em ambos componentes conectados nelas, além dessa conexão conectamos no GND.
--------------
EXEMPLO DE CIRCUITO
PORTAS DIGITAIS
O exemplo que eu irei usar será um semáforo, observe o circuito.
Agora observe o código desse farol:
int ledVermelho = 13;//------|
int ledVerde = 11;// | variáveis de conexao positiva dos LEDs
int ledAmarelo = 12;//-------|
void setup()
{
pinMode(ledVermelho, OUTPUT);//----|
pinMode(ledVerde, OUTPUT);// |------> declara que os leds são componentes OUTPUTS
pinMode(ledAmarelo, OUTPUT);//-----|
}
void loop()
{
digitalWrite(ledVermelho, LOW);//------|
digitalWrite(ledAmarelo, LOW);// |---> SIGA!
digitalWrite(ledVerde, HIGH); //----------|
delay(5000);
digitalWrite(ledVermelho, LOW);//------|
digitalWrite(ledAmarelo, HIGH);// |---> DIMINUA A VELOCIDADE!
digitalWrite(ledVerde, LOW); //----------|
delay(5000);
digitalWrite(ledVermelho, HIGH);//------|
digitalWrite(ledAmarelo, LOW);// |---> PARE!
digitalWrite(ledVerde, LOW); //----------|
delay(5000);
}
--------------
PORTAS ANALÓDICAS
Como exemplo eu usarei um projeto que os LEDs vão acendendo de acordo com o a luminosidade captada pelo sensor. Veja o circuito:
int pino[3] = {9, 10, 11};
int pinLed;
float minimo = 85;
float maximo = 1020;
float valorLDR;
float luminosidade;
void setup(){
for(pinLed = 0; pinLed <= 8; pinLed++){
pinMode(pino [pinLed], OUTPUT);
}
pinMode(A0, INPUT);
}
void loop()
{
valorLDR = analogRead(A0);
luminosidade = ((valorLDR - minimo)/(maximo - minimo)) *10;
luminosidade = (luminosidade - 10) * -1;
for(pinLed = 0; pinLed <= 8; pinLed++){
if(pinLed < luminosidade){
digitalWrite (pino[pinLed], HIGH);
}else{
digitalWrite (pino[pinLed], LOW);
}
}
}
-----------------------
Esse foi o post de hoje!! Espero que tenham gostado!! Comentem ideias para os próximos posts!! Até mais!!
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comentários
Postar um comentário