Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Ultrasonic.h"
- #include <LiquidCrystal.h>
- Ultrasonic ultrasonic(13, 12); // 13 Echo 12 Trig
- LiquidCrystal lcd (11, 10, 9, 8, 7, 6);
- int valor_pwm; //Variável para armazenar o sinal PWM
- int entrada_rele1 = 1; //Define o relé 1 no pino 1
- int entrada_rele2 = 2; //Define o relé 2 no pino 2
- int entrada_rele3 = 3; //Define o relé 3 no pino 3
- int entrada_rele4 = 4; //Define o relé 4 no pino 4
- void setup() {
- pinMode(entrada_rele1, OUTPUT);
- pinMode(entrada_rele2, OUTPUT);
- pinMode(entrada_rele3, OUTPUT);
- pinMode(entrada_rele4, OUTPUT);
- digitalWrite(entrada_rele1, HIGH); // Deixa o relé desligado
- digitalWrite(entrada_rele2, HIGH); // Deixa o relé desligado
- digitalWrite(entrada_rele3, HIGH); // Deixa o relé desligado
- digitalWrite(entrada_rele4, HIGH); // Deixa o relé desligado
- Serial.begin(9600);
- lcd.begin(16, 2);
- lcd.setCursor( 0, 0);
- lcd.print(" Gerando tensao ");
- lcd.setCursor( 0, 1);
- lcd.print(" pela distancia ");
- delay(3000);
- lcd.clear();
- }
- void loop()
- {
- int tensao = valor_pwm; //Define a tensão o valor dado pelo pwm
- int distancia = (ultrasonic.Ranging(CM)); //Distancia dada pela leitura do Sensor
- if (distancia < 100) {
- if (distancia < 70) {
- if (distancia < 50) {
- if (distancia < 30) {
- if (distancia < 10) {
- analogWrite(valor_pwm, 0);//Ativa 0vcc
- lcd.setCursor(0, 0);
- lcd.print("Tensao ");
- lcd.print(tensao); //Escreve no display o valor da tensao obtida pelo pwm
- lcd.print(" V"); //Escreve V
- lcd.setCursor(0, 1);
- lcd.print("Distancia ");
- lcd.print(distancia);//Escreve no display o valor da distancia em CM.
- Serial.print(distancia);
- Serial.println();
- }
- }
- else {
- analogWrite(valor_pwm, 64);//Ativa ~1,2 vcc
- digitalWrite(entrada_rele1, LOW); //Aciona o Relé
- lcd.setCursor(0, 0);
- lcd.print("Tensao ");
- lcd.print(tensao); //Escreve no display o valor da tensao obtida pelo pwm
- lcd.print(" V"); //Escreve V
- lcd.setCursor(0, 1);
- lcd.print("Distancia ");
- lcd.print(distancia); //Escreve no display o valor da distancia em CM.
- Serial.print(distancia);
- Serial.println();
- }
- }
- else {
- analogWrite(valor_pwm, 127);//Ativa ~2,5 vcc
- digitalWrite(entrada_rele2, LOW); //Aciona o relé 2
- lcd.setCursor(0, 0);
- lcd.print("Tensao ");
- lcd.print(tensao); //Escreve no display o valor da tensao obtida pelo pwm
- lcd.print(" V"); //Escreve V
- lcd.setCursor(0, 1);
- lcd.print("Distancia ");
- lcd.print(distancia);//Escreve no display o valor da distancia em CM.
- Serial.print(distancia);
- Serial.println();
- }
- }
- else {
- analogWrite(valor_pwm, 191);//Ativa ~ 3,7vcc
- digitalWrite(entrada_rele3, LOW); //Aciona o Relé 3
- lcd.setCursor(0, 0);
- lcd.print("Tensao ");
- lcd.print(tensao); //Escreve no display o valor da tensao obtida pelo pwm
- lcd.print(" V"); //Escreve V
- lcd.setCursor(0, 1);
- lcd.print("Distancia ");
- lcd.print(distancia);//Escreve no display o valor da distancia em CM.
- Serial.print(distancia);
- Serial.println();
- }
- }
- else {
- analogWrite(valor_pwm, 255); //Ativa 5vcc
- digitalWrite(entrada_rele4, LOW); //Aciona o Relé 4
- lcd.setCursor(0, 0);
- lcd.print("Tensao ");
- lcd.print(tensao); //Escreve no display o valor da tensao obtida pelo pwm
- lcd.print(" V"); //Escreve V
- lcd.setCursor(0, 1);
- lcd.print("Distancia ");
- lcd.print(distancia);//Escreve no display o valor da distancia em CM.
- Serial.print(distancia);
- Serial.println();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement