#include <Arduino.h>
// https://wokwi.com/projects/408430342123937793
// VERSÃO_5 DutyCycle_3
// Definições de pinos
const int LSH1 = 18; // Chave de nível alto
const int SV1 = 23; // Válvula SV1
const int BUZZER = 14; // Buzzer
const int PWM_PIN = 21; // GPIO para o sinal quadrado
void setup() {
Serial.begin(115200);
pinMode(LSH1, INPUT);
pinMode(SV1, OUTPUT);
pinMode(BUZZER, OUTPUT);
pinMode(PWM_PIN, OUTPUT); // Configura o pino PWM_PIN como saída
digitalWrite(SV1, HIGH); // Inicializa SV1 abre
digitalWrite(BUZZER, LOW); // Silencia alarme
}
void loop() {
// Verifica o estado de LSH1
if (digitalRead(LSH1) == HIGH) {
digitalWrite(PWM_PIN, LOW); // Se LSH1 estiver HIGH, desabilita PWM_PIN
} else {
digitalWrite(PWM_PIN, HIGH); // Se LSH1 estiver LOW, habilita PWM_PIN
}
// Gera um sinal quadrado de 50 Hz se PWM_PIN estiver habilitado
if (digitalRead(PWM_PIN) == HIGH) {
digitalWrite(PWM_PIN, HIGH);
delayMicroseconds(100000); // 20 ms HIGH
digitalWrite(PWM_PIN, LOW);
delayMicroseconds(100000); // 20 ms LOW
}
// BLOCO 1 DE INÍCIO
Serial.println("Iniciando o programa...");
// BLOCO 6 DE DECISÃO (LSH1 == 0)
if (digitalRead(LSH1) == 0) {
Serial.println(" ");
digitalWrite(SV1, HIGH);
Serial.println("SV1 aberta");
digitalWrite(BUZZER, LOW);
} else {
Serial.println("**1 defeito na boia");
digitalWrite(SV1, LOW);
Serial.println("SV1 fechada");
digitalWrite(BUZZER, HIGH);
return; // Volta para o início
}
// BLOCO 13 DE DECISÃO (SV1 == 1)
if (digitalRead(SV1) == LOW) {
Serial.println("SV1 fechada");
digitalWrite(SV1, HIGH);
Serial.println("SV1 aberta");
}
delay(10); // Delay para evitar sobrecarga do loop
}
// freq vlrs ms μs Duty Cicle time ON time OF
// 1 1,0000 1000,0 1000000 50% 500000 500000
// 4 0,2500 250,0 250000 50% 125000 125000
// 5 0,2000 200,0 200000 50% 100000 100000
// 10 0,1000 100,0 100000 50% 50000 50000
// 20 0,0500 50,0 50000 50% 25000 25000
// 25 0,0400 40,0 40000 50% 20000 20000
// 50 0,0200 20,0 20000 50% 10000 10000
// 100 0,0100 10,0 10000 50% 5000 5000
// 200 0,0050 5,0 5000 50% 2500 2500
// 300 0,0033 3,3 3333 50% 1667 1667
// 400 0,0025 2,5 2500 50% 1250 1250
//1000 0,0010 1,0 1000 50% 500 500