sexta-feira, 14 de setembro de 2018

Inputs Analógicos #2

Continuando para atividade de casa foi nos pedido leituras analógicas no modelo feito no proteus. Começando com o seguinte modelo:


Primeiro foi lido o valor do potenciômetro e da senoide, em seguida comparado. O objetivo é criar um ponto de aviso com o potenciômetro, e avisar quando a senoide estiver abaixo desse valor.

int pot,sen;

void setup() {
Serial.begin(9600); 
pinMode(A0, INPUT); 
pinMode(A1,INPUT);
pinMode(1, OUTPUT);

}

void loop() {
  pot = analogRead(A1);
  sen = analogRead(A0);
  if (sen <=pot){
    Serial.print("Sinal muito baixo: ");
    Serial.print(sen);
    Serial.println(" de sinal.");
    }
  delay (200);
}

Ainda no mesmo modelo foi feito a leitura do potenciômetro para indicação de uma escala de qualidade. Nesse caso eu não consegui utilizar o switch case na IDE, acabei por utilizar uma cascata de if/else.

int pot,sen;

void setup() {
Serial.begin(9600); 
pinMode(A1,INPUT);
pinMode(1, OUTPUT);

}

void loop() {
  pot = analogRead(A1);
  if (pot <= 200 && pot >= 0){
      Serial.print("Sinal ruim: ");
      Serial.println(pot);
  }
  if (pot <= 400 && pot >= 201){
      Serial.print("Sinal Bom: ");
      Serial.println(pot);
  }
  if (pot <= 600 && pot >= 401){
      Serial.print("Sinal Muito Bom: ");
      Serial.println(pot);
  }
  if (pot <= 1000 && pot >= 601){
      Serial.print("Sinal Excelente: ");
      Serial.println(pot);
  }
  if (pot >= 1001){
      Serial.print("Sinal de deus: ");
      Serial.println(pot);
  }
  delay (200);
}


Mudando para o próximo modelo o objetivo é tornar essa escala visível numa sequência de led's


A atividade pedia que UM led ficasse ativo para exibir a escala, mas eu escolhi mostrar a escala de forma crescente onde todos os led's poderiam ficar ativos. E mais uma vez não consegui utilizar o switch case.

int pot,sen;

void setup() {
Serial.begin(9600); 
pinMode(A1,INPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);

}

void loop() {
  pot = analogRead(A1);
  if (pot <= 128 && pot >= 0){
      digitalWrite(2, HIGH);
      digitalWrite(3, LOW);
      digitalWrite(4, LOW);
      digitalWrite(5, LOW);
      digitalWrite(6, LOW);
      digitalWrite(7, LOW);
      digitalWrite(8, LOW);
      digitalWrite(9, LOW);
  }
  if (pot <= 256 && pot >= 129){
      digitalWrite(2, HIGH);
      digitalWrite(3, HIGH);
      digitalWrite(4, LOW);
      digitalWrite(5, LOW);
      digitalWrite(6, LOW);
      digitalWrite(7, LOW);
      digitalWrite(8, LOW);
      digitalWrite(9, LOW);
  }
  if (pot <= 384 && pot >= 257){
      digitalWrite(2, HIGH);
      digitalWrite(3, HIGH);
      digitalWrite(4, HIGH);
      digitalWrite(5, LOW);
      digitalWrite(6, LOW);
      digitalWrite(7, LOW);
      digitalWrite(8, LOW);
      digitalWrite(9, LOW);
  }
  if (pot <= 512 && pot >= 385){
      digitalWrite(2, HIGH);
      digitalWrite(3, HIGH);
      digitalWrite(4, HIGH);
      digitalWrite(5, HIGH);
      digitalWrite(6, LOW);
      digitalWrite(7, LOW);
      digitalWrite(8, LOW);
      digitalWrite(9, LOW);
  }
    if (pot <= 640 && pot >= 513){
      digitalWrite(2, HIGH);
      digitalWrite(3, HIGH);
      digitalWrite(4, HIGH);
      digitalWrite(5, HIGH);
      digitalWrite(6, HIGH);
      digitalWrite(7, LOW);
      digitalWrite(8, LOW);
      digitalWrite(9, LOW);
  }
  if (pot <= 768 && pot >= 641){
      digitalWrite(2, HIGH);
      digitalWrite(3, HIGH);
      digitalWrite(4, HIGH);
      digitalWrite(5, HIGH);
      digitalWrite(6, HIGH);
      digitalWrite(7, HIGH);
      digitalWrite(8, LOW);
      digitalWrite(9, LOW);
  }
  if (pot <= 896 && pot >= 769){
      digitalWrite(2, HIGH);
      digitalWrite(3, HIGH);
      digitalWrite(4, HIGH);
      digitalWrite(5, HIGH);
      digitalWrite(6, HIGH);
      digitalWrite(7, HIGH);
      digitalWrite(8, HIGH);
      digitalWrite(9, LOW);
  }
  if (pot <= 1050 && pot >= 897){
      digitalWrite(2, HIGH);
      digitalWrite(3, HIGH);
      digitalWrite(4, HIGH);
      digitalWrite(5, HIGH);
      digitalWrite(6, HIGH);
      digitalWrite(7, HIGH);
      digitalWrite(8, HIGH);
      digitalWrite(9, HIGH);
  }
  delay (200);
}


0 comentários:

Postar um comentário