Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const byte BOTAO = 2;
- const byte INDUTIVO = 3;
- const byte CILINDROGRANDE = 4;
- const byte CILINDROPEQUENO = 5;
- unsigned long botaoPressionadoMillis;
- unsigned long releAcionado;
- unsigned long acionarCilindroGrande = 000;
- unsigned long acionarCilindroPequeno = 4000;
- unsigned long desacionarCilindroPequeno = 9000;
- unsigned long desacionarCilindroGrande = 12000;
- bool cilindroGdacionado = false;
- bool cilindroGdestado = false;
- bool cilindroPqacionado = false;
- bool cilindroPqestado = false;
- int val; // variable for reading the pin status
- int val2; // variable for reading the delayed/debounced status
- int botaoEstado; // variable to hold the button state
- byte comando = 0;
- void setup() {//inicio do setup
- pinMode(BOTAO, INPUT_PULLUP);
- pinMode(INDUTIVO, INPUT);
- pinMode(CILINDROGRANDE, OUTPUT);
- pinMode(CILINDROPEQUENO, OUTPUT);
- digitalWrite(CILINDROGRANDE, HIGH);
- digitalWrite(CILINDROPEQUENO, HIGH);
- }//fim do setup
- void loop() { //inicio do loop
- unsigned long atualMillis = millis();
- int estado1 = digitalRead(BOTAO);
- int estado2 = digitalRead(INDUTIVO);
- if (estado1 == LOW && estado2 == LOW) {
- comando = 0;
- }
- else
- if (estado1 == LOW && estado2 == HIGH) {
- comando = 1;
- }
- switch (comando) {
- case 0:
- if (digitalRead(BOTAO) == LOW) {
- botaoPressionadoMillis = atualMillis;
- cilindroGdacionado = true;
- cilindroPqacionado = true;
- }
- if (cilindroGdacionado) {
- if ((unsigned long)(atualMillis - botaoPressionadoMillis) >= acionarCilindroGrande) {
- digitalWrite(CILINDROGRANDE, LOW);
- cilindroGdestado = true;
- releAcionado = atualMillis;
- cilindroGdacionado = false;
- }
- }
- if (cilindroPqacionado) {
- if ((unsigned long)(atualMillis - botaoPressionadoMillis) >= acionarCilindroPequeno) {
- digitalWrite(CILINDROPEQUENO, LOW);
- cilindroPqestado = true;
- releAcionado = atualMillis;
- cilindroPqacionado = false;
- }
- }
- if (cilindroGdestado) {
- if ((unsigned long)(atualMillis - releAcionado) >= desacionarCilindroGrande) {
- cilindroGdestado = false;
- digitalWrite(CILINDROGRANDE, HIGH);
- }
- }
- if (cilindroPqestado) {
- if ((unsigned)(atualMillis - releAcionado) >= desacionarCilindroPequeno) {
- cilindroPqestado = false;
- digitalWrite(CILINDROPEQUENO, HIGH);
- }
- }
- break;
- case 1:
- if (digitalRead(BOTAO) == LOW) {
- botaoPressionadoMillis = atualMillis;
- cilindroGdacionado = true;
- cilindroPqacionado = true;
- }
- if (cilindroGdacionado) {
- if ((unsigned long)(atualMillis - botaoPressionadoMillis) >= acionarCilindroGrande) {
- digitalWrite(CILINDROGRANDE, LOW);
- cilindroGdestado = false;
- releAcionado = atualMillis;
- cilindroGdacionado = false;
- }
- }
- break;
- }
- }//fim do loop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement